The competitive unit moved. Google Cloud AI Research's Harness² paper treats the agent as model plus harness, then spends the recursion budget on the harness while the weights stay frozen.

On 9 October 2026, the group posted arXiv:2610.14224, "Harness²: Recursive Agent Harnessing for an Open World," with code under Apache-2.0 at google-research/harness2. By mid-October the repository had climbed past 15,000 GitHub stars. The claim worth reading carefully is narrower than "agents improve themselves": a contrastive Propose-Probe-Compose step can refine prompts, tools, memory, skills, and related files on tasks that arrive without ground-truth verifiers, and a second recursion level keeps lessons for the next task.

Propose-Probe-Compose edits the harness while weights stay frozen

Harness² defines recursive agent harnessing as persistent changes to the runtime scaffolding around a frozen base model. The execution harness exposes eight editable components mounted as files: system prompt, guardrails, memory, tool guidance, subagents, skills, scripts, and plugins. Those files control context construction, the tool interface, delegation, and behaviour inside the tool loop.

Task-level recursion runs a contrastive improvement step. Propose drafts an invariant candidate (planning, tool use, context, delegation) and a domain-specific candidate from a reference execution. Probe runs each candidate on the same task under matched conditions and records behavioural contrasts against the reference. Compose selectively merges, revises, or rejects edits using those contrasts rather than a ground-truth score.

Parallel recursion widens the candidate pool for a budget k; sequential recursion chains successive Propose-Probe-Compose steps. At k=1 both modes collapse to a single contrastive step.

After the task returns a deliverable, harnessing-level recursion updates a continual improvement harness. The library keeps the adopted harness plus EXPERIENCE.md lessons that are supported by execution contrasts. The next task still starts from a common base harness H0; earlier components are reused or adapted through Propose rather than inherited wholesale. Model weights, stage instructions, and the decision rule stay fixed while the library evolves.

The authors frame two open-world problems this design targets: tasks arrive without reliable verifiers, and a harness tuned for one task often fails to transfer. Harness² answers the first with behavioural contrast and the second by learning how to refine, rather than shipping a single winning prompt pack.

Propose may reuse library components, but the paper insists task-specific facts be checked against the current task's evidence. Probe contrasts are evidence for composition, explicitly framed as imperfect because stochastic executions and shared model biases can fool a naive "winner" pick. Compose may merge supported changes, revise conflicts, adopt one candidate, or keep the current harness; each decision is tied to a concrete observation in the step record.

Parallel recursion collects multiple reference executions, proposes k invariant and k domain-specific candidates, then runs k independent composition sessions over the full pool. Sequential recursion starts from H0 and feeds each refined harness plus accumulated history into the next contrastive step. Final selection for k>1 compares anonymised deliverables only.

WorkBuddy, JobBench, and LAB show single-step lifts for GLM-5 and Gemini 3.5 Flash

The paper evaluates three professional benchmarks across four model-harness configurations that pair GLM-5 or Gemini 3.5 Flash with OpenCode or Codex executors. Main tables report means and standard deviations over three runs with shuffled task order. WorkBuddy-Bench covers office, web, and code domains. JobBench covers long professional job tasks. LAB (Harvey's Legal Agent Benchmark) reports Partial, the per-criterion pass rate. Tables also report #Steps so score changes can be read against how much execution they required.

Headline author-reported gains for a single Harness² step over the base harness: up to 11.5 points on WorkBuddy-Bench, 4.5 points on JobBench, and 11.8 percentage points on LAB Partial. Parallel recursion adds further mean gains in the paper's + Recursion rows (authors cite up to 3.9 / 4.2 / 6.7 on those three suites).

A budget study on WorkBuddy code shows scores continuing to rise as k grows under both parallel and sequential modes. The paper also reports that libraries accumulated under larger recursion budgets support stronger later edits even without additional probing, and that a library transferred from JobBench improves WorkBuddy-Bench (Figure 7 in the paper).

Baselines named in the setup include the unchanged base harness, ReasoningBank (retrieval of distilled strategies with a fixed harness), Meta-Harness (offline search against a training split), and Harness Scaling (per-instance revision without cross-task state). Figure 1 plots WorkBuddy domains for Gemini 3.5 Flash under OpenCode with parallel recursion at k=5 above the strongest baseline in every domain, with bars annotated by gain over the base harness.

The repository ships JobBench, LAB, and WorkBuddy-Bench runners, parallel and sequential modes, and OpenCode or Codex executors (--substrate cx selects Codex). A local demo path runs deterministic editors without model credentials. Model-backed runs need Vertex or alternative credentials and, for some benches, Docker, Pandoc, or Poppler. README install targets Linux, Python 3.12, and uv; WorkBuddy subsets can be filtered with --subset office|web|code.

Author tables compare against Meta-Harness and per-task revision, inside one harness file layout

Efficiency here is score change under a shared eight-component file layout, with #Steps reported so readers can weigh extra execution. Within-family comparison to the base harness is the cleanest reading of the single-step lift. Comparison to Meta-Harness tests whether online open-world recursion beats an offline-selected harness. Comparison to Harness Scaling tests whether carrying improvement state across tasks matters. Comparison to ReasoningBank tests harness file edits against retrieval-only memory.

Cross-vendor serving cost, different tool APIs, and different judge stacks fall outside those tables. LAB Partial follows Harvey's protocol; WorkBuddy and JobBench use their published grading paths. The paper notes that execution stochasticity and shared model biases limit how far behavioural contrasts can stand in for correctness. For k>1, an agentic selector picks among anonymised deliverables without seeing which harness produced them and without synthesising new content.

Same-model editor and executor configurations are part of the four setups: the paper includes cases where one model both edits the harness and runs the task. That is a useful stress for RSI claims, and it also concentrates model-family bias into both sides of the contrast. Readers comparing to a stronger external judge should treat those cells carefully.

Judge contamination, dollar cost, and non-professional domains stay outside the main tables

The release warns that executor network access is unrestricted and that Codex runs with its sandbox disabled, so public benchmark rubrics may be reachable online. The docs tell operators to restrict network access before evaluation. Frontier did not re-run JobBench at k=1 under locked-down networking for this piece.

Dollar cost per Propose-Probe-Compose step on Vertex or Codex is unsettled on the paper. Transfer beyond the three professional suites is unsettled. Whether a contaminated judge or leaked rubric inflated any reported cell is unsettled without a sealed re-run. Bitwise reproducibility of composed harness files across stochastic model calls is unsettled. Safety properties of autonomously edited guardrails and tool guidance are outside the reported metrics. Multi-tenant production orchestration (rate limits, human approval gates, secret redaction) is outside the benchmark harnesses as published.

Apache-2.0 code, arXiv PDF, and benchmark runners are public

Paper: arXiv:2610.14224 (posted 9 October 2026). Code is under Apache-2.0 at google-research/harness2; third-party and benchmark licences remain upstream. Project site: harness2.github.io. Authors list Ruiyao Xu with Google Cloud AI Research co-authors including Yanfei Chen, Zhongying CuiZhu, Bhavana Dalvi Mishra, Yifei Ming, Han Yu, Rujun Han, Chen-Yu Lee, and Tomas Pfister. The README states the project is not an officially supported Google product and is ineligible for Google's open-source vulnerability rewards programme.

Weights for GLM-5 and Gemini 3.5 Flash are outside this release; buyers bring their own model access. Training data for the improvement library is generated at runtime from the operator's task stream.

Pin k=1 on one internal task family before you trust the headline deltas

Reach for Harness² when you already operate an OpenCode- or Codex-shaped agent on professional workflows and you can afford multiple executions per task to harvest harness diffs. Start with k=1, one domain, and network restrictions that block rubric pages. Keep the adopted harness and EXPERIENCE.md entries under version control the same way you would keep prompt packs.

A practical first loop looks like the README's LAB path: harness2-setup, harness2-check, a single-domain harness2 --k 1 --mode parallel with --max-tasks 1, then the matching judge and report commands with identical k, mode, and seed. Resume under the same HARNESS2_RUNS_DIR; change models or task selection only after rotating that directory. Parallel mode at higher k explores wider candidate pools; sequential mode spends the budget on depth. Neither mode is free: each probe is another full agent execution.

Defer when your eval already has a strong verifier and a cheap offline searcher (Meta-Harness territory), when you cannot fund multi-execution probing, or when sandbox policy forbids the unrestricted network posture the default executors document. Treat the 11.5 / 4.5 / 11.8 figures as author-reported under named harnesses until your sealed re-run lands.

Harness RSI shifts from offline prompt search to open-world refinement with a memory of how it refined

Meta-Harness and related offline harness search methods pick a configuration before deployment. Harness Scaling revises per instance without carrying refinement state. ReasoningBank keeps the harness fixed and retrieves strategies. Earlier open-world lines either refine only the current task or carry a successful execution harness forward across batches. Harness² sits in that open-world line with a sharper split: it revises the current execution harness without ground-truth verifiers, then upgrades the improver that will revise the next one, while still restarting each task from a shared H0 rather than blindly inheriting the last tailored pack.

The paper's contribution list puts recursive agent harnessing, contrastive Propose-Probe-Compose (with parallel and sequential budgets), and the three-benchmark empirical package as the public claim set. Citation metadata points authors to Xu et al., arXiv:2610.14224 (2026).

Read beside weight-space RSI and self-rewarding model work only as a boundary: Harness² freezes weights on purpose. The object under recursion is the file-level harness. That is why the GitHub breakout matters for operators who already live in prompt, tool, and skill files: the unit of improvement matches the unit they already edit by hand.