Harness² is een plug-and-play framework dat is ontworpen om de omgeving (de 'harness') rondom een AI-model te optimaliseren, zodat het model beter kan functioneren als een agent in onvoorziene scenario's. In plaats van de modelgewichten aan te passen, richt Harness² zich op het verfijnen van componenten zoals systeem-prompts, geheugen, tools en plugins.
Het systeem maakt gebruik van twee recursieve niveaus:
- Taakniveau-recursie: Gebruikt een Propose–Probe–Compose-methode om de uitvoering van een specifieke taak direct te verbeteren zonder dat er grondwaarheid-feedback nodig is.
- Harnessing-niveau-recursie: Slaat lessen en verbeteringen op in een persistente harness om toekomstige prestaties te verhogen.
Uit tests op benchmarks zoals JobBench, LAB en WorkBuddy-Bench blijkt dat Harness² significante prestatieverbeteringen oplevert voor modellen zoals GLM-5 en Gemini 3.5 Flash. Technisch gezien is het framework compatibel met Linux en Python 3.12, en ondersteunt het zowel parallelle als sequentiële recursie.
Harness²: Recursief Agent-harnessing voor een Open Wereld
Harness² is een plug-and-play framework voor recursief agent-harnessing in een open wereld, waarbij agenten taken tegenkomen die niet eerder zijn gezien tijdens het ontwerp van de harness. Het verbindt twee niveaus van recursie terwijl de modelgewichten vast blijven:
- Taakniveau-recursie: Verfijnt de executie-harness voor de huidige taak via een contrastieve Propose–Probe–Compose-stap: edits voorstellen, hun effecten op dezelfde taak testen (proben) en een verfijnde harness samenstellen op basis van gedragscontrasten tussen executies, zonder dat er grondwaarheid-feedback (ground-truth feedback) nodig is.
- Harnessing-niveau-recursie: Actualiseert een persistente verbeterings-harness met aangenomen harnesses en bewijs-ondersteunde lessen uit elke taak om toekomstige verfijningen te sturen.
Over drie professionele benchmarks en vier model-harness configuraties verbetert een enkele Harness²-stap GLM-5 en Gemini 3.5 Flash ten opzichte van hun basis-harnesses. De winst bedraagt tot 11,5 punten op WorkBuddy-Bench, 4,5 punten op JobBench en 11,8 procentpunten op het gedeeltelijke slaagpercentage van LAB. Het verhogen van het budget voor taakniveau-recursie levert verdere winst op.
De release ondersteunt parallelle en sequentiële recursie, OpenCode- en Codex-executors, en de benchmarks JobBench, LAB en WorkBuddy-Bench.
Harness-componenten
Harness² stelt acht bewerkbare componenten rond het model beschikbaar:
- Systeem-prompt
- Guardrails
- Geheugen
- Tool-begeleiding
- Sub-agenten
- Vaardigheden
- Scripts
- Plugins
Deze componenten controleren de constructie van de context, de tool-interface, delegatie en het gedrag binnen de tool-loop.
Installatie
Gebruik Linux, Python 3.12 en uv.
Voer vanuit de root van de repository de volgende commando's uit:
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2
De lokale demo draait beide recursiemodi met deterministische editors en echte Python-executies. Hiervoor zijn geen model-credentials vereist.
Voor benchmarks op basis van modellen moeten Node.js 20+, de Google Cloud CLI en de benchmark-afhankelijkheden worden geïnstalleerd. LAB vereist Pandoc en Poppler; WorkBuddy-Bench vereist Docker. Configureer vervolgens de modellen:
cp .env.example .env
# Bewerk .env met uw Vertex AI project- en model-ID's.
gcloud auth application-default login
Raadpleeg de installatiehandleiding voor modelinstellingen, alternatieve authenticatiemethoden en de Codex-executor.
Een benchmark uitvoeren
Het volgende voorbeeld installeert LAB, voert één taak uit, en evalueert en rapporteert vervolgens het resultaat. Runs op basis van modellen brengen API-kosten met zich mee; begin met een kleine selectie van taken.
harness2-setup lab
harness2-check --bench lab
harness2 --bench lab --k 1 --mode parallel \
--only-domains antitrust-competition --max-tasks 1
harness2-judge --bench lab --k 1 --mode parallel
harness2-report --bench lab --k 1 --mode parallel
Sequentiële recursie voert dezelfde commando's uit met --mode sequential. De parameter --k bepaalt het budget voor taakniveau-recursie (zie Experimenten). Het beoordelen (judging) en rapporteren moet gebruikmaken van dezelfde benchmark, executor, subset, --k, --mode en seed als de verfijningsrun. Voeg --dry-run toe aan harness2 om de taakselectie te bekijken zonder model-aanroepen te doen.
Beschikbare Benchmarks
| Benchmark | Taken | Installatie | Handleiding |
| JobBench | Professioneel werk | harness2-setup jb | JobBench |
| LAB | Juridisch werk | harness2-setup lab | LAB |
| WorkBuddy-Bench | Kantoor, web en code | harness2-setup wb | WorkBuddy |
Kies één benchmark per commando. WorkBuddy accepteert daarnaast --subset office, --subset web of --subset code bij elk commando na de installatie. De benchmark-handleidingen bevatten informatie over data, domeinen en beoordeling.
Experimenten
Taakniveau-recursie kan op twee manieren worden geschaald:
- Parallelle recursie: Onderzoekt meerdere kandidaat-harnesses en stelt verfijningen samen op basis van hun executiebewijs.
- Sequentiële recursie: Neemt de verfijnde harness en het verzamelde bewijs mee door opeenvolgende Propose–Probe–Compose-stappen.
Parallelle recursie verkent breder; sequentiële recursie verfijnt dieper.
| Optie | Gedrag |
--k 1 | Eén Propose–Probe–Compose-stap |
--k K --mode parallel | Probeert K algemene en K domeinspecifieke kandidaten, en produceert vervolgens K composities |
--k K --mode sequential | Verfijnt de harness via K opeenvolgende stappen |
--substrate cx | Gebruikt Codex in plaats van de standaard OpenCode-executor |
Na elke taak behoudt de harnessing-niveau-recursie de aangenomen harness en de bewijs-ondersteunde lessen om toekomstige verfijningen te sturen. Zie de experimenthandleiding voor taakselectie, gelijktijdigheid, reproduceerbaarheid en baseline-vergelijkingen.
Webtoegang
Netwerktoegang voor de executor is onbeperkt, en Codex draait met de sandbox uitgeschakeld. Openbare benchmark-rubrieken kunnen online toegankelijk zijn. Configureer vóór evaluatie netwerkbeperkingen om te voorkomen dat er toegang wordt verkregen tot benchmark-antwoorden en beoordelingscriteria.
Resultaten en hervatten
Resultaten worden opgeslagen onder runs/, georganiseerd per benchmark en, indien van toepassing, per subset. Deze bevatten taakoverzichten, deliverables, aangenomen harnesses, reflectienotities en evaluatieresultaten.
Herhaal hetzelfde commando om een run te hervatten. Gebruik een nieuwe HARNESS2RUNSDIR bij het wijzigen van modellen of de taakselectie. Elk commando ondersteunt ook --help.
Citatie
@article{xu2026harness2,
title = {Harness$^2$: Recursive Agent Harnessing for an Open World},
author = {Xu, Ruiyao and Chen, Yanfei and CuiZhu, Zhongying and Dalvi Mishra, Bhavana and Ming, Yifei and Yu, Han and Han, Rujun and Lee, Chen-Yu and Pfister, Tomas},
journal = {arXiv preprint arXiv:2610.14224},
year = {2026},
url = {https://arxiv.org/abs/2610.14224}
}
Bijdragen
Zie CONTRIBUTING.md.
Licentie
Harness² is gelicentieerd onder Apache 2.0. Code van derden onder third_party/, benchmarks en datasets behouden hun eigen upstream-licenties; zie de berichten over software van derden.
Disclaimer
Dit is geen officieel ondersteund Google-product. Dit project komt niet in aanmerking voor het Google Open Source Software Vulnerability Rewards Program.
Harness²: Recursief Agent-harnessing voor een Open Wereld
Harness² is een plug-and-play framework voor recursief agent-harnessing in een open wereld, waarbij agenten taken tegenkomen die niet eerder zijn gezien tijdens het ontwerp van de harness. Het verbindt twee niveaus van recursie terwijl de modelgewichten vast blijven:
- Taakniveau-recursie: Verfijnt de executie-harness voor de huidige taak via een contrastieve Propose–Probe–Compose-stap: edits voorstellen, hun effecten op dezelfde taak testen (proben) en een verfijnde harness samenstellen op basis van gedragscontrasten tussen executies, zonder dat er grondwaarheid-feedback (ground-truth feedback) nodig is.
- Harnessing-niveau-recursie: Actualiseert een persistente verbeterings-harness met aangenomen harnesses en bewijs-ondersteunde lessen uit elke taak om toekomstige verfijningen te sturen.
Over drie professionele benchmarks en vier model-harness configuraties verbetert een enkele Harness²-stap GLM-5 en Gemini 3.5 Flash ten opzichte van hun basis-harnesses. De winst bedraagt tot 11,5 punten op WorkBuddy-Bench, 4,5 punten op JobBench en 11,8 procentpunten op het gedeeltelijke slaagpercentage van LAB. Het verhogen van het budget voor taakniveau-recursie levert verdere winst op.
De release ondersteunt parallelle en sequentiële recursie, OpenCode- en Codex-executors, en de benchmarks JobBench, LAB en WorkBuddy-Bench.
Harness-componenten
Harness² stelt acht bewerkbare componenten rond het model beschikbaar:
- Systeem-prompt
- Guardrails
- Geheugen
- Tool-begeleiding
- Sub-agenten
- Vaardigheden
- Scripts
- Plugins
Deze componenten controleren de constructie van de context, de tool-interface, delegatie en het gedrag binnen de tool-loop.
Installatie
Gebruik Linux, Python 3.12 en uv.
Voer vanuit de root van de repository de volgende commando's uit:
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2
De lokale demo draait beide recursiemodi met deterministische editors en echte Python-executies. Hiervoor zijn geen model-credentials vereist.
Voor benchmarks op basis van modellen moeten Node.js 20+, de Google Cloud CLI en de benchmark-afhankelijkheden worden geïnstalleerd. LAB vereist Pandoc en Poppler; WorkBuddy-Bench vereist Docker. Configureer vervolgens de modellen:
cp .env.example .env
# Bewerk .env met uw Vertex AI project- en model-ID's.
gcloud auth application-default login
Raadpleeg de installatiehandleiding voor modelinstellingen, alternatieve authenticatiemethoden en de Codex-executor.
Een benchmark uitvoeren
Het volgende voorbeeld installeert LAB, voert één taak uit, en evalueert en rapporteert vervolgens het resultaat. Runs op basis van modellen brengen API-kosten met zich mee; begin met een kleine selectie van taken.
harness2-setup lab
harness2-check --bench lab
harness2 --bench lab --k 1 --mode parallel \
--only-domains antitrust-competition --max-tasks 1
harness2-judge --bench lab --k 1 --mode parallel
harness2-report --bench lab --k 1 --mode parallel
Sequentiële recursie voert dezelfde commando's uit met --mode sequential. De parameter --k bepaalt het budget voor taakniveau-recursie (zie Experimenten). Het beoordelen (judging) en rapporteren moet gebruikmaken van dezelfde benchmark, executor, subset, --k, --mode en seed als de verfijningsrun. Voeg --dry-run toe aan harness2 om de taakselectie te bekijken zonder model-aanroepen te doen.
Beschikbare Benchmarks
| Benchmark | Taken | Installatie | Handleiding |
| JobBench | Professioneel werk | harness2-setup jb | JobBench |
| LAB | Juridisch werk | harness2-setup lab | LAB |
| WorkBuddy-Bench | Kantoor, web en code | harness2-setup wb | WorkBuddy |
Kies één benchmark per commando. WorkBuddy accepteert daarnaast --subset office, --subset web of --subset code bij elk commando na de installatie. De benchmark-handleidingen bevatten informatie over data, domeinen en beoordeling.
Experimenten
Taakniveau-recursie kan op twee manieren worden geschaald:
- Parallelle recursie: Onderzoekt meerdere kandidaat-harnesses en stelt verfijningen samen op basis van hun executiebewijs.
- Sequentiële recursie: Neemt de verfijnde harness en het verzamelde bewijs mee door opeenvolgende Propose–Probe–Compose-stappen.
Parallelle recursie verkent breder; sequentiële recursie verfijnt dieper.
| Optie | Gedrag |
--k 1 | Eén Propose–Probe–Compose-stap |
--k K --mode parallel | Probeert K algemene en K domeinspecifieke kandidaten, en produceert vervolgens K composities |
--k K --mode sequential | Verfijnt de harness via K opeenvolgende stappen |
--substrate cx | Gebruikt Codex in plaats van de standaard OpenCode-executor |
Na elke taak behoudt de harnessing-niveau-recursie de aangenomen harness en de bewijs-ondersteunde lessen om toekomstige verfijningen te sturen. Zie de experimenthandleiding voor taakselectie, gelijktijdigheid, reproduceerbaarheid en baseline-vergelijkingen.
Webtoegang
Netwerktoegang voor de executor is onbeperkt, en Codex draait met de sandbox uitgeschakeld. Openbare benchmark-rubrieken kunnen online toegankelijk zijn. Configureer vóór evaluatie netwerkbeperkingen om te voorkomen dat er toegang wordt verkregen tot benchmark-antwoorden en beoordelingscriteria.
Resultaten en hervatten
Resultaten worden opgeslagen onder runs/, georganiseerd per benchmark en, indien van toepassing, per subset. Deze bevatten taakoverzichten, deliverables, aangenomen harnesses, reflectienotities en evaluatieresultaten.
Herhaal hetzelfde commando om een run te hervatten. Gebruik een nieuwe HARNESS2RUNSDIR bij het wijzigen van modellen of de taakselectie. Elk commando ondersteunt ook --help.
Citatie
@article{xu2026harness2,
title = {Harness$^2$: Recursive Agent Harnessing for an Open World},
author = {Xu, Ruiyao and Chen, Yanfei and CuiZhu, Zhongying and Dalvi Mishra, Bhavana and Ming, Yifei and Yu, Han and Han, Rujun and Lee, Chen-Yu and Pfister, Tomas},
journal = {arXiv preprint arXiv:2610.14224},
year = {2026},
url = {https://arxiv.org/abs/2610.14224}
}
Bijdragen
Zie CONTRIBUTING.md.
Licentie
Harness² is gelicentieerd onder Apache 2.0. Code van derden onder third_party/, benchmarks en datasets behouden hun eigen upstream-licenties; zie de berichten over software van derden.
Disclaimer
Dit is geen officieel ondersteund Google-product. Dit project komt niet in aanmerking voor het Google Open Source Software Vulnerability Rewards Program.