How metaevo-ai/harness-zero works
Harness-Zero runs a student under a minimal target harness, has a harnessing teacher review each unexecuted response against an adapted reference harness, then records accepted responses for supervised fine-tuning. The resulting model is deployed with the minimal harness rather than the evolved harness or reviewer. The graph preserves the documented SpreadsheetBench, AppWorld, and USPTO harness branches. Some wiring is documented in the README rather than shown in sampled source, so those subsystem links use only documented workflow relationships.
Main entry points: rollout.py Rollout runner · cli.py CLI · teacher.py Harnessing teacher · sft.py SFT builder
Components 23
Rollout orchestration
- CLI
src/harness_zero/cli.py - Rollout runner
src/harness_zero/rollout.py
Review runtime
- Student wrapper
src/harness_zero/student.py - Target harness
src/harness_zero/student_harness.py - Harnessing teacher
src/harness_zero/teacher.py - Review boundary
src/harness_zero/review.py - Review guidance
src/harness_zero/teacher_guidance.py - Harbor backend
src/deepagents_harbor/backend.py - Trajectory recorder
src/deepagents_harbor/trajectory.py
Distillation and deployment
- Trajectory store
src/harness_zero/store.py - SFT builder
src/harness_zero/sft.py - Reviewed SFT data
- Training loop
src/harness_zero/train.py - Distilled model
- Minimal deployment
src/harness_zero/agent_cli.py
Domain harnesses
- Reference harness K
harness_bank - Evolved harnesses
harness_bank - AppWorld environment
envs/appworld - AppWorld client
envs/appworld/runtime/client.py - AppWorld API service
envs/appworld/runtime/server.py - SpreadsheetBench harness
harness_bank/spreadsheetbench_student - USPTO harness
harness_bank/uspto_student
Other components
- Operator
Connections 25
- Operator → CLI: starts run
- CLI → Rollout runner: launches rollout
- Rollout runner → Student wrapper: runs student
- Rollout runner → Harnessing teacher: requests review
- Student wrapper → Target harness: uses target
- Harnessing teacher → Reference harness K: reviews against
- Harnessing teacher → Review boundary: submits decision
- Harnessing teacher → Review guidance: uses cues
- Rollout runner → Harbor backend: runs sandbox
- Harbor backend → Trajectory recorder: emits events
- Trajectory recorder → Trajectory store: records
- Rollout runner → Evolved harnesses: loads domain harness
- Rollout runner → Trajectory store: writes trials
- CLI → SFT builder: builds SFT
- SFT builder → Trajectory store: reads trials
- SFT builder → Reviewed SFT data: produces data
- CLI → Training loop: starts training
- Training loop → Reviewed SFT data: trains on
- Training loop → Distilled model: produces weights
- Minimal deployment → Distilled model: loads weights
- Target harness → AppWorld environment: uses dedicated setup
- AppWorld client → AppWorld API service: requests APIs
- AppWorld API service → AppWorld environment: loads task state
- Evolved harnesses → SpreadsheetBench harness: includes
- Evolved harnesses → USPTO harness: includes