Writing

Agent Reliability Is an Evaluation Problem, Not a Prompting Problem

When an agent misses a step, the usual fix is a stricter prompt. The failure is more often in how completion is detected.

Notes

Agents are getting better at taking actions, but I think we are still diagnosing many of their failures at the wrong layer.

When an agent misses a step, developers often return to the prompt. Add another instruction. Make the wording stricter. Tell the model to double-check its work. This can help, especially when the task is poorly specified.

But once an LLM is operating across tools and changing external state over many steps, reliability is no longer mainly a writing problem. It becomes a systems problem: how do we know the task is complete, how do we know each important state transition actually happened, and how do we detect failure before the agent builds on top of it?

My view is that the next improvement in agents will come as much from evaluation and verification as from better prompting.

A good next action is not the same as a successful task

Single-turn LLM evaluation is relatively simple. Give the model an input, inspect the response, score the answer.

An agent operates differently. It reads an environment, chooses an action, receives feedback, updates its plan and acts again. A failure early in that sequence changes the state seen by every later step.

That means local correctness is not enough.

An agent can make ten reasonable decisions and still fail the task because it edited the wrong file, misunderstood a tool result or stopped one step too early. Conversely, its internal reasoning may look messy while the final environment is exactly correct.

This is why I care more about task-level success than whether an agent produced a convincing trace.

WebArena makes the distinction concrete. Its tasks are long-horizon interactions with realistic websites, and success is checked against the resulting environment rather than the elegance of the generated text. The best GPT-4-based baseline reported 14.41% end-to-end success, while humans reached 78.24%. That gap is difficult to explain as a missing prompt trick. It reflects navigation, state tracking, tool use and error recovery across the whole trajectory.

The environment needs to grade the agent

SWE-bench uses a similar idea for software engineering.

The model receives a real GitHub issue and repository, then has to produce a patch. The important part is how the patch is judged. Tests that previously failed must pass, while tests that were already passing must remain passing.

The agent does not get credit because its patch looks plausible. The repository decides whether the work succeeded.

OpenAI's SWE-bench Verified release in August makes another useful point: even the evaluator needs evaluation. OpenAI and the SWE-bench authors found tasks in the original benchmark that were ambiguous, broken or impossible to solve as specified. They created a human-validated subset of 500 tasks to make the measurement more reliable.

That is a pattern I expect production teams to encounter repeatedly. Before improving the agent, define what success actually means and verify that the test can distinguish success from failure.

For a coding agent, that can be unit tests. For a data workflow, it can be schema checks and reconciled totals. For an asset pipeline, it can be file existence, naming rules, polygon limits, render settings and export validation.

Prompt engineering stops at the system boundary

SWE-agent is one of the clearest signals here.

The project does not treat the language model as the only object worth optimising. The researchers design an Agent-Computer Interface specifically for the model: commands for viewing files, searching repositories, editing code and running programs, with feedback that helps the model understand when an operation failed.

Using GPT-4 Turbo, SWE-agent reached 12.5% on the original SWE-bench. The paper's experiments show that changing the interface between the model and the environment can materially change agent performance without changing the underlying task.

Tool shape matters. Error messages matter. State representation matters. The amount of irrelevant information returned after an action matters. Whether the model can easily verify a change matters.

You can spend hours rewriting a system prompt while leaving a poorly designed tool interface untouched. At some point that becomes optimisation at the wrong layer.

I see the same problem in production automation. If I expose Blender automation through one unrestricted Python execution tool, the model has enormous freedom but weak observability. If I expose narrower operations such as validate_scene, list_export_errors and export_asset, each operation can return structured evidence about what actually happened.

Reliability requires explicit completion criteria

One of the most dangerous agent failures is not a dramatic error. It is premature success.

The model believes the task is finished, produces a confident final response, and stops. The external state says otherwise.

A production agent therefore needs completion criteria that exist outside the model's own judgment.

If the instruction is "prepare every product asset for export," the completion condition should not be "the model says it finished." The pipeline can count the target assets, verify that each required export exists, run validation rules and report which items failed.

This is close to how I already think about render and build pipelines. A Blender script does not become reliable because it prints done. A job is complete when the expected artifacts exist and pass the checks that matter downstream.

Agents should be held to the same standard.

The model can decide what to try next. Deterministic code should decide whether important invariants still hold.

Long tasks expose reliability mathematically

There is a simple reason agent reliability becomes harder as tasks get longer.

Imagine a workflow where every necessary step has a high probability of being executed correctly. If twenty dependent actions all have to succeed, even a small per-step failure rate can produce a much lower end-to-end success rate.

Real agent failures are not independent, so this is only an intuition, not a model of actual performance. In practice it can be worse because one mistaken state transition can contaminate several later decisions.

This is why measuring individual tool-call accuracy is not enough. We need both local metrics and end-to-end evaluation.

OSWorld does this for computer-use agents by creating real desktop tasks with reproducible initial states and execution-based grading. Its 2024 paper reported 12.24% success for the best evaluated model against 72.36% for humans at the time of publication.

What I would build into an agent system now

For production work, I would treat evaluation as part of the architecture rather than a final QA stage.

Every important tool call should produce observable state. Actions that change files, databases or project settings should have a verification path. Long workflows should have checkpoints where the system can test whether assumptions still hold before continuing.

I would keep a collection of real failed tasks and replay them whenever the model, prompt, tool definitions or orchestration logic changes. That test set should include normal cases, edge cases and cases where the agent previously stopped too early or modified the wrong state.

I would track more than final success. Number of tool calls, retries, invalid actions, recovery attempts, latency and cost can reveal a system that technically succeeds but is becoming unstable.

Security belongs in the evaluation set too. AgentDojo shows why: once agents consume data from external tools, that data can contain instructions designed to redirect the agent. A system can be capable on normal tasks and still be unreliable in an adversarial environment.

A clear prompt remains useful, but it stops being the final control mechanism once the model can affect real systems.

My prediction

I think agent development will start to resemble software testing more than prompt crafting.

Teams will maintain task suites with known initial states and machine-checkable outcomes. Failed production runs will become regression tests. Tool interfaces will be changed when repeated errors reveal that the model receives poor feedback. Agents will be evaluated over complete trajectories rather than screenshots of impressive individual steps.

The strongest systems may be the ones that make failure visible early and success objectively measurable.

For me, that is the dividing line between an agent demo and production automation.

A prompt tells the model what we want.

An evaluation tells us whether we actually got it.

Sources

  1. OpenAI, Introducing SWE-bench Verified, 13 August 2024.
  2. Yang et al., SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering, 2024.
  3. Zhou et al., WebArena: A Realistic Web Environment for Building Autonomous Agents, ICLR 2024.
  4. Xie et al., OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments, 2024.
  5. Debenedetti et al., AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents, 2024.

More

Other write-ups

15 September 2026 Approval Is Not Publication Thirty seven items in the queue, one approved, nothing published. The last arrow in the diagram is the only one that pays. 2 min read 14 September 2026 Neural Rendering Is Crossing From Reconstruction Into Synthesis Reconstruction filled in what sparse sampling missed. DLSS 5 generates appearance the renderer never computed. 6 min read 14 September 2026 The Renderer Is Becoming a Training Data Engine The renderer used to sit at the end of the pipeline. Physical AI gives the same scene a second job: teaching a model. 6 min read 13 September 2026 Local AI Is Becoming a Compute Fabric Local AI meant one model on one machine. Routing inference across the devices already on a network changes the unit. 6 min read 12 September 2026 Agent Infrastructure Is Becoming a Product Category Every team used to build the loop, the store, the sandbox. That layer is being sold rather than written. 6 min read 12 September 2026 Choosing a local model with a stopwatch, not a benchmark Three models, five hard tasks, code actually executed. The official build was 2.4 times faster and more accurate than a community repack of the same model. 3 min read 12 September 2026 We measured real time lighting against baked light, and baked won A 3D product simulation that had to look like an offline render. The real time version ran at 60 frames per second and looked like clay. Here is the measurement and the architecture that replaced it. 4 min read 12 September 2026 What actually broke in an agency run by agents Three failures from a delivery stack that runs on AI. None of them were the model's fault, and all three reported success while producing nothing. 4 min read 11 September 2026 A Task Without A Check Command Is Not Automated If a task has no command that can fail, the pipeline advances on the appearance of work. 2 min read 10 September 2026 A Gate The Model Writes Is A Gate The Model Loosens Three quality gates returned green while the work behind them was wrong, each for a different reason. 2 min read 8 September 2026 The Scoring Model Was Wrong And It Put The Worst Lead First A weighted sum let one axis substitute for the other, so a company with money and no problem ranked in the top twenty. 2 min read 5 September 2026 Building Software Got Easy. Getting Value Out Of It Did Not Aristo took weeks to build. Everything after the build is still in progress, and that gap is the whole story. 3 min read 4 September 2026 Capability Is Becoming an Operational Risk Surface Safety questions used to be about the text. Once a model can act, the capability itself becomes something to operate. 6 min read 24 July 2026 The Scene Graph Is Becoming an API for AI A scene graph exists for artists and software. Agents are becoming another consumer, and they need structure rather than pixels. 6 min read 23 July 2026 Animation Is Moving From Clips to Motion Priors Authored keyframes and blended clips are giving way to asking which constraints define acceptable motion. 6 min read 22 July 2026 Materials Are Becoming Learned Programs A material is texture maps, parameters and shader code. It is starting to become a small learned program that answers a rendering question. 6 min read 16 July 2026 Procedural Systems Are Expanding Beyond Geometry Geometry Nodes started with a narrow name. Blender 5.2 puts physics, sound and object data through the same graph. 6 min read 29 June 2026 The Unit of AI Work Is Becoming the Task, Not the Turn Chat taught us to think one turn at a time. Long-running agents make the task the thing that is scheduled, resumed and reviewed. 6 min read 24 June 2026 Game Engines Are Becoming Operating Systems for Worlds Engines have been judged on what they render and simulate. The Unreal 6 roadmap points at operating a world rather than drawing one. 6 min read 11 June 2026 The Model Is Becoming a Replaceable Backend Choosing a provider used to mean choosing an architecture. A stable interface makes replacement possible and evaluation makes it safe. 6 min read 17 April 2026 The Harness Is Part of the Capability The same model behaves differently depending on context policy, tool design and execution feedback. That surrounding software is not neutral. 6 min read 19 March 2026 Physics Engines Are Becoming Trainable Components A simulator predicts what happens next. A differentiable one can answer which parameter should change to stop the failure. 6 min read 13 March 2026 The Agent Needs an Environment, Not Just Tools A search function and a database query were enough for short loops. Longer work needs a place to stand. 6 min read 9 February 2026 Coding Agents Are Becoming General-Purpose Computer Workers Repositories were a friendly environment: text in, terminal actions, checkable results. That was a starting point, not a boundary. 6 min read 11 December 2025 Open Standards Outlive Model Generations A year after the MCP bet, the argument can be checked against what happened rather than what was hoped. 7 min read 20 November 2025 Colour Management Is a Pipeline Contract Blender 5.0 reads as better display options. Giving a file an explicit working colour space is an architectural change. 6 min read 11 August 2025 The Best Model May Be a Router, Not a Model GPT-5 moves model selection inside the system. The interesting unit stops being which model and becomes which compute policy. 6 min read 8 August 2025 World Models Are Not Game Engines Yet Genie 3 generates a navigable 720p world at 24 fps. Production work needs state you can inspect when something goes wrong. 6 min read 26 May 2025 Memory Is Becoming a System Capability A follow-up to the long-context argument. Storing, selecting and expiring facts is turning into a named part of the product. 6 min read 19 May 2025 Coding Agents Change the Unit of Software Work AI coding tools have been judged where code appears on screen. The boundary moves when the agent owns a task instead of a snippet. 6 min read 11 April 2025 Agents Need Protocols Between Each Other, Not Just Tools Tool calling solves the inside of the loop. It says nothing about one agent reaching another built by a different team on another platform. 7 min read 13 March 2025 Agents Need a Runtime, Not a Prompt Loop An agent is no longer well described as a prompt inside a while loop. The useful abstraction owns execution around the model. 6 min read 28 February 2025 Reasoning Is Not the Only Path to Better Models Longer thinking improves maths and code. A model that solves a logic puzzle and misreads ordinary intent is not the better production model. 6 min read 9 January 2025 Rendering Is Becoming a Reconstruction Stack Sparse samples, motion data and lower-resolution frames become a larger final result. Debugging becomes layered when reconstruction sits in the middle. 6 min read 29 November 2024 MCP Might Matter More Than Another Model Release A model can reason well and still be useless inside a company if it cannot reach the files, repositories and tools where work lives. 6 min read 28 October 2024 Computer Use Is the Missing Layer Between Models and Software Most integrations assume useful software exposes the right API. Much of real software never did. 6 min read 19 September 2024 Inference-Time Compute Is a New Scaling Axis o1 improves when it is allowed to spend longer on a problem. A benchmark score without a compute budget is an incomplete number. 6 min read 15 August 2024 The Final Pixel Won't Come From the Renderer Geometry, camera and scene structure stay reliable ground truth. More of final appearance is moving into learned systems. 6 min read 29 July 2024 Open Models Are Becoming Research Infrastructure Llama 3.1 gets discussed as a benchmark result. The licence terms change which experiments are possible at all. 6 min read 24 June 2024 The Model Is Becoming a Runtime Function calling, code execution and structured output turn inference into a loop. The model stops being a text generator and starts being a control layer. 6 min read 16 May 2024 Multimodality Changes the Architecture, Not Just the Interface GPT-4o is easy to read as a faster interface. Training one model end to end across text, vision and audio is an architectural change. 7 min read 11 March 2024 Benchmark Scores Are Not Model Capability Claude 3 posts 86.8% on MMLU and 50.4% on GPQA Diamond. The chart is useful and it is not the same thing as capability. 6 min read 20 February 2024 Long Context Is Not Memory Gemini 1.5 makes a million tokens usable. A larger working set is not a system that decides what should survive the session. 6 min read