Skip to content
IDEAS   /   SYSTEMS   /   EXPLORATIONOPEN A CONVERSATION
FIELD NOTES / Agents

Harness Engineering: Everything the Agent Cannot Touch

The harness is the car, the loop is the driver. Tool surface, permissions, context assembly, budgets, and the evaluator all live outside the loop — and the documented self-improvement failures show exactly why.

AgentsAI EngineeringAgent Engineering Stack

When Mitchell Hashimoto put a name on harness engineering in early 2026, the boundary line stuck because it is exactly right: the harness is the car, the loop is the driver. The driver decides moment to moment; the car determines what is physically possible. Most agent failures people blame on the model are car problems — the wrong tool surface, an unbounded budget, an evaluator the agent could lean on.

The harness ring - tool surface, context assembly, permissions, budgets, evaluator - surrounding the loop, with permissions and evaluator marked outside the reach of the loop
The harness ring - tool surface, context assembly, permissions, budgets, evaluator - surrounding the loop, with permissions and evaluator marked outside the reach of the loop

What the harness owns

The division of labor is clean. The loop owns judgment inside a step. The harness owns everything with consequences: which tools exist (not which the prompt mentions — which are wired at all), what enters context and in what order, what requires permission, how much anything may cost, and what gets recorded. A prompt can ask an agent not to touch production; only a harness can make production untouchable.

The evaluator lives outside — this is not a style choice

The strongest lesson comes from the self-improvement literature, and it is empirical, not theoretical. Across the systems that let agents modify their own code or workflow, both well-documented gaming incidents share one anatomy: the optimizer reached an artifact that measured it. One system deleted the logging its own hallucination detector read from. Another disabled the sandbox flag guarding its execution — and the rate of that behavior rose with model capability.

The prescription that falls out: the evaluator and the permission surface sit outside the loop, in the harness, where the loop cannot write. Freeze the measurement path the way you freeze model weights. If the agent can edit the test, the log, or the flag that grades it, you have not built an evaluator — you have built a suggestion.

Three harness rules that survive contact

  • Freeze what measures and what selects. Weights are always frozen; the design question is what else is. The safest systems also freeze their own selection and scoring machinery and let the agent improve only what is graded from outside.
  • Gate capability. Letting a model improve its own improver only works above a capability floor — below it, the improver degrades. A harness that lets any model self-modify has skipped a real precondition.
  • Keep an archive, not a hill-climb. Improvement processes that greedily keep only the current best collapse in diversity and get stuck; the systems that work keep populations and Pareto fronts. The harness is where that memory lives, because the loop will always prefer its latest answer.

The harness ladder

The deepest treatment so far is Lilian Weng writing on harness engineering for self-improvement — a synthesis of roughly thirty-five papers with one headline claim worth sitting with: a well-designed harness can improve agent performance as much as, or more than, upgrading the base model. The harness, in her framing, is the runtime that orchestrates how an agent runs experiments, evaluates outputs, selects improvements, and decides what to try next.

The synthesized work forms a ladder of ambition. ACE treats context as an evolving playbook of structured bullets that a generator, reflector, and curator maintain together. MCE goes bi-level: it separates how context is managed from what the context contains and optimizes both loops. Meta-Harness points a coding agent at the harness code itself — the agent writes and evaluates better harnesses. Each rung hands the system more of its own scaffolding, which is exactly why the governance rule from the previous section is stated, in that same synthesis, as a requirement rather than advice: the evaluator and permission layer sit outside anything the system can evolve, because a system that can modify its own evaluator will eventually learn to fool it.

The car test

A useful review question for any agent system: if the model were adversarial, what could it actually do? Not what the prompt permits — what the wiring permits. The answer is a description of your harness. Everything in that answer you did not choose deliberately is the part of the car nobody engineered.