Harness2 by Google Research – Recursive Agent Harnessing
TL;DR Highlight
Recursively refining the harness with fixed model weights raised benchmark scores by up to 11.8 points.
Who Should Read
A backend developer who hand-tunes prompts, tools and skills for agents and wonders whether that tuning can be automated.
Core Mechanics
- A harness is everything around the model
- It covers prompts, tools, memory, skills and orchestration.
- Optimizing that system is called harnessing.
- Eight components are editable
- They are system prompt, guardrails, memory, tool guidance, subagents, skills, scripts and plugins.
- They control context construction, the tool interface, delegation and behavior inside the tool loop.
- Each task runs Propose–Probe–Compose
- It proposes edits and probes their effects on the same task.
- It composes a refined harness from behavioral contrasts between executions, without ground-truth feedback.
- Lessons persist across tasks
- Adopted harnesses and evidence-supported lessons go into a persistent improvement harness.
- That record guides refinement on future tasks.
- A single step already improved scores
Community Reactions
How to Apply
- Run the local demo without API keys
- On Linux with Python 3.12 and uv, run harness2-demo --output runs/demo --k 2.
- It exercises both recursion modes with deterministic editors and real Python executions.
- Break your harness into the eight components
- List which of system prompt, guardrails, memory, tool guidance, subagents, skills, scripts and plugins you use today.
- Decide which ones to open to automatic edits first.
- Diff failed and successful runs to draft edits
- Run the same task at least twice and extract the behavioral differences.
- Draft prompt or tool-guidance edits from those differences and keep only adopted ones as lesson notes.
- Start benchmarks small and block the network
- Begin with --max-tasks 1 and --dry-run.
- Restrict executor network access before evaluation to prevent benchmark answer leaks.
Try It
# harness2 local demo (shell). No model credentials needed
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2
# Model-backed benchmarks cost money, so start small
harness2-setup lab
harness2-check --bench lab
harness2 --bench lab --k 1 --mode parallel --only-domains antitrust-competition --max-tasks 1 --dry-run
# Next: drop --dry-run, then run harness2-judge and harness2-report with the same optionsTerminology
Related Papers
Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
Saving long tool output to files cut GPT-5.1 accuracy by 11.3 points; naming the authoritative file restored it.
Fake News, Real Crashes: Information Injection Attacks on LLM Financial Trading Agents
Fake headlines hijacked LLM trading agents 62% of the time versus 14% for prompt injection.
Harness Engineering 101: The LLM is the brain, the harness is the body
An agent is a loop managing a JSON array; 16 chapters build one from scratch
Ousted Savannah police officer gave ICE agent husband access to Flock system
A police officer shared her Flock login with her ICE-agent husband; an audit found 983 searches and she was fired
Tmux and Claude Code: Sessions, Send-Keys, and the Ceiling
Running Claude Code agents in tmux works well, but limits appear around four agents.
Hybrid Reasoning Agents: LLM agents that think in latent space, act through text
Mixing latent reasoning with text tool use cut tokens by up to 54.7% and lifted performance 10.4%.