<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Karan Sahu</title>
    <description>The latest articles on DEV Community by Karan Sahu (@cgkaran).</description>
    <link>https://dev.to/cgkaran</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F386121%2F04a39a0c-b41f-40bf-9394-999ccc7de5c7.png</url>
      <title>DEV Community: Karan Sahu</title>
      <link>https://dev.to/cgkaran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cgkaran"/>
    <language>en</language>
    <item>
      <title>Your AI agent can return HTTP 200 and still be failing</title>
      <dc:creator>Karan Sahu</dc:creator>
      <pubDate>Thu, 15 Oct 2026 19:31:56 +0000</pubDate>
      <link>https://dev.to/cgkaran/your-ai-agent-can-return-http-200-and-still-be-failing-437p</link>
      <guid>https://dev.to/cgkaran/your-ai-agent-can-return-http-200-and-still-be-failing-437p</guid>
      <description>&lt;p&gt;An API returning HTTP 200 tells you that a request completed successfully. It doesn't tell you whether an AI agent actually did what it was supposed to do.&lt;/p&gt;

&lt;p&gt;That distinction becomes important once agents start handling real workflows.&lt;/p&gt;

&lt;p&gt;An agent might successfully call a tool, receive a valid response, and return an answer. From the infrastructure side, everything looks healthy.&lt;/p&gt;

&lt;p&gt;But the agent may have selected the wrong tool, failed to complete the task, or produced an output that doesn't pass your application's validation rules.&lt;/p&gt;

&lt;p&gt;Traditional uptime monitoring won't necessarily catch these failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  The problem with measuring availability alone
&lt;/h3&gt;

&lt;p&gt;Consider an agent responsible for validating structured documents.&lt;/p&gt;

&lt;p&gt;Before a deployment, most documents pass validation. After a model or prompt update, malformed outputs become more frequent.&lt;/p&gt;

&lt;p&gt;The API continues responding successfully, but application-level reliability has deteriorated.&lt;/p&gt;

&lt;p&gt;To identify that regression, we need to record more than whether the API request succeeded.&lt;/p&gt;

&lt;p&gt;At minimum, useful signals include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the operation succeeded or failed according to application-defined criteria&lt;/li&gt;
&lt;li&gt;What category of failure occurred&lt;/li&gt;
&lt;li&gt;Which model or prompt version was involved&lt;/li&gt;
&lt;li&gt;Latency, token usage, and retry counts&lt;/li&gt;
&lt;li&gt;Whether the system recovered after a change&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application needs to provide these outcomes. A monitoring system cannot reliably infer task correctness just from an HTTP status code.&lt;/p&gt;

&lt;h3&gt;
  
  
  A reproducible example
&lt;/h3&gt;

&lt;p&gt;I've been working on &lt;a href="https://github.com/PrefilerLabs/reliamesh" rel="noopener noreferrer"&gt;ReliaMesh&lt;/a&gt;, an Apache-2.0 open-source project that explores this problem.&lt;/p&gt;

&lt;p&gt;It accepts structured reliability events and uses deterministic detection rules to identify deterioration and recovery.&lt;/p&gt;

&lt;p&gt;The repository includes a synthetic example with three stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Baseline:&lt;/strong&gt; 50 successful validation events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regression:&lt;/strong&gt; 50 validation failures associated with a different model-version label.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery:&lt;/strong&gt; 100 subsequent successful events.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The example checks that a failure-rate regression incident opens and subsequently resolves.&lt;/p&gt;

&lt;p&gt;You can reproduce it locally using the installation instructions and the &lt;a href="https://github.com/PrefilerLabs/reliamesh/blob/main/examples/synthetic_regression.py" rel="noopener noreferrer"&gt;synthetic regression example&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;No paid API account or blockchain connection is required.&lt;/p&gt;

&lt;h3&gt;
  
  
  How the detection works
&lt;/h3&gt;

&lt;p&gt;Rather than sending prompts and responses to another LLM for evaluation, ReliaMesh works with explicitly reported outcomes.&lt;/p&gt;

&lt;p&gt;For failure-rate regressions, it compares adjacent observation windows of 50 events.&lt;/p&gt;

&lt;p&gt;A regression signal requires a failure-rate increase of at least 15 percentage points, along with separation between the corresponding Wilson confidence intervals.&lt;/p&gt;

&lt;p&gt;The system also has rules for high absolute failure rates, latency, token usage, and retries.&lt;/p&gt;

&lt;p&gt;This doesn't make the detector infallible. It provides an explainable, reproducible way to identify changes in the signals an application reports.&lt;/p&gt;

&lt;p&gt;The detection rules are documented &lt;a href="https://github.com/PrefilerLabs/reliamesh/blob/main/docs/detection.md" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it doesn't solve yet
&lt;/h3&gt;

&lt;p&gt;ReliaMesh is still an early release.&lt;/p&gt;

&lt;p&gt;It doesn't automatically determine whether an LLM response is semantically correct. It doesn't establish root cause, and its detection thresholds haven't been calibrated against independent production workloads.&lt;/p&gt;

&lt;p&gt;Cross-organization reliability intelligence is also not enabled.&lt;/p&gt;

&lt;p&gt;Those are meaningful limitations, particularly when distinguishing a useful detection signal from a statistically validated reliability claim.&lt;/p&gt;

&lt;h3&gt;
  
  
  The larger question
&lt;/h3&gt;

&lt;p&gt;As more applications depend on AI agents, infrastructure availability and task reliability need to be treated as separate measurements.&lt;/p&gt;

&lt;p&gt;A model can be reachable, a tool can respond, and a workflow can still fail.&lt;/p&gt;

&lt;p&gt;I'm interested in how other developers are measuring these failures in production.&lt;/p&gt;

&lt;p&gt;Are you relying on application-specific validation, evaluation frameworks, tracing tools, or something else?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; &lt;a href="https://github.com/PrefilerLabs/reliamesh" rel="noopener noreferrer"&gt;https://github.com/PrefilerLabs/reliamesh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: This article was drafted with AI assistance using the project's public technical documentation.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
