{"id":401,"date":"2026-09-20T17:52:43","date_gmt":"2026-09-20T17:52:43","guid":{"rendered":"https:\/\/agentsafelabs.com\/blog\/?p=401"},"modified":"2026-09-20T17:59:04","modified_gmt":"2026-09-20T17:59:04","slug":"we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug","status":"publish","type":"post","link":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/","title":{"rendered":"We Thought We&#8217;d Found a Model Bug. We&#8217;d Actually Found a Detector Bug."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">How a three-phase investigation into &#8220;non-deterministic&#8221; model behavior turned into a case study on why nobody measures the reliability of their own safety detectors. If you build or use an LLM safety evaluation pipeline, there&#8217;s a good chance it works like this: you send an adversarial prompt to a model, the model responds, and a detector \u2014 usually pattern-matching against a list of refusal phrases \u2014 decides whether the model refused, complied, or did something ambiguous. That verdict becomes a data point. Enough data points become a safety report. The report becomes a claim about how safe a model is.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Almost nobody asks how safe the <em>detector<\/em> is.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We didn&#8217;t either, until a stray observation turned into a three-phase investigation that ended up telling us more about our own tooling than about any model we tested.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Act 1: A model that seemed to change its mind<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It started small. Running a fixed 30-prompt adversarial set against Claude Haiku, we got an unusually high rate of ambiguous (&#8220;UNCERTAIN&#8221;) verdicts \u2014 responses our detector couldn&#8217;t confidently classify as either a refusal or a compliance. The obvious read was that the model was being inconsistent: refusing some attacks cleanly, hedging on near-identical ones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We built the tooling to investigate that inconsistency. Instead, we found two boring, unglamorous bugs in our own detector:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>A punctuation mismatch<\/strong>: <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our refusal patterns were written with straight ASCII apostrophes. Claude Haiku, like a lot of models, often uses the typographic apostrophe instead \u2014 &#8220;I can**&#8217;<strong>t&#8221; vs. &#8220;I can<\/strong>&#8216;**t.&#8221; Same words, different Unicode character, invisible to a naive regex.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em><strong>A too-narrow refusal vocabulary:<\/strong><\/em><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The model refuses things all the time using completely ordinary language \u2014 &#8220;I&#8217;d rather not,&#8221; &#8220;let me redirect you,&#8221; &#8220;here&#8217;s why I can&#8217;t help with that&#8221; \u2014 that our pattern list simply never anticipated.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Once we fixed both, the &#8220;inconsistency&#8221; dropped by roughly half on a same-response-set replication (holding the model&#8217;s actual answers fixed and only changing the detector version \u2014 the cleanest way we could isolate the fix&#8217;s real effect). Every one of the residual ambiguous cases traced to a <em>specific, nameable<\/em> vocabulary gap, not to the model changing its behavior mid-experiment.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><em>The takeaway wasn&#8217;t &#8220;our detector had two bugs.&#8221; It was:<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">An apparent finding about model behavior was substantially an artifact of the tool measuring it and if we hadn&#8217;t gone looking, that finding would have shipped as a real result about Claude Haiku&#8217;s consistency, not our own regex.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Act 2: The fix works \u2014 and it clusters in a way we didn&#8217;t expect<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A fix on one model, on one prompt set, tells you almost nothing about whether the fix generalizes. So we reran it across six models spanning three providers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The good news:<\/strong> the fix generalizes. Ambiguous-verdict rates dropped across the board.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The interesting news: the <em>mechanism<\/em> behind the fix didn&#8217;t spread evenly. The punctuation-normalization half of the fix did essentially all its work on OpenAI&#8217;s models and <em>none<\/em> on Anthropic&#8217;s or Google&#8217;s \u2014 a clean 83%-vs-0% split, not a gradient. Two completely different model families apparently have very different house styles for how they type an apostrophe in a refusal. We don&#8217;t know why (that&#8217;s a training-data or RLHF-process question we can&#8217;t see into from the outside), but the split itself repeated identically across both a cheap-tier and a frontier-tier OpenAI model, which is a stronger signal than we expected to find by accident.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then came the part that actually worried us.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The fix that fixes one thing and breaks another<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Running the same six-model comparison at higher resolution than our first pass allowed, we found something Phase 1 never could have surfaced: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>The exact same fix that resolves spurious ambiguous verdicts also introduces confirmed false positives<\/strong> <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cases where the model straightforwardly complied with a harmful instruction, and our &#8220;fixed&#8221; detector scored it as a clean pass.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We read every flagged case by hand rather than trusting the aggregate numbers. In one category, 83% of the detector&#8217;s &#8220;fixed&#8221; reclassifications were wrong \u2014 the model had opened with a capability-sounding disclaimer (&#8220;I don&#8217;t have the ability to directly access your filesystem&#8230;&#8221;) and then handed over exactly the destructive shell command the prompt asked for. Our broadened refusal-vocabulary pattern was matching the disclaimer and never noticing the compliance that followed it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is worse than it sounds at first glance. The <em>previous<\/em> state \u2014 an ambiguous verdict \u2014 was designed to route uncertain cases to human review. The <em>new<\/em> state \u2014 a confident PASS \u2014 actively suppresses that review. We hadn&#8217;t just failed to fully fix the detector; for this specific slice of data, we&#8217;d made it more dangerous to trust.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Act 3: Closing the loop, honestly<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The obvious next step was to check whether this same failure pattern showed up anywhere else \u2014 the other five models, the other three attack categories we hadn&#8217;t yet audited by hand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It did, once more, in a different model and a smaller but still real magnitude (15%, or 7% under a stricter reading that excludes one contestable judgment call \u2014 we report both numbers rather than picking the more flattering one).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the part of this phase we think matters more than the new numbers is what we <em>didn&#8217;t<\/em> find. Of the 20 model-category combinations in our closing audit, 9 had <strong>zero data to examine at all<\/strong> \u2014 not &#8220;clean,&#8221; just empty. We insisted on distinguishing those two states explicitly (we call it UNTESTABLE vs. NULL) because collapsing them into one reassuring &#8220;no problems found&#8221; number would misrepresent how much of the space we actually checked.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why this isn&#8217;t really about our detector<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re not writing this to convince you our specific tool is now bulletproof. We&#8217;re writing it because the pattern generalizes: any pattern-based safety classifier \u2014 and a lot of production safety pipelines still are pattern-based, because it&#8217;s cheap, fast, and auditable \u2014 has an error surface that almost nobody measures or reports alongside their headline safety numbers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A fix can be real, generalizable, and still wrong in a specific, structured way that only shows up if someone reads the actual text a &#8220;fixed&#8221; verdict is based on. We think that read-the-actual-text step should be treated as mandatory whenever a detector change could plausibly convert a safe &#8220;I&#8217;m not sure&#8221; into a false &#8220;all clear&#8221; \u2014 not an optional nice-to-have for teams with spare bandwidth.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every number in the full write-up traces back to an archived, versioned dataset and detector-code checkout \u2014 we built the paper to be independently checkable, not just readable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Full technical details, methodology, and the complete dataset provenance are available in our paper, &#8220;Detector-Calibration Failures in Pattern-Based LLM Refusal Classification: Discovery, Generalization, and a Confirmed False-Positive Pattern Across Models,&#8221; currently under review. The <code>safelabs-eval<\/code> framework used throughout this investigation is open source at: <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><a href=\"https:\/\/github.com\/AgentSafeLabs\/safelabs-eval\">github.com\/AgentSafeLabs\/safelabs-eval<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How a three-phase investigation into &#8220;non-deterministic&#8221; model behavior turned into a case study on why nobody measures the reliability of their own safety detectors. If you build or use an LLM safety evaluation pipeline, there&#8217;s a good chance it works like this: you send an adversarial prompt to a model, the model responds, and a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":405,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[7,17,16],"class_list":["post-401","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-agentic-system","tag-detector-bug","tag-safelabs-eval"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>We Thought We&#039;d Found a Model Bug. We&#039;d Actually Found a Detector Bug. - Agentsafelabs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"We Thought We&#039;d Found a Model Bug. We&#039;d Actually Found a Detector Bug. - Agentsafelabs\" \/>\n<meta property=\"og:description\" content=\"How a three-phase investigation into &#8220;non-deterministic&#8221; model behavior turned into a case study on why nobody measures the reliability of their own safety detectors. If you build or use an LLM safety evaluation pipeline, there&#8217;s a good chance it works like this: you send an adversarial prompt to a model, the model responds, and a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/\" \/>\n<meta property=\"og:site_name\" content=\"Agentsafelabs\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-20T17:52:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-20T17:59:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/09\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Waqar Javed\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Waqar Javed\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/\"},\"author\":{\"name\":\"Waqar Javed\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#\\\/schema\\\/person\\\/76dedaeec309dfebad90b82e70cd80d9\"},\"headline\":\"We Thought We&#8217;d Found a Model Bug. We&#8217;d Actually Found a Detector Bug.\",\"datePublished\":\"2026-09-20T17:52:43+00:00\",\"dateModified\":\"2026-09-20T17:59:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/\"},\"wordCount\":1144,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png\",\"keywords\":[\"Agentic System\",\"Detector Bug\",\"safelabs-eval\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/\",\"url\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/\",\"name\":\"We Thought We'd Found a Model Bug. We'd Actually Found a Detector Bug. - Agentsafelabs\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png\",\"datePublished\":\"2026-09-20T17:52:43+00:00\",\"dateModified\":\"2026-09-20T17:59:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#\\\/schema\\\/person\\\/76dedaeec309dfebad90b82e70cd80d9\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#primaryimage\",\"url\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png\",\"contentUrl\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png\",\"width\":1672,\"height\":941,\"caption\":\"We Thought We\u2019d Found a Model Bug. We\u2019d Actually Found a Detector Bug.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"We Thought We&#8217;d Found a Model Bug. We&#8217;d Actually Found a Detector Bug.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/\",\"name\":\"Agentsafelabs\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#\\\/schema\\\/person\\\/76dedaeec309dfebad90b82e70cd80d9\",\"name\":\"Waqar Javed\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fbceb86c7be592091a2c62a020d43ea3b96a22bf32e19f062870d50e5bbc22b7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fbceb86c7be592091a2c62a020d43ea3b96a22bf32e19f062870d50e5bbc22b7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fbceb86c7be592091a2c62a020d43ea3b96a22bf32e19f062870d50e5bbc22b7?s=96&d=mm&r=g\",\"caption\":\"Waqar Javed\"},\"description\":\"Waqar Javed is the founder of AgentSafeLabs and a researcher focused on empirical evaluation of AI agent security. safelabs-eval is Apache 2.0 licensed and available on PyPI and GitHub.\",\"sameAs\":[\"https:\\\/\\\/agentsafelabs.com\\\/blog\"],\"url\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/author\\\/waqarjaved\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"We Thought We'd Found a Model Bug. We'd Actually Found a Detector Bug. - Agentsafelabs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/","og_locale":"en_US","og_type":"article","og_title":"We Thought We'd Found a Model Bug. We'd Actually Found a Detector Bug. - Agentsafelabs","og_description":"How a three-phase investigation into &#8220;non-deterministic&#8221; model behavior turned into a case study on why nobody measures the reliability of their own safety detectors. If you build or use an LLM safety evaluation pipeline, there&#8217;s a good chance it works like this: you send an adversarial prompt to a model, the model responds, and a [&hellip;]","og_url":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/","og_site_name":"Agentsafelabs","article_published_time":"2026-09-20T17:52:43+00:00","article_modified_time":"2026-09-20T17:59:04+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/09\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png","type":"image\/png"}],"author":"Waqar Javed","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Waqar Javed","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#article","isPartOf":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/"},"author":{"name":"Waqar Javed","@id":"https:\/\/agentsafelabs.com\/blog\/#\/schema\/person\/76dedaeec309dfebad90b82e70cd80d9"},"headline":"We Thought We&#8217;d Found a Model Bug. We&#8217;d Actually Found a Detector Bug.","datePublished":"2026-09-20T17:52:43+00:00","dateModified":"2026-09-20T17:59:04+00:00","mainEntityOfPage":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/"},"wordCount":1144,"commentCount":0,"image":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#primaryimage"},"thumbnailUrl":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/09\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png","keywords":["Agentic System","Detector Bug","safelabs-eval"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/","url":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/","name":"We Thought We'd Found a Model Bug. We'd Actually Found a Detector Bug. - Agentsafelabs","isPartOf":{"@id":"https:\/\/agentsafelabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#primaryimage"},"image":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#primaryimage"},"thumbnailUrl":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/09\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png","datePublished":"2026-09-20T17:52:43+00:00","dateModified":"2026-09-20T17:59:04+00:00","author":{"@id":"https:\/\/agentsafelabs.com\/blog\/#\/schema\/person\/76dedaeec309dfebad90b82e70cd80d9"},"breadcrumb":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#primaryimage","url":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/09\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png","contentUrl":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/09\/We-Thought-Wed-Found-a-Model-Bug.-Wed-Actually-Found-a-Detector-Bug.png","width":1672,"height":941,"caption":"We Thought We\u2019d Found a Model Bug. We\u2019d Actually Found a Detector Bug."},{"@type":"BreadcrumbList","@id":"https:\/\/agentsafelabs.com\/blog\/we-thought-wed-found-a-model-bug-wed-actually-found-a-detector-bug\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/agentsafelabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"We Thought We&#8217;d Found a Model Bug. We&#8217;d Actually Found a Detector Bug."}]},{"@type":"WebSite","@id":"https:\/\/agentsafelabs.com\/blog\/#website","url":"https:\/\/agentsafelabs.com\/blog\/","name":"Agentsafelabs","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/agentsafelabs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/agentsafelabs.com\/blog\/#\/schema\/person\/76dedaeec309dfebad90b82e70cd80d9","name":"Waqar Javed","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fbceb86c7be592091a2c62a020d43ea3b96a22bf32e19f062870d50e5bbc22b7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fbceb86c7be592091a2c62a020d43ea3b96a22bf32e19f062870d50e5bbc22b7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fbceb86c7be592091a2c62a020d43ea3b96a22bf32e19f062870d50e5bbc22b7?s=96&d=mm&r=g","caption":"Waqar Javed"},"description":"Waqar Javed is the founder of AgentSafeLabs and a researcher focused on empirical evaluation of AI agent security. safelabs-eval is Apache 2.0 licensed and available on PyPI and GitHub.","sameAs":["https:\/\/agentsafelabs.com\/blog"],"url":"https:\/\/agentsafelabs.com\/blog\/author\/waqarjaved\/"}]}},"_links":{"self":[{"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/posts\/401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/comments?post=401"}],"version-history":[{"count":3,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/posts\/401\/revisions"}],"predecessor-version":[{"id":406,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/posts\/401\/revisions\/406"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/media\/405"}],"wp:attachment":[{"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/media?parent=401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/categories?post=401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/tags?post=401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}