What an AGI harness looks like: the software around the model
A frontier model with no harness is a very expensive autocomplete. Most of the capability people attribute to models in 2026 lives in the scaffolding around them—and that scaffolding is where the hard engineering is.

A harness is everything between the model weights and the outcome: context assembly, tool interfaces, memory, planning and decomposition, execution sandboxing, permission gating, verification, recovery from failure, and the audit trail. As models get more capable, the harness does not shrink—it changes shape, moving from prompt engineering and rigid workflows toward context management, tool governance, and control mechanisms that stay meaningful when the model is smarter than its reviewer. The seven layers that matter are context, tools, memory, control flow, authority, verification and durability. The design rules that survive increasing capability are: give the smallest sufficient tool surface, make every consequential action reversible or gated, verify with something other than the model that produced the work, keep the trace auditable, and design for resumption rather than for success.
The harness is the product
There is a persistent illusion that agent capability is a model property. It is not, or at least not only. Take identical weights, put them behind two different harnesses, and you get materially different results on the same agentic benchmark — different enough that harness design is now a legitimate competitive moat and a serious confound in every published comparison.
The word covers more than people expect. A harness is the context assembly logic that decides what the model sees, the tool definitions that decide what it can do, the memory that decides what it remembers, the control flow that decides when it stops, the permission layer that decides what it may do without asking, the verification that decides whether the work is acceptable, and the durability machinery that decides what happens when the process dies at 3am halfway through a migration.
Anthropic’s guidance on building effective agents makes the deflationary point well: most production value comes from simple, composable patterns rather than elaborate frameworks, and the discipline is knowing when a workflow with fixed steps beats a genuinely autonomous loop.[2] That advice gets more important as capability rises, not less, because a more capable model makes elaborate architectures feel affordable right up until you have to debug one.
| Layer | Decides | Failure if absent | Gets harder with capability |
|---|---|---|---|
| Context assembly | What the model sees this turn | Irrelevant or truncated grounding | Yes — more tools, longer horizons |
| Tool interface | What actions exist | Cannot affect the world; or can affect too much | Yes — surface area grows |
| Memory | What persists across turns and sessions | Repeats work, forgets decisions | Yes — retrieval precision matters more |
| Control flow | When to plan, act, stop, escalate | Infinite loops, premature completion | Yes — plans get longer |
| Authority | What may happen without a human | Unauthorised or unreviewable actions | Yes — this is the core safety layer |
| Verification | Whether the work is acceptable | Confident wrong answers ship | Critically — reviewers fall behind |
| Durability | What survives a crash | Half-finished irreversible state | Yes — longer tasks, more state |
Layer one: context is a budget, not a bucket
The naive harness stuffs everything into the window and hopes. The competent harness treats context as a scarce resource with an explicit allocation: system instructions, task state, retrieved evidence, tool results, and working scratchpad each get a budget, and something has to be evicted when they collide.
Three failure modes recur often enough to design against. Dilution: relevant evidence buried under volume, so retrieval precision matters more than recall past a certain window size. Staleness: tool output from forty steps ago still present and now wrong, quietly contradicting fresher facts. Instruction drift: the original goal pushed so far up the window that later turns optimise for the most recent sub-goal instead.
The practical mitigations are unexciting and effective: summarise and checkpoint state at phase boundaries rather than accumulating raw history, keep a small pinned block containing the goal and the constraints that must never be evicted, timestamp tool results so contradiction is detectable, and prefer structured state over transcript history wherever the state can be expressed as data.
- Give each context category an explicit token budget and an eviction rule.
- Pin the goal, the constraints, and the definition of done; evict everything else first.
- Checkpoint into structured state at phase boundaries instead of growing a transcript.
- Timestamp tool results so the model can tell fresh evidence from stale.
- Measure retrieval precision, not just recall — dilution costs more than a missing document.
Layer two: tools, and the case for a small surface
Tool use is what makes an agent an agent. The ReAct pattern — interleaving reasoning traces with actions so that each informs the other — is still the backbone of most production loops, and it works because the model gets to revise its plan against real observations rather than committing to a plan authored in ignorance.[1]
The standardisation story has matured. The Model Context Protocol gives a common interface for connecting models to tools and data sources, which turns integrations into a portable asset rather than per-vendor glue.[3] Agent-to-agent protocols address the adjacent problem of one agent delegating to another across organisational boundaries.[4] Both matter for an AGI-grade harness for the same reason: a more capable model is more valuable the more it can reach, and unmanaged reach is exactly how you get an incident.
The counterintuitive design rule is that fewer, coarser tools usually outperform many fine-grained ones. Every additional tool consumes description tokens, adds a selection decision, and creates a new way to be wrong. A single well-designed query the database tool with a constrained grammar beats fourteen single-purpose endpoints, and it is far easier to audit. If your tool list needs a scrollbar, you have built a maze and hired someone to run it blindfolded.
| Tool design choice | Better option | Why | Cost of getting it wrong |
|---|---|---|---|
| Granularity | Few coarse tools with constrained inputs | Fewer selection errors, easier audit | Selection thrash, long tool preambles |
| Naming | Verb-first, unambiguous, non-overlapping | Ambiguity causes silent wrong calls | Model picks the plausible wrong tool |
| Errors | Structured, actionable, with a suggested fix | Enables recovery instead of retry loops | Identical retry until budget dies |
| Side effects | Declared explicitly; read separated from write | Permission gating depends on it | Irreversible action taken casually |
| Idempotency | Safe to repeat, keyed operations | Retries and crashes are survivable | Duplicate charges, duplicate emails |
| Standardisation | Protocol-based interfaces | Portable across models and vendors | Rewriting integrations per provider |
Layers three and four: memory and control flow
Memory in a harness is three different things wearing one name. Working memory is the current task state and belongs in structured form, not in transcript. Episodic memory is what happened in previous sessions, and its main job is preventing repeated work and repeated mistakes. Semantic memory is durable knowledge about the environment — where things live, what the conventions are, which approach failed last time and why. Conflating them produces a system that remembers the wrong things in expensive detail.
Control flow is where most harnesses are either too rigid or too loose. Too rigid and you have a workflow wearing an agent costume, unable to handle the exception that motivated the project. Too loose and you have a system that plans elaborately, executes vaguely, and declares victory. The pragmatic middle is a bounded loop with explicit phase transitions, a step budget, a stopping condition tied to the definition of done rather than to the model’s own satisfaction, and an escalation path that is used rather than decorative.
The single highest-value control primitive is the explicit stop. A harness that can recognise I am not making progress and hand back cleanly is worth more than one that is marginally smarter but grinds. Track progress signals — new information acquired, state changed, tests moved — and terminate when they flatline. Persistence is a virtue in people and a bug in loops.
- Separate working, episodic and semantic memory; store working state as data.
- Bound every loop by steps, wall-clock and cost, with all three enforced.
- Tie stopping to an external definition of done, not to the model’s self-assessment.
- Track progress signals and halt on flatline rather than on step exhaustion.
- Make escalation a first-class outcome, not a failure code.
Layer five: authority, the layer that has to hold as capability rises
Everything above is engineering. This layer is governance, and it is the one that changes character if models keep getting more capable. Authority is the answer to a single question: what may this system do without asking, and how do you know it did only that.
The structure that survives scrutiny is a permission model tied to reversibility and blast radius rather than to a coarse trust level. Read-only operations proceed. Reversible writes in a sandbox proceed with logging. Irreversible or externally visible actions — sending, publishing, paying, deleting, granting access — require explicit approval, per action, per session, with no generalisation from one approval to the next. This is the same principle that risk-tiered frameworks apply at the organisational level and that responsible-scaling policies apply at the capability level.[6][7]
The uncomfortable part is that oversight quality degrades exactly when it matters most. Research on AI control examines protocols designed to remain safe even under the assumption that the model is deliberately trying to subvert them — a framing worth taking seriously not because current systems are adversarial but because control mechanisms that only work on cooperative systems are not control mechanisms.[8] Work on agentic misalignment has shown that models placed in constructed scenarios with goal conflicts and autonomy can select harmful instrumental actions, which is a design finding about environments as much as about models.[10]
The practical translation for a harness: never let the system that does the work be the only thing that judges the work, keep permissions bound to actions rather than to sessions, and make sure the audit trail is written by the harness rather than narrated by the model. A model-authored log is a story, not a record.
| Action class | Default authority | Gate | Trace requirement |
|---|---|---|---|
| Read internal data | Automatic | Scope limits | Logged |
| Write to sandbox | Automatic | Resource limits | Logged with diff |
| Write to shared systems | Conditional | Policy check plus reversibility | Reviewable before commit |
| External communication | Never automatic | Explicit per-action approval | Full content retained |
| Financial or access change | Never automatic | Human performs the action | Out-of-band confirmation |
| Deletion | Never automatic | Soft delete plus approval | Recoverable for a defined window |
Layer six: verification when the reviewer is slower than the worker
This is the layer that breaks first as capability rises, and it breaks quietly. A system that produces plausible work faster than a human can check it has not removed the review cost, it has moved it somewhere less visible. The organisations that get burned are the ones that measured throughput and forgot to measure the queue of unverified output.
The design answer is to verify with something structurally different from the thing that produced the work. Tests, type checkers, linters, schema validators, simulators, reference implementations, and independent data sources are all cheap and, crucially, not correlated with the generator’s failure modes. A second model reviewing the first is better than nothing and worse than a test — it shares training data, biases and blind spots, and it agrees too readily.
Then instrument the boring metrics: unsupervised completion rate, escape rate of defects past verification, and human minutes spent per completed task. The third number is the one that tells you whether the agent is helping. If it is not falling over time, you have automated the production of work and manually absorbed the verification of it, which is a business model but not a good one.[5]
- Prefer non-correlated verifiers: tests, schemas, simulators, independent sources.
- Treat model-as-judge as a screening filter, never as a gate on irreversible actions.
- Instrument defect escape rate, not just task success.
- Track human minutes per completed task; it should trend down.
- Reward correct abstention — a system that stops when uncertain is cheaper than one that guesses.
Layer seven: designing for resumption instead of success
Long-horizon work makes durability a first-class concern rather than an afterthought, and horizon length has been the thing rising steadily.[5] A one-minute task can be retried. A six-hour task that dies at hour five with half a migration applied is an incident, and the harness either has the machinery to resume or it does not.
The requirements are the ones any distributed system engineer would recognise, which is the point: checkpoint state at phase boundaries, make every tool idempotent with an operation key, keep an append-only event log so recovery replays facts rather than reconstructing intent, and separate the plan from the execution record so a resumed run can tell what it meant to do from what it actually did.
The design test is simple and brutal: kill the process at a random point and restart it. If the system cannot tell you what it had done, what remains, and whether any partial external effect needs unwinding, it is not ready for autonomy — regardless of how well it scores on anything. This is also why long-horizon agent evaluations are so much more informative than single-turn ones: they exercise the machinery that actually fails in production.
| Durability property | Implementation | Test | Symptom when missing |
|---|---|---|---|
| Checkpointing | Structured state at phase boundaries | Kill and resume mid-phase | Restart from zero, cost doubles |
| Idempotency | Operation keys on every write tool | Replay the same call twice | Duplicate side effects |
| Event log | Append-only, harness-authored | Reconstruct a run from the log alone | No forensic trail after an incident |
| Compensation | Defined undo per irreversible action | Trigger a mid-run abort | Partial state left in production |
| Budget enforcement | Steps, cost and wall-clock, all hard | Run a deliberately unsolvable task | Silent runaway spend |
What changes if the model becomes far more capable
A reasonable question: is any of this a waste if models keep improving? Some of it, yes. Prompt scaffolding, rigid decomposition, and hand-written plan templates are the parts that get eaten as capability rises — every generation makes some clever workaround unnecessary, and letting go of those is a feature.
But the layers grow rather than shrink in the parts that are about the world rather than about the model. Tool governance matters more when the system can reach further. Authority matters more when actions are more consequential. Verification matters much more when output volume rises and the human reviewer becomes the bottleneck. Durability matters more when horizons lengthen. Audit matters more when nobody can reconstruct the reasoning from memory.[9]
So the investment rule is straightforward: build the layers that encode facts about your world, and stay light on the layers that compensate for the model’s current weaknesses. Tool definitions, permission policy, verification suites, event logs and evaluation sets are assets that appreciate. Prompt gymnastics and bespoke decomposition logic are liabilities you will delete, hopefully with relief.
Frequently asked questions
What is an agent harness?
The harness is everything between the model and the outcome: context assembly, tool interfaces, memory, control flow, permission gating, verification and durability machinery. Identical model weights behind different harnesses produce materially different results, which is why harness design is both a competitive advantage and a confound in published benchmark comparisons.
Does a better model make the harness unnecessary?
It removes some of it. Prompt scaffolding, rigid decomposition and workaround logic get eaten by capability. The layers that encode facts about your environment — tool definitions, permission policy, verification suites, event logs — become more important as the system reaches further and acts more consequentially.
How many tools should an agent have?
Fewer than most teams give it. Each tool consumes description tokens, adds a selection decision and creates a new failure mode. A small number of coarse tools with constrained inputs generally outperforms a long list of fine-grained endpoints, and it is far easier to audit and permission.
How should permissions be structured?
Bind authority to reversibility and blast radius rather than to a trust level. Reads proceed automatically, sandboxed writes proceed with logging, and irreversible or externally visible actions such as sending, publishing, paying, deleting or granting access require explicit per-action approval that does not generalise to the next action.
What is the best way to verify agent output?
Use verifiers that are structurally different from the generator: tests, type checkers, schema validators, simulators and independent data sources. A second model reviewing the first shares training data and blind spots, so treat model-as-judge as a screening filter rather than a gate on anything irreversible.
How do I know my harness is production ready?
Kill the process at a random point during a long task and restart it. If the system cannot report what it completed, what remains and whether any partial external effect needs unwinding, it is not ready for autonomy regardless of benchmark performance.
Sources and evidence
Primary and authoritative sources used for factual claims. Company research and executive forecasts are labeled as such in the article.
- 1ReAct: Synergizing Reasoning and Acting in Language ModelsPrinceton University and Google Research · 2022-10
- 2Building effective agentsAnthropic · 2024-12
- 3Model Context ProtocolModel Context Protocol project · 2024-11
- 4Agent2Agent (A2A) protocolA2A project · 2025-04
- 5Measuring AI Ability to Complete Long TasksMETR · 2025-03
- 6AI Risk Management FrameworkNIST · 2023-01
- 7Anthropic's Responsible Scaling PolicyAnthropic · 2023-09
- 8AI Control: Improving Safety Despite Intentional SubversionRedwood Research · 2023-12
- 9
- 10Agentic Misalignment: How LLMs Could Be Insider ThreatsAnthropic · 2025-06