Skip to content
MirrorFirm

Which reset, trace and scoring hooks does a sufficiency evaluation need?

Describes reset by seed, trace logging, end-state diffs, per-failure scorers and per-episode JSONL output so evaluation attaches to environment state rather than agent text.

Wire scoring to environment state rather than to the agent's text.

**Reset.** Each episode starts from `reset(case_id, seed)`, which restores the case, documents, held records and event schedule to a known snapshot. Identical seeds should give identical state; test this first.

**Trace.** Log every tool call with step index, arguments and result. Scoring should be able to replay a trace against the key.

**End-state diff.** After the episode, compare to `expected.jsonl`: `end_status`, `clock_state`, the set of requested items against `missing_items`, and whether the case sits in the correct queue.

**Per-failure scorers** - `premature_release`: released while `missing_items` is non-empty - `over_request`: requested items intersect `satisfied_items` - `under_request`: `missing_items` not fully covered - `ignored_held_record`: requested an item that `satisfiable_from_records` marks as held

**Multi-step scoring.** For cases with scripted replies, evaluate after each event, so a second review is scored on the new state.

**Outputs.** Emit one JSONL line per episode: `case_id`, `seed`, `scores`, `failure_tags`, `steps`. Aggregate by defect tag, requirement type and outcome class.

Training use can add a shaped reward from the same fields, such as partial credit for covering some gaps, but keep a held-out set and a pure end-state score for evaluation.

Scoring against environment state and replayable traces gives repeatable results and lets failures be aggregated by defect tag and requirement type.

Audience:
Environment builders
Content type:
Integration
Buyer question:
How to evaluate it

Content release: r-a220eb6e099b243b

More on Document sufficiency