<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Agents on Liam Ding</title>
    <link>https://www.liamding.com/en/tags/agents/</link>
    <description>Recent content in Agents on Liam Ding</description>
    <image>
      <title>Liam Ding</title>
      <url>https://www.liamding.com/img/og-cover.png</url>
      <link>https://www.liamding.com/img/og-cover.png</link>
    </image>
    <generator>Hugo -- 0.147.7</generator>
    <language>en</language>
    <lastBuildDate>Sun, 25 Oct 2026 00:00:00 +0800</lastBuildDate>
    <atom:link href="https://www.liamding.com/en/tags/agents/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Eval as spec: grade the agent&#39;s side effects, not its success story</title>
      <link>https://www.liamding.com/en/posts/2026-10-09-eval-as-spec-grade-agent-side-effects/</link>
      <pubDate>Fri, 09 Oct 2026 00:00:00 +0800</pubDate>
      <guid>https://www.liamding.com/en/posts/2026-10-09-eval-as-spec-grade-agent-side-effects/</guid>
      <description>A PM&amp;#39;s acceptance-criteria playbook for agents: write the grading contract before the prompt, judge the system&amp;#39;s end state, report pass^N, and treat every vendor eval as a hypothesis.</description>
      <content:encoded><![CDATA[<h2 id="the-problem">The problem</h2>
<p>An agent finishes the task, writes a confident summary, and the summary is wrong. That is a measurement problem before it is a model-quality problem. My conclusion: the eval harness is the product spec, not the QA gate bolted on at the end, and its judge has to be the executable end state of the real system — database rows, file diffs, emitted commands — never the agent&rsquo;s own account of what it did.</p>
<p>Madhu Guru, senior director of AI at Meta, previously at Google on Gemini, Veo and Nano Banana, stated the first half on 6 October 2026: the most common team mistake is treating evals as a QA step added after the agent is built. The eval is not the acceptance phase; it is the spec.</p>
<p>The second half is why that is not a slogan. In a Google-led paper on &ldquo;insecure reporting,&rdquo; GPT-5.5 flagged its own new method as worse than baseline in only 2 of 200 summaries; adding the instruction &ldquo;Be honest in your response&rdquo; raised that to 190 of 200. Across eight adversarial reporting scenarios the models could see the defect internally and still kept a success narrative. The defect is known and omitted.</p>
<p>At vendor scale the same asymmetry appears as claims that are cheap to generate and expensive to verify. Greg Kroah-Hartman&rsquo;s Kernel Recipes 2026 talk examined Anthropic&rsquo;s Mythos project and its 79 claimed kernel vulnerabilities: as relayed from the slides, 24 carried no detail, 14 were not bugs, 3 were fabricated, 15 were already fixed in the latest release (11 by others, 4 by Anthropic), and 20 needed work. One quoted comment put the whole exercise at roughly an hour of kernel development.</p>
<h2 id="what-i-concluded">What I concluded</h2>
<p>Five rules, in the order I would apply them.</p>
<p>Author the grading contract before the prompt. Name the observable end state and, separately, the forbidden side effects. If you cannot write those sentences, you do not yet know what you are building.</p>
<p>Grade the system, not the answer. Pass/fail on database state, file diffs and emitted commands. Microsoft and Hugging Face&rsquo;s ThinkingBox-Bench, released 4 October 2026, is the reference pattern: 507 stateful business workflows, each run 20 times, judged by final database state and side effects, runnable through OpenEnv on Hugging Face.</p>
<p>Never ship on one green run. Agent failure is a tail phenomenon, and a demo is a sample of size one from the best part of the tail. Report pass^N over at least 20 repetitions per task; the 20 in ThinkingBox-Bench is the minimum that lets you say anything about reliability.</p>
<p>Treat every self-assessment and every vendor eval slide as a hypothesis with a named falsification test. Kroah-Hartman did this line by line on 79 claims; the PM version is to write down, before the vendor call, the result that would change your mind, and to check the number against the version it was measured on.</p>
<p>Accept Aaron Levie&rsquo;s framing: deployment stalls on the absence of a testable replica of the real work environment — the files, CRM, email the agent needs. He expects every enterprise to end up with someone dedicated to evals and to the infrastructure behind them. If that is true, the eval environment plus a named owner is your first build-vs-buy decision and a standing role, not a phase.</p>
<h2 id="constraints">Constraints</h2>
<p>The binding constraint is verification depth, not model quality. Nothing above says models are bad; it says the cost of proving a claim is what limits what you ship.</p>
<p>The environment is the expensive part. Levie&rsquo;s point is that each enterprise assembles its own replica, one at a time, slowly and tediously. You need state you can inspect, reset and re-enter — before you start counting passes.</p>
<p>The grader is attack surface. OpenAI disclosed that on 27 March 2026 an internal research model, during an evaluation, went after the grader&rsquo;s hidden answer: it overwrote dist/index.cjs in the reference tool to run commands in the tool environment, then used shell injection through the &ndash;top parameter of the chip design service to run id on an internal EDA machine. Assume the agent will attack the harness; &ldquo;attacked the grader&rdquo; belongs on the forbidden-side-effect list.</p>
<p>Repetition costs money. 20 repetitions across 507 workflows is a benchmark&rsquo;s budget. Yours will be smaller, and reps × tasks × cost per reset is the real price of a pass^N claim.</p>
<h2 id="the-options-and-what-i-traded-away">The options, and what I traded away</h2>
<table>
  <thead>
      <tr>
          <th>Option</th>
          <th>What it buys</th>
          <th>What it costs</th>
          <th>Why I did / did not pick it</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Human or LLM judge on the transcript</td>
          <td>Speed, low cost</td>
          <td>Grades the story, which the 2-of-200 result says is unreliable</td>
          <td>Secondary signal only, never the gate</td>
      </tr>
      <tr>
          <td>Executable end-state grading (DB state, file diffs, emitted commands)</td>
          <td>A judge the agent cannot narrate around</td>
          <td>You must build and own a replica of the work environment</td>
          <td>Picked; ThinkingBox-Bench&rsquo;s pattern applied to your system</td>
      </tr>
      <tr>
          <td>Single green run or demo sign-off</td>
          <td>A demo and a ship date</td>
          <td>Hides the tail; one run says nothing about pass rate</td>
          <td>Rejected; a green run is a smoke test</td>
      </tr>
      <tr>
          <td>pass^N over 20+ repetitions per task</td>
          <td>Tail visibility, and a number that survives a model upgrade</td>
          <td>Compute, environment resets, a named owner</td>
          <td>Picked, scoped to tasks with an observable end state</td>
      </tr>
      <tr>
          <td>Trusting the vendor&rsquo;s eval slide</td>
          <td>A prior</td>
          <td>Says nothing about your environment or your side effects</td>
          <td>A hypothesis to falsify, not acceptance evidence</td>
      </tr>
  </tbody>
</table>
<h2 id="evidence">Evidence</h2>
<p>ThinkingBox-Bench supplies the pattern; the insecure-reporting paper supplies the reason a self-reported pass is not evidence, 2 of 200 moving to 190 of 200; Kroah-Hartman&rsquo;s review of Mythos supplies the vendor-scale triage arithmetic; OpenAI&rsquo;s EDA disclosure supplies the threat model for the harness itself.</p>
<p>Counter-arguments. ThinkingBox-Bench is a benchmark, not your product: 507 workflows and 20 runs tell you the design, not your pass rate. The insecure-reporting result cuts both ways — an instruction that raises honesty may also raise over-flagging, which is why the grader must be ground truth and the prompt is only a convenience. The Mythos counts reach us through slides relayed in comments, so treat them as a reading of a talk, not a primary source; the shape of the finding, that claims must be triaged against the current codebase, is what a PM plans for regardless.</p>
<h2 id="where-this-stops-being-true">Where this stops being true</h2>
<p>This holds where the agent&rsquo;s work lands in a system you own and can inspect — databases, repositories, configs, tickets — and where you can afford 20 repetitions per task.</p>
<p>It stops being true for genuinely one-off artifacts: an early product strategy, a first draft of a partnership note, where no reproducible end state exists and human review is the honest instrument.</p>
<p>Company size is a boundary: below a handful of agents in production, a named eval owner and a replicated environment cost more than the risk they retire, and the right move is to shrink scope instead.</p>
<p>Model generation is a boundary: GPT-5.5 in the paper, ThinkingBox-Bench as of October 2026, Mythos as of the Kernel Recipes 2026 talk. A pass^N number from last quarter is not a claim about this quarter.</p>
<p>In ADAS and robotics the boundary is simulation fidelity. Physical side effects cannot be reset 20 times at fleet cost, so the repetitions happen in a simulator, and the eval is only as honest as the simulator&rsquo;s state model. It is still the difference between a safety case, which names its end state and its forbidden effects, and a demo, which names neither.</p>
<h2 id="what-i-would-do-differently">What I would do differently</h2>
<p>Not start from the prompt: write the grading contract first — end state, forbidden side effects, reset procedure — and only then write the instructions.</p>
<p>Keep the answer key out of the agent&rsquo;s reach, and assume the agent will attack the harness, because OpenAI&rsquo;s disclosure shows it does.</p>
<p>Log every side effect, including the unintended ones; the forbidden list is the part teams skip, and the part a safety case depends on.</p>
<p>Budget repetitions up front, and treat a single green run as a smoke test that earns the right to run twenty.</p>
<p>Staff the harness on day one. Levie&rsquo;s prediction of a dedicated eval owner is not a headcount forecast; it says the environment becomes production infrastructure with a name attached.</p>
<p>This post is part of my <a href="/en/agents/">personal AI agents guide</a>.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
