Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk.
Authorization notice. This tool is dual-use. Only use it on software, sites and systems you own or have explicit permission to test, and follow the relevant licenses and terms of service.
WhoAgent builder who wants to copy the winning edits into a hand-maintained harness instead of re-running refinement
The problemYou get a better score but do not know which of the eight editable components changed or what lesson justified it.
The outcomeA short list of concrete edits (system prompt, guardrails, memory, tool guidance and so on) with their stated evidence, ready to port by hand.
Steps
Finish a refinement run, for example: harness2 --bench lab --k 1 --mode parallel --only-domains antitrust-competition --max-tasks 1
Open the benchmark folder under runs/ and find the adopted harnesses and reflection notes.
Compare the adopted harness against the base harness, component by component.
Note which edits came from the general candidate versus the domain-specific candidate.
Copy the edits you trust into your own agent setup.
Prompt for your agent
After a google-research/harness2 run on <benchmark>, open the runs/ folder and list every adopted harness edit grouped by component (system prompt, guardrails, memory, tool guidance, subagents, skills, scripts, plugins). Verify each edit has a matching reflection note before recommending I port it.
Caveat. The README does not document the exact file layout inside runs/, so inspect the actual output folders rather than assuming a structure, and treat a single run's lessons as hypotheses.
Run the built-in demo to see both recursion modes edit a harness with real Python executions and zero credentials.
Beginner
15 minutes
Any agent
Seen in the wild
Evidence (similar to what people reported): X, Oct 2026
WhoCurious developer who saw Harness2 trending and wants proof it runs before investing in setup
The problemYou cannot tell whether a self-improving harness framework actually works without wiring up models and paying for API calls.
The outcomeA runs/demo folder showing parallel and sequential recursion with deterministic editors, produced locally in seconds.
Steps
Create the environment: uv venv --python 3.12 .venv
Activate it: source .venv/bin/activate
Install the package: uv pip install -e '.[render]'
Run the demo: harness2-demo --output runs/demo --k 2
Open the runs/demo folder and read the adopted harnesses and reflection notes.
Prompt for your agent
Clone google-research/harness2, set up a Python 3.12 uv environment, install it, and run harness2-demo with --k 2 into runs/demo. Summarize what files were produced and verify the demo ran without any model credentials.
Caveat. The demo uses deterministic editors, not real models, so it shows the mechanics of the loop and says nothing about real-world score gains.
In google-research/harness2, set up WorkBuddy-Bench with harness2-setup wb and run one task from --subset office with --k 1 --mode parallel, then judge and report with identical flags. Verify Docker is running first and that the subset flag is passed on every command after setup.
Caveat. WorkBuddy-Bench needs Docker and the --subset flag on every command after setup, and the README guide for WorkBuddy should be checked for the exact task-selection flags before running.
Judge the result: harness2-judge --bench lab --k 1 --mode parallel
Read the summary: harness2-report --bench lab --k 1 --mode parallel
Prompt for your agent
In google-research/harness2, run the LAB benchmark for one antitrust-competition task with --k 1 --mode parallel, then run harness2-judge and harness2-report with the same flags. Confirm judge and report used identical benchmark, k, mode and seed as the refinement run.
Caveat. Judge and report must use the same benchmark, executor, subset, --k, --mode and seed as the refinement run, and model-backed runs cost real API money, so keep --max-tasks at 1.
Before running any model-backed benchmark in google-research/harness2, read the web access section in docs/EXPERIMENTS.md and tell me what network restrictions to configure for <benchmark>. Then run a --dry-run preview and verify task selection looks right.
Caveat. Authorized use only: run this only inside infrastructure you control, since the README states executors have unrestricted network access and Codex runs with its sandbox disabled, and public rubrics may be online.
Judge each run: harness2-judge --bench lab --k 2 --mode parallel and harness2-judge --bench lab --k 2 --mode sequential
Report each run: harness2-report --bench lab --k 2 --mode parallel and harness2-report --bench lab --k 2 --mode sequential
Compare the two reports and the adopted harnesses.
Prompt for your agent
Using google-research/harness2, run LAB on one task with --k 2 in both parallel and sequential modes, judge and report each, and tabulate the scores side by side. Verify both runs used the same task selection and seed before comparing.
Caveat. A single task is a very noisy comparison, and the README ties each judge and report call to its own mode, k and seed, so run the full command set once per mode.
Switch from the default OpenCode executor to Codex to see how the executor changes refined-harness results.
Advanced
1 hour 30 minutes
From the README
Codex
WhoDeveloper who already uses Codex as a coding agent and wants harness improvements tuned to that executor
The problemHarness edits that help one executor may not carry over to another, and you have no way to check without a controlled run.
The outcomeA refinement run on Codex whose results are stored separately so you can compare it against an OpenCode run.
Steps
Read the Codex executor section in docs/SETUP.md and finish its prerequisites.
Install a benchmark: harness2-setup jb
Run with Codex: harness2 --bench jb --k 1 --mode parallel --substrate cx --max-tasks 1
Use a fresh HARNESS2_RUNS_DIR when changing models or task selection.
Judge and report with matching flags: harness2-judge --bench jb --k 1 --mode parallel --substrate cx
Prompt for your agent
In google-research/harness2, run one JobBench task with --substrate cx and --k 1 --mode parallel, then judge it with matching flags. Verify the run completes under its own runs directory and that network restrictions are configured first.
Caveat. Codex runs with its sandbox disabled and executors get open web access, so run it only in an isolated environment, and confirm whether judge and report also need the substrate flag in the experiment guide.
Re-issue the same command to continue a multi-task run without redoing finished tasks.
Intermediate
30 minutes
From the README
Any agent
WhoResearcher running a larger JobBench or LAB sweep that was interrupted by a crash or quota limit
The problemLong model-backed runs cost money, and restarting from scratch after an interruption wastes both time and API spend.
The outcomeA completed run that picked up where it stopped, with results kept under the same runs directory.
Steps
Note the exact command you used, including --bench, --k, --mode, any subset flags and seed.
Re-run the identical harness2 command to resume.
Use a new HARNESS2_RUNS_DIR only if you changed models or task selection.
Run harness2-judge and harness2-report with the same flags once refinement finishes.
Check each command's --help for extra options.
Prompt for your agent
My google-research/harness2 run on <benchmark> stopped partway. Reconstruct the exact original command, re-run it to resume, and verify that previously finished tasks were not repeated by checking the runs/ folder.
Caveat. Resume only works when you repeat the same benchmark, executor, subset, --k, --mode and seed, and changing models or task selection requires a new HARNESS2_RUNS_DIR.
Who it is forFor builders who run LLM agents on professional tasks and want to improve the prompts, tools, memory and skills around a fixed model without fine-tuning it.
Why it is hotabout +853 stars a day since launch, 11k total, launched 13 days ago, talked about in 3 AI sources we track