Proposal (rationale)
The current corpus contains deterministic model substitutes, structured-output validators, traces, and tests, but it does not read an evaluation system as the subject. That leaves an important gap: how a task definition, agent trajectory, sandbox, scorer, evidence log, aggregation, retry, and reproduction contract fit together.
Inspect AI is selected because its public source is explicitly organized around language-model evaluations and includes tool-using, multi-turn and sandboxed execution. The extraction asks what an evaluation result actually proves, what evidence survives the run, and where model-graded or human judgement enters a result that may otherwise look mechanical.
Decision
accepted then planned — 2026-08-15. The user directed the follow-on research to continue after
WI-019 completed the evaluation-track method and WI-020 demonstrated the extraction workflow. This
item is the evaluation-system child of WI-018; its
requirements, impacts, approach, and acceptance criteria above are now the execution contract.
Plan
Requirements
- Pin repository SHA, licence, date, measured scale, and the exact evaluation packages and tests read.
- Trace one agentic evaluation from dataset/sample construction through solver execution, model and tool calls, sandbox interaction, scoring, aggregation, and durable result log.
- State which inputs and environment details are sufficient to reproduce a run and which external model or infrastructure behaviours remain outside the record.
- Distinguish deterministic scoring, model-graded scoring, human review, and aggregation; state the claim boundary of each.
- Trace failure, retry, cancellation, partial result, and resume semantics where present.
- Map findings to gate, audit, evidence, bounded-loop, and sandbox candidates without editing the catalogue.
Impacts
- One evaluation/optimization extraction and an index row under WI-019’s layout.
- Candidate evidence for the distinction between execution traces, audit inputs, gates, scores, and conclusions; WI-028 decides catalogue consequences.
Approach
Choose one small evaluation that uses an agent loop and a sandbox, then follow its actual objects and stored artifacts end to end. Use built-in components rather than a third-party evaluation so the read boundary remains in one pinned repository. Treat the presence of many evaluations as an inventory claim to measure, not a proxy for framework quality.
Acceptance criteria / tests
- Snapshot and read boundary make every implementation and count claim reproducible.
- One evaluation is traced from sample input to stored result and aggregate score.
- The extraction states what the log can replay, audit, or merely describe, with failure paths included.
- Every scorer type inspected has an explicit claim boundary; a numeric result is not presented as truth.
- The sandbox trust boundary and external dependencies are traced or bounded as not found.
- Opinion is labelled; catalogue candidates are deferred to WI-028; gates and site links pass.
Out of scope
- Running expensive model evaluations or comparing model performance.
- Surveying the external evaluation collection as a second corpus.
- Security certification of sandbox backends.
- Catalogue, module, or CLI changes.
Execution
Completed 2026-08-15 on feature/WI-021-extract-inspect-ai.
- Pinned
UKGovernmentBEIS/inspect_aiatd482209d573cdde116cc0f28abfb01712e91e80c, recorded MIT, and measured the checkout at 2,088 tracked files, 1,565 Python files, 773 test-named/test directory files, 186 documentation files, and 110 task definitions. - Added
inspect-ai.mdand updated the follow-on index. The extraction traces theexamples/tool_use.pybashtask through task/sample construction, solver/model/tool events, local sandbox lifecycle, deterministic scoring, recorder flush, aggregate results, retries, cancellation, and checkpoint/crash recovery. - Explicitly separates deterministic, model-graded, and human-approval boundaries; records the local sandbox’s current-user execution counterexample; labels opinions and defers catalogue edits to WI-028. No module or CLI file changed.
- Validation:
node src/cli.ts check— 20 pass, 0 fail; sitenpm run build— 81 pages; sitenpm run check— 0 Astro diagnostics and 1,037 internal links, 0 broken. The source checkout was not live-executed because this environment has no Python runtime or model credentials; the extraction cites the pinned repository’s mock-model/sandbox tests instead.
Review
Self-review completed 2026-08-15 against every acceptance criterion:
- Pass. Snapshot, MIT licence, full SHA, measured scale, read date, and bounded paths are recorded in the extraction; all implementation links resolve to the pinned commit.
- Pass. The
bashexample is traced from sample input through solver/model/tool calls, sandbox events, scorer, recorder, andEvalResults/reductions. - Pass. The extraction distinguishes observation/replay, checkpoint resume, crash recovery, and missing in-flight/unflushed data, and includes retry/cancel/partial-result paths.
- Pass. Deterministic predicates, model-graded scores, epoch reducers, and human approval are given separate claim boundaries; no numeric result is presented as truth.
- Pass. Sandbox provider setup/cleanup, concurrency, local current-user execution, and external model/image/network authorities are explicitly bounded.
- Pass. Opinions are labelled, catalogue candidates are deferred to WI-028, no modules changed,
rungs checkpassed 20/20, and the site build/link check passed with 0 broken links.