{"id":385,"date":"2026-07-11T09:20:11","date_gmt":"2026-07-11T09:20:11","guid":{"rendered":"https:\/\/agentsafelabs.com\/blog\/?p=385"},"modified":"2026-07-11T09:37:40","modified_gmt":"2026-07-11T09:37:40","slug":"we-were-wrong-about-the-uncertain-results-heres-what-actually-happened","status":"publish","type":"post","link":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/","title":{"rendered":"We Were Wrong About the UNCERTAIN Results \u2014 Here&#8217;s What Actually Happened"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A few weeks ago I published&nbsp;<a href=\"https:\/\/agentsafelabs.com\/blog\/why-claude-haiku-returned-uncertain-anatomy-of-an-indirect-prompt-injection-in-an-agentic-system\/\">a post<\/a>&nbsp;about a red-teaming run against Claude Haiku where 10 of 30 adversarial prompts came back UNCERTAIN instead of a clean PASS or FAIL. I framed it as an interesting edge case \u2014 ambiguous model behavior that standard evals don&#8217;t capture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That framing was wrong, or at least mostly wrong. The real cause was a bug in\u00a0<code>safelabs-eval<\/code>&#8216;s own detector logic, not ambiguous model behavior. This post explains what we found, how we found it, and what it means going forward. I&#8217;m publishing this because getting this wrong in public means the correction should be public too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What we found<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While building out real integration tests for&nbsp;<code>safelabs-eval<\/code>&#8216;s newer agent adapters, I ran live trials against several current models \u2014 including&nbsp;<code>gpt-5.4-nano<\/code>&nbsp;\u2014 using the same 30-prompt adversarial suite from the original post. A striking pattern showed up immediately: clean, unambiguous refusals were scoring UNCERTAIN instead of PASS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every one of&nbsp;<code>safelabs-eval<\/code>&#8216;s detectors maps to a specific category from the&nbsp;<a href=\"https:\/\/agentsafelabs.com\/blog\/the-owasp-agentic-security-initiative-top-10-a-practical-developer-guide-for-langchain-and-crewai\/\">OWASP Agentic Security Initiative Top 10<\/a>&nbsp;\u2014 the same taxonomy that framework&#8217;s 30-prompt suite is built around. Tracing the UNCERTAIN pattern back to the actual detector source turned up two concrete, fixable bugs:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Unicode punctuation mismatch.<\/strong>&nbsp;Every detector&#8217;s refusal-recognition regex hardcoded ASCII apostrophes (<code>'<\/code>, U+0027). But modern model output commonly uses Unicode curly apostrophes (<code>'<\/code>, U+2019) in contractions. A response like&nbsp;<em>&#8220;I can&#8217;t comply with that request&#8221;<\/em>&nbsp;\u2014 an entirely clean refusal \u2014 failed to match the detector&#8217;s own pattern for &#8220;can&#8217;t,&#8221; purely because of character encoding, not content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Overly narrow refusal vocabulary.<\/strong>\u00a0Even where quote styles matched, the detectors&#8217; hardcoded phrase lists didn&#8217;t cover how models actually phrase refusals in practice. Claude Haiku saying\u00a0<em>&#8220;I can&#8217;t help with that request&#8221;<\/em>\u00a0didn&#8217;t match a detector expecting\u00a0<em>&#8220;I can&#8217;t (share|reveal|disclose|provide)&#8221;<\/em>\u00a0\u2014 the verb &#8220;help&#8221; simply wasn&#8217;t in the list.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The fix, and what it changed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We normalized Unicode punctuation before matching, and broadened the refusal vocabulary across all five detectors \u2014 not just the ones directly implicated by the samples we happened to inspect. Then we re-ran the exact original 30-prompt suite against Claude Haiku, using the same evaluation path as the original post, to see whether the fix actually mattered.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>                VULNERABLE    FAIL    UNCERTAIN    PASS\nOriginal            0          0         10         20\nAfter fix            0          0          8         22\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Two fixes, zero new false negatives, and UNCERTAIN dropped by 20% \u2014 every one of those reclassifications was a clean refusal that should have been PASS all along.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What about the remaining 8?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We didn&#8217;t stop at &#8220;the number went down&#8221; \u2014 we read the actual response text for every remaining UNCERTAIN case. All eight are, on inspection, clean and appropriate model behavior: unambiguous refusals or well-calibrated hedges. None of them read as genuinely ambiguous.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every single one traces to a specific, identifiable gap in detector vocabulary \u2014 a missing verb (&#8220;decline,&#8221; &#8220;verify,&#8221; &#8220;have&#8221;), or an adverb breaking an overly strict phrase-adjacency pattern (<em>&#8220;I can&#8217;t&nbsp;<strong>actually<\/strong>&nbsp;do this&#8221;<\/em>&nbsp;didn&#8217;t match because of the word &#8220;actually&#8221; sitting between &#8220;can&#8217;t&#8221; and &#8220;do&#8221;). None of them are a mystery. They&#8217;re the same class of bug, just not yet fixed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We chose not to keep patching until this number hit zero. Iteratively tuning detector vocabulary until a benchmark produces the number you expect is its own kind of methodological error \u2014 it stops being measurement and starts being curve-fitting. Better to fix the concrete, well-understood bugs, report honestly on what&#8217;s left, and treat &#8220;detector coverage is still incomplete&#8221; as an open finding rather than something to be optimized away.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The real finding here<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original post&#8217;s framing \u2014 that Claude Haiku exhibits genuine non-determinism clustered in specific OWASP ASI categories \u2014 does not hold up. What we actually found is a different, and honestly more useful, result:&nbsp;<strong>pattern-based safety detectors systematically under-recognize the natural variation in how models phrase refusals<\/strong>, and this can materially inflate apparent ambiguity or vulnerability rates if left uncorrected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s a real problem, and it&#8217;s not unique to this project. Any evaluation framework \u2014 ours or anyone else&#8217;s \u2014 that relies on regex or keyword matching to classify model refusals is vulnerable to the same failure mode: it works fine against the exact phrasings the detector&#8217;s author anticipated, and quietly misclassifies everything else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s also a variant of a theme I&#8217;ve written about before:\u00a0<a href=\"https:\/\/agentsafelabs.com\/blog\/prompt-injection-is-not-a-chatbot-problem-how-the-attack-surface-changes-when-your-llm-has-tools\/\">the attack surface \u2014 and here, the\u00a0<em>evaluation<\/em>\u00a0surface \u2014 changes shape once you move past simple chatbot input\/output<\/a>. The same expansion in surface area that makes agentic systems harder to secure also makes their outputs harder to\u00a0<em>score<\/em>\u00a0reliably \u2014 more varied phrasing, more tool-mediated response paths, more ways for a technically-correct classifier to miss real-world variation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s changing<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>safelabs-eval<\/code>\u00a0v0.2.1 ships with both fixes and new regression tests covering each. If you&#8217;re running an earlier version, upgrade \u2014 the scoring in\u00a0<code>&lt;0.2.1<\/code>\u00a0will overcount ambiguous\/uncertain results.<\/li>\n\n\n\n<li>Our own research direction is shifting to take this seriously as its own problem, not a footnote: how much does detector calibration affect measured vulnerability rates across different models and frameworks, and what does a more robust evaluation approach look like \u2014 broader pattern coverage, or a fundamentally different scoring method for cases the regex can&#8217;t confidently classify.<\/li>\n\n\n\n<li>The original post will carry a note pointing here.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install --upgrade safelabs-eval<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;ve built anything on top of&nbsp;<code>safelabs-eval<\/code>&#8216;s scoring output from a version before 0.2.1, I&#8217;d treat those results as provisional and worth re-running.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub:&nbsp;<a href=\"https:\/\/github.com\/AgentSafeLabs\/safelabs-eval\">https:\/\/github.com\/AgentSafeLabs\/safelabs-eval<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few weeks ago I published&nbsp;a post&nbsp;about a red-teaming run against Claude Haiku where 10 of 30 adversarial prompts came back UNCERTAIN instead of a clean PASS or FAIL. I framed it as an interesting edge case \u2014 ambiguous model behavior that standard evals don&#8217;t capture. That framing was wrong, or at least mostly wrong. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":387,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-385","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>We Were Wrong About the UNCERTAIN Results \u2014 Here&#039;s What Actually Happened - Agentsafelabs<\/title>\n<meta name=\"description\" content=\"Our original UNCERTAIN finding against Claude Haiku was mostly a bug in our own detector logic, not genuine model non-determinism. Here&#039;s what we found, how we found it, and what changed.\" \/>\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-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"We Were Wrong About the UNCERTAIN Results \u2014 Here&#039;s What Actually Happened - Agentsafelabs\" \/>\n<meta property=\"og:description\" content=\"Our original UNCERTAIN finding against Claude Haiku was mostly a bug in our own detector logic, not genuine model non-determinism. Here&#039;s what we found, how we found it, and what changed.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/\" \/>\n<meta property=\"og:site_name\" content=\"Agentsafelabs\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-11T09:20:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-11T09:37:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/07\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/\"},\"author\":{\"name\":\"Waqar Javed\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#\\\/schema\\\/person\\\/76dedaeec309dfebad90b82e70cd80d9\"},\"headline\":\"We Were Wrong About the UNCERTAIN Results \u2014 Here&#8217;s What Actually Happened\",\"datePublished\":\"2026-07-11T09:20:11+00:00\",\"dateModified\":\"2026-07-11T09:37:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/\"},\"wordCount\":918,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/\",\"url\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/\",\"name\":\"We Were Wrong About the UNCERTAIN Results \u2014 Here's What Actually Happened - Agentsafelabs\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png\",\"datePublished\":\"2026-07-11T09:20:11+00:00\",\"dateModified\":\"2026-07-11T09:37:40+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/#\\\/schema\\\/person\\\/76dedaeec309dfebad90b82e70cd80d9\"},\"description\":\"Our original UNCERTAIN finding against Claude Haiku was mostly a bug in our own detector logic, not genuine model non-determinism. Here's what we found, how we found it, and what changed.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#primaryimage\",\"url\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png\",\"contentUrl\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png\",\"width\":1536,\"height\":1024,\"caption\":\"We Were Wrong About the UNCERTAIN Results \u2014 Here's What Actually Happened\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/agentsafelabs.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"We Were Wrong About the UNCERTAIN Results \u2014 Here&#8217;s What Actually Happened\"}]},{\"@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 Were Wrong About the UNCERTAIN Results \u2014 Here's What Actually Happened - Agentsafelabs","description":"Our original UNCERTAIN finding against Claude Haiku was mostly a bug in our own detector logic, not genuine model non-determinism. Here's what we found, how we found it, and what changed.","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-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/","og_locale":"en_US","og_type":"article","og_title":"We Were Wrong About the UNCERTAIN Results \u2014 Here's What Actually Happened - Agentsafelabs","og_description":"Our original UNCERTAIN finding against Claude Haiku was mostly a bug in our own detector logic, not genuine model non-determinism. Here's what we found, how we found it, and what changed.","og_url":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/","og_site_name":"Agentsafelabs","article_published_time":"2026-07-11T09:20:11+00:00","article_modified_time":"2026-07-11T09:37:40+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/07\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png","type":"image\/png"}],"author":"Waqar Javed","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Waqar Javed","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#article","isPartOf":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/"},"author":{"name":"Waqar Javed","@id":"https:\/\/agentsafelabs.com\/blog\/#\/schema\/person\/76dedaeec309dfebad90b82e70cd80d9"},"headline":"We Were Wrong About the UNCERTAIN Results \u2014 Here&#8217;s What Actually Happened","datePublished":"2026-07-11T09:20:11+00:00","dateModified":"2026-07-11T09:37:40+00:00","mainEntityOfPage":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/"},"wordCount":918,"commentCount":0,"image":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#primaryimage"},"thumbnailUrl":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/07\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/","url":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/","name":"We Were Wrong About the UNCERTAIN Results \u2014 Here's What Actually Happened - Agentsafelabs","isPartOf":{"@id":"https:\/\/agentsafelabs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#primaryimage"},"image":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#primaryimage"},"thumbnailUrl":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/07\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png","datePublished":"2026-07-11T09:20:11+00:00","dateModified":"2026-07-11T09:37:40+00:00","author":{"@id":"https:\/\/agentsafelabs.com\/blog\/#\/schema\/person\/76dedaeec309dfebad90b82e70cd80d9"},"description":"Our original UNCERTAIN finding against Claude Haiku was mostly a bug in our own detector logic, not genuine model non-determinism. Here's what we found, how we found it, and what changed.","breadcrumb":{"@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#primaryimage","url":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/07\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png","contentUrl":"https:\/\/agentsafelabs.com\/blog\/wp-content\/uploads\/2026\/07\/We-Were-Wrong-About-the-UNCERTAIN-Results-\u2014-Heres-What-Actually-Happened.png","width":1536,"height":1024,"caption":"We Were Wrong About the UNCERTAIN Results \u2014 Here's What Actually Happened"},{"@type":"BreadcrumbList","@id":"https:\/\/agentsafelabs.com\/blog\/we-were-wrong-about-the-uncertain-results-heres-what-actually-happened\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/agentsafelabs.com\/blog\/"},{"@type":"ListItem","position":2,"name":"We Were Wrong About the UNCERTAIN Results \u2014 Here&#8217;s What Actually Happened"}]},{"@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\/385","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=385"}],"version-history":[{"count":2,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/posts\/385\/revisions"}],"predecessor-version":[{"id":389,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/posts\/385\/revisions\/389"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/media\/387"}],"wp:attachment":[{"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/media?parent=385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/categories?post=385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agentsafelabs.com\/blog\/wp-json\/wp\/v2\/tags?post=385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}