Writing
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.
Writing
The same model behaves differently depending on context policy, tool design and execution feedback. That surrounding software is not neutral.
Notes
A year ago, it was still common to talk about agent performance as if it were mostly a property of the model. Give a stronger model the same prompt and tools, and the system should become more capable.
That picture is getting harder to defend.
OpenAI's April 15 update to the Agents SDK introduces what it calls a model-native harness: configurable memory, sandbox-aware orchestration, filesystem tools, MCP, skills, AGENTS.md instructions, shell execution and file editing around the model. OpenAI's own description is revealing: the harness is meant to get more out of a frontier model by matching the way those models perform best.
The model still matters. But I think the surrounding harness is becoming part of what we mean by capability.
An agent benchmark does not test a naked model.
Something decides the system prompt. Something exposes tools. Something manages context when the task becomes long. Something determines how command output is returned, how many turns the model receives and when the agent is allowed to stop.
That software is the scaffold or harness.
Epoch AI published a useful measurement of this in December. On SWE-bench Verified, simply changing the scaffold produced differences of up to 11 percentage points for GPT-5 and up to 15 points for Kimi K2 Thinking. Epoch concluded that scaffold choice had the largest effect on overall performance in its setup.
This makes a benchmark score harder to interpret as a pure model property.
If the same checkpoint receives better tools, cleaner feedback and a context policy suited to its behaviour, the resulting agent can solve more tasks without any change to the weights. A poor harness can hide capability that the model already has.
The new Agents SDK makes this boundary unusually explicit.
OpenAI separates the harness from the sandbox where model-generated commands execute. The harness manages the agent loop, memory and orchestration. The sandbox owns files, commands and dependencies. A Manifest describes what the workspace should contain so the same agent logic can run against different execution providers.
The harness can expose MCP tools, skills, project instructions, shell commands and file-editing operations. It can shape where inputs appear, where outputs should be written and how work survives across long tasks.
These choices change what the model sees and what actions are easy for it to take.
The model is the reasoning engine. The harness decides how that reasoning touches state.
Context management is one of the clearest examples.
Long-running agents eventually produce more history than should stay active in the context window. The system has to compress, reset, retrieve or externalise some of it.
There is no universally correct policy.
Anthropic's work on long-running agents shows how model-specific this can become. In earlier experiments, Claude Sonnet 4.5 tended to rush toward completion as its context window filled. Anthropic added context resets and handoff artifacts to keep the work moving across clean sessions. When the same design was used with Opus 4.5, Anthropic found that the behaviour had disappeared and the reset logic had become unnecessary overhead.
That is a useful warning.
Harnesses encode assumptions about model failure modes. As models change, those assumptions can become wrong.
The best harness is not one giant collection of agent tricks. It is the smallest execution structure that matches the behaviour of the model and task.
The same applies to memory.
A model can have access to persistent storage and still use it badly. The system needs rules around what belongs in active context, what should be written to durable storage, and what should be discarded.
Anthropic's earlier long-running-agent work used progress files, feature lists, Git history and handoff artifacts to bridge context windows. Those mechanisms do more than increase storage. They shape attention: a progress file can stop repeated work, while a feature list can stop an agent from declaring victory too early.
Tool design has a similar effect.
A model given unrestricted shell access can theoretically perform thousands of operations. That does not mean unrestricted shell access is the best interface for every task.
A narrow tool can encode domain knowledge in its contract. validate_asset() is easier to use reliably than asking the model to rediscover every Blender validation rule through Python each time. run_tests() can return a structured summary instead of twenty thousand lines of terminal output.
A good harness reduces unnecessary decisions.
This matters because agent failure can come from interface friction rather than lack of reasoning. The model may understand what needs to happen but struggle to locate the file, parse noisy output, preserve state between steps or determine whether an action succeeded.
As agents gain broader execution access, the harness becomes a security and recovery boundary.
OpenAI's updated architecture separates the control layer from the compute environment. Credentials can stay outside the sandbox where model-generated code executes. Agent state can be externalised so a failed container can be discarded and restored from a snapshot rather than treated as irreplaceable.
Anthropic has reached a related architecture in Managed Agents. It separates the session log, harness and sandbox so each can fail or change independently. Anthropic describes the harness as the loop that calls Claude and routes tool calls, while the sandbox performs computation and file operations.
The agent can request an operation. Infrastructure should decide whether it is allowed, where it runs and what state survives afterward.
For a production system, I would now evaluate the model and harness separately.
The first measurement is whether the model can reason about the task at all.
The second is whether the harness makes the required state visible, exposes the right operations, preserves progress, verifies completion and recovers from failure.
In a Blender pipeline, one harness might give the model raw Python and the entire project directory. Another might expose asset metadata, narrow scene operations, render validation and an isolated workspace with explicit output paths.
Both systems can use the same model. I would expect very different reliability.
The same applies to game development. A model working through a noisy terminal with no project instructions is not equivalent to the same model with repository conventions, deterministic build commands, test summaries, task state and clean checkpoints.
Once agents operate for hours rather than seconds, those differences accumulate.
This changes how I read agent benchmark results.
A useful report should identify the model, but it should name the scaffold too. I want to know the tools, context strategy, execution environment, turn budget, reasoning settings and completion checks.
Epoch AI makes the distinction explicit: a standardised scaffold is useful when the goal is comparing models, while a model-native product harness may be better for measuring the frontier capability of the complete system.
Those are different questions.
"Which model is stronger under the same interface?" is a model evaluation.
"How much work can this agent system complete?" is a system evaluation.
Mixing the two produces misleading comparisons.
I think harness engineering will become its own part of AI infrastructure.
Model providers will keep improving checkpoints, but production teams will compete on how well they expose state, manage context, design tools, isolate execution and verify results around those models.
The harness will need to evolve with the model. Some techniques that improve today's agent may become unnecessary when the next model handles the same problem internally. Other problems will move outward into infrastructure because software can solve them more cheaply and predictably than inference.
That means capability will become harder to summarise with a model name.
A deployed agent's real capability will increasingly be the capability of the whole stack:
model + context policy + tools + memory + environment + verification.
The weights set the ceiling.
The harness determines how much of that ceiling the system can actually reach.
More