Google Research introduces Harness², a method aimed at improving an AI agent without touching its core model, by adjusting the surrounding framework. This framework, called a ‘harness’, groups together the instructions, tools, memory, and control loop that guide the model. The approach aims to adapt this harness at runtime, even for tasks its designers did not anticipate.
The starting point is simple: no single harness is best for everything. According to the presented elements, Claude Code gets better results on code and spreadsheets, while Codex leads on web tasks. A fixed harness therefore leaves performance on the table.
Why Automatic Instruction Rewriting Fails
Letting an agent rewrite its own system prompt, meaning the initial instructions it is given, seems promising. In practice, this can degrade results. These instructions are re-read throughout the task, and the longer they get, the more tokens they consume, the units of text processed by the model. When this budget is exhausted, the agent can fail before finishing.
Harness² therefore does not act on the text of the instructions. It modifies eight components grouped into four families: context, tool interface, delegation to sub-agents, and ‘middlewares’, extensions that intervene in the tool-use loop. A rule written in a prompt remains a suggestion, while a rule placed in the control loop is enforced. Two fixes illustrate this difference: a monitoring mechanism that forces the agent to write before exhausting its budget, and a script that blocks the end of a task as long as a spreadsheet contains missing formulas.
Propose, Test, Compose
The process unfolds in three steps. The agent executes the task once, then two editors analyze the execution log: one examines the inner workings of the workflow, the other proposes business rules. The modified harness is then run again on the same task, and the two attempts are compared. A modification is only kept if it fixes a concrete, observable failure. According to the research, this testing step is crucial: without it, performance would have dropped by about 10%.
Reported Results and Limitations
The tests cover three professional benchmark suites, in four model and harness configurations, using GLM-5 and Gemini 3.5 Flash. The reported gains go up to 11.5 points on WorkBuddy-Bench, 4.5 points on JobBench, and 11.8 percentage points on LAB, in partial success rate. A harness optimized with a powerful model also improved the results of a smaller model by 17 points. Conversely, ReasoningBank, a reference memory base, scored 6.6 points lower than the base harness on programming tasks.
The author of the source article installed the project, which runs on Linux with Python 3.12, and launched its demonstration, which completed without failure on two accounting tasks. They note, however, that the demonstration is not the method: most components remain empty or are simple placeholders, and the part described in the article only appears once a model is connected.
