What evaluation hooks should a harness expose for a conditional approval environment?
A harness design covering reset, agent loop, state diff and per-failure-mode graders, with trace and result formats suited to comparing model versions.
Evaluation hooks are easiest to build when the environment exposes state, not only text.
A typical harness has four parts:
- **Reset:** `reset(case_id, seed)` loads the generated starting state, including approval, conditions, evidence and dependent work items. - **Agent loop:** the model calls tools such as `read_register`, `assess_evidence`, `release_gate`, `request_information` and `write_handover`. Each call and result is appended to a `trace.jsonl` file. - **State diff:** after the run, the harness compares the final register against `expected_state`, field by field, for example `gate_state`, `condition.status` and `notifications`. - **Graders:** one function per failure mode, each returning `{check_id, passed, evidence_refs}`. A rubric-based grader can score the handover text against `open_condition_ids`.
Results can be written as one JSONL row per run with `case_id`, `model_id`, `seed`, `checks` and `final_state_hash`, then loaded into Parquet for comparison across model versions.
Keep the hidden `label` and `expected_state` out of tool responses. Run each case with several seeds if the environment includes variation in evidence wording.
Hook names and output shapes are open to adjustment; confirm them against your own harness in a pilot, and review a sample for grounding before you rely on scores.
Exposing state, traces and per-failure-mode graders lets you compare model versions on exactly which behaviour changed.
- Audience:
- Model labs
- Content type:
- Integration
- Buyer question:
- How to evaluate it
Content release: r-a220eb6e099b243b
Related questions
- What trace format and grader hooks make conditional-approval evaluation automatic?
- How do I check that generated tasks are hard enough and do not leak the answer?
- How should I score an agent on conditional approvals beyond a single pass rate?
- Which checks should I run on a sample before committing to wider use?
- What does a failed evaluation run look like when an agent binds a policy too early?
- How do I wire graders and reset into a conditional-approval environment?