Google Research releases Harness² for agents to improve their harnesses
Google Research's open-source Harness² lets agents test edits to prompts, skills, hooks and memory around a frozen model. Editor, composer and reflector agents retain verified improvements for later tasks.

TL;DR
- Harness² edits the scaffolding around a frozen model, with OpenCode and Codex support described in the release announcement.
- Lessons persist across tasks: the overview describes agents retaining useful changes to prompts, tools, memory and workflows.
- Gemini 3.5 Flash gained 8.4 points on WorkBuddy-Bench in the reported results, with larger recursion budgets producing further improvements.
The local demo runs real Python executions without model credentials. A JobBench case study starts with an agent that never reopened its own output files.
Propose, probe, compose
At a recursion budget of k=1, the loop described in the paper involves four executions of the same task:
- Baseline: Run the starting harness and record its trajectory and deliverable.
- Propose: An editor drafts two executable candidates. One targets general weaknesses such as planning or tool use; the other targets domain-specific procedures and constraints.
- Probe: Execute both candidates with the model and environment configurations held constant.
- Compose: Compare the trajectories and edits, selectively combine supported changes, then execute the resulting harness. Composition can also preserve the original harness.
The loop receives no ground-truth answers. The authors flag execution randomness and shared model biases as limits on what these behavioral comparisons establish.
Eight editable components
The execution harness exposes eight file-mounted components, documented in the repository:
- System prompt
- Guardrails
- Memory
- Tool guidance
- Subagents
- Skills
- Scripts
- Plugins
Skills and scripts account for roughly half of edits, according to the technical walkthrough.
Improvement library
Harness²'s clever split: every task starts from the common base harness, while the improver preserves its experience in a separate library.
After each task, the reflector reviews the complete improvement record and saves:
- An executable harness: Components available for later reuse or adaptation.
- An
EXPERIENCE.mdfile: Applicable situations, lessons and supporting execution evidence.
An index lets later editing and composition sessions inspect relevant entries on demand. The improvement library stays fixed during a task and updates afterward.
In the authors' ablation, removing the library reduced WorkBuddy-Bench performance from 77.5 to 74.4 and JobBench performance from 36.0 to 34.2.
Parallel and sequential recursion
The experiment controls expose two ways to spend the task-level budget:
- Parallel,
--k K --mode parallel: ProbeKgeneral candidates andKdomain-specific candidates, then produceKcompositions. - Sequential,
--k K --mode sequential: ChainKimprovement steps, carrying forward the refined harness and accumulated execution evidence.
Parallel k=5 entails 20 executor runs per task: five reference runs, ten candidate probes and five composed-harness executions. Editing, composition and reflection require additional model calls.
For budgets above one, an agentic selector compares anonymized deliverables against the task request and source materials. It selects an existing output without seeing which harness produced it.
Benchmark gains
With Gemini 3.5 Flash and OpenCode, WorkBuddy-Bench's average score rose from 72.4 to 77.5 after one step, +5.1 points. Parallel recursion at k=5 reached 80.8, +8.4 points over the base harness, according to the project's results, which report means across three runs.
Across four model-harness configurations involving GLM-5 and Gemini 3.5 Flash, the paper reports maximum single-step gains of:
- WorkBuddy-Bench: +11.5 points.
- JobBench: +4.5 points on professional job tasks.
- Legal Agent Benchmark: +11.8 percentage points in Partial, its per-criterion pass rate.
Executor permissions
Executor network access is unrestricted, and Codex runs with its sandbox disabled, according to the README's web-access note. The maintainers flag access to public benchmark answers and grading criteria as an evaluation-leakage risk.