Google Cloud AI Research released Google Harness2 as open source — a recursive framework that improves agents without touching model weights. Your agent can get better without a “better” model: it trains 0 parameters and edits 8 harness components. A single refinement step improved all 4 model-and-harness setups across 3 benchmarks. On WorkBuddy-Bench, GLM-5 under OpenCode rose from 64.2 to 75.7, a +11.5 point jump.
What is Harness²?
Harness² is a plug-and-play framework from Google Research that refines an agent’s harness during deployment. The harness is everything around a model: prompts, tools, memory, skills, and orchestration. Harnessing optimizes that system; the model weights remain frozen.
The target is the open world: tasks arrive unseen and no verifier labels answers as correct. The team argues many self-improvement methods assume labels or test cases. Harness² is built to work without them, relying on behavioral contrasts instead.
The framework focuses on the surroundings: context, tool interface, delegation, and behavior inside the tool loop. This lets businesses lift agent quality without retraining or swapping the base model.
What are the 8 harness components?
Harness² exposes 8 editable components, each mounted as a file. Together they address context construction, tool interface, delegation, and in-loop behavior.
- System prompt
- Guardrails
- Memory
- Tool guidance
- Subagents
- Skills
- Scripts
- Plugins (middleware)
This extends an earlier 7-file split from Agentic Harness Engineering by 1 component, enabling more granular control.
Only the harness changes. The framework acts as an editor proposing and adopting changes backed by observed behavior.
How does recursive agent harnessing work?
Harness² runs two linked levels of recursion: task-level and harnessing-level. They turn observations into durable gains without labels.
Task-level: a contrastive Propose, Probe, Compose loop. First, the agent runs the task with the base harness. Then the editor proposes 2 candidates: an invariant one for general failures (planning, tool use) and a domain one for current-domain knowledge and procedures. Both candidates run on the same task. The composer compares their trajectories to the reference and keeps only edits supported by behavior.
Harnessing-level: after each task, a reflector stores the adopted harness and an EXPERIENCE.md of lessons. This library guides future proposals. Each new task still starts from the base harness.
The budget k scales the search. In parallel mode, it probes k invariant and k domain candidates, then makes k compositions. In sequential mode, it chains k refinement steps. Reported gains include WorkBuddy rising to 80.8 with k=5.
How does Harness² perform on benchmarks?
The team evaluated 3 professional benchmarks: WorkBuddy-Bench, JobBench, and Harvey’s LAB. Executors were Gemini 3.5 Flash and GLM-5 under OpenCode and Codex. The default editor was Claude Opus 4.8. Scores are means over 3 runs. The table shows a single refinement step with k=1.
| Setup (single step, k=1) | WorkBuddy Avg | JobBench | LAB Partial |
|---|---|---|---|
| Gemini 3.5 Flash, OpenCode | 72.4 → 77.5 | 31.5 → 36.0 | 79.9 → 81.9 |
| Gemini 3.5 Flash, Codex | 74.5 → 77.5 | 33.9 → 35.3 | 71.6 → 75.6 |
| GLM-5, OpenCode | 64.2 → 75.7 | 20.6 → 24.2 | 59.6 → 71.4 |
| GLM-5, Codex | 64.4 → 75.3 | 23.6 → 24.8 | 58.1 → 65.9 |
Weaker executors gained more. After one step, GLM-5 beat base Gemini 3.5 Flash on WorkBuddy-Bench. With parallel recursion at k=5, Gemini under OpenCode reached 80.8 on WorkBuddy. On WorkBuddy-Bench, 3 of 4 setups also used fewer steps per task; for Gemini under OpenCode it fell from 25.4 to 21.9.
Largest jump: GLM-5 under OpenCode from 64.2 to 75.7 on WorkBuddy-Bench (+11.5). Smallest gain: GLM-5 under Codex on JobBench — 23.6 to 24.8 (+1.2).
How does Google Harness2 compare to other harness methods?
Harness² edits the full 8-component harness per task, learns across tasks via a lessons library, and requires no training split. Below is a side-by-side with Meta-Harness, ReasoningBank, and Harness Scaling across features and reported scores.
| Feature | Harness² | Meta-Harness | ReasoningBank | Harness Scaling |
|---|---|---|---|---|
| Developers | Google Cloud AI Research, Northwestern | Stanford IRIS Lab and co-authors | Google Research and co-authors | Wang et al. |
| What changes | Full 8-component harness, per task | Harness code, searched offline | Retrieved memory; harness fixed | Harness, revised per instance |
| Needs training split | No | Yes | No | No |
| Learns across tasks | Yes (library + lessons) | Deploys 1 best harness | Yes (memory) | No |
| Code license | Apache-2.0 | MIT | Not disclosed | Not disclosed |
| WorkBuddy Avg, Gemini/OpenCode* | 77.5 (80.8 at k=5) | 76.4 | 73.4 | 75.3 |
| JobBench, Gemini/OpenCode* | 36.0 | 35.8 | 30.8 | 32.9 |
| LAB Partial, Gemini/Codex* | 75.6 | 76.5 | 74.8 | 67.9 |
*Scores as measured in the Harness² paper; the other methods did not report these benchmarks themselves.
how to run Google Harness2?
The README targets Linux, Python 3.12 or 3.13, and uv. A local demo runs both recursion modes without model credentials.
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2Model-backed runs require Node.js 20+, the Google Cloud CLI, and a Vertex AI project. LAB needs Pandoc and Poppler. WorkBuddy-Bench needs Docker. Executors default to OpenCode, or Codex with --substrate cx. GPU requirements are not disclosed.
FAQ
how to run Google Harness2?
Start with Linux and Python 3.12/3.13, then install uv. Launch the local demo without model creds using harness2-demo --output runs/demo --k 2. For full runs, add Node.js 20+, the Google Cloud CLI, and a Vertex AI project; install Pandoc and Poppler for LAB, and Docker for WorkBuddy-Bench. OpenCode is the default executor; switch to Codex via --substrate cx. GPU needs are not disclosed.
Google Harness2 pricing?
Harness² is open source under Apache-2.0. The framework itself trains 0 parameters and only edits the harness. If you call models via Vertex AI, compute costs depend on your project and platform rates, but specific prices are not provided in the source. GPU requirements are also not disclosed.
Google Harness2 vs Meta-Harness comparison?
Harness² edits all 8 harness components and learns across tasks via a lessons library. Meta-Harness searches harness code offline and needs a training split. On WorkBuddy Avg (Gemini/OpenCode), Harness² posts 77.5 (up to 80.8 at k=5) vs 76.4 for Meta-Harness; on JobBench it’s 36.0 vs 35.8; on LAB Partial (Gemini/Codex) it’s 75.6 vs 76.5.
Google Harness2 for small teams?
Yes. Since weights stay frozen and nothing is retrained, teams can focus on editing prompts, guardrails, skills, and plugins. One refinement step already improved all 3 benchmarks, with weaker executors gaining more. This suits small teams seeking quick quality gains without retraining models.
What is Harness² and how does it work?
It’s a recursive framework that rewrites an agent’s harness at test time. At task level, Propose, Probe, Compose tries an invariant and a domain candidate; at harnessing level, a reflector stores adopted edits and an EXPERIENCE.md of lessons. The search scales with k (e.g., k=5). Model weights remain frozen.
Based on MarkTechPost.