Outcome
harbor run --dataset terminal-bench@2.0 --agent <import-path-to-adapter> --model <catalog-model> completes trials locally on Docker with graded results and valid ATIF trajectories. This is the workbench's effectiveness engine coming online: Harbor (projects/repos/harbor, the Terminal-Bench 2.0 harness) grades the tasks; we keep the thresholds, receipts, and cost-per-accepted-outcome layer on top.
Contract (BaseInstalledAgent, src/harbor/agents/installed/base.py in the harbor clone)
install(environment): npm install -g @openagentsinc/cli@<pinned>.
- Run:
openagents coder --plain fed the rendered instruction, on a lane that works headless in a container (model connection via Harbor's ModelConnectionSpec or a provisioned account token; an offline refusal must never read as a task failure).
- Typed error mapping: the CLI's typed errors and exit codes mapped onto Harbor's error-pattern taxonomy (ApiRateLimitError, ApiUsageLimitError, ContextWindowExceededError, AgentSafetyRefusalError, ...) so
--retry-include policy works.
populate_context_post_run: write logs_dir/trajectory.json in ATIF via the coder's existing exporter (which already carries plugin provenance per #32).
- Capabilities:
atif=True now; resume maps to --resume --last; declare load_atif_trajectory only when OpenAgentsInc/openagents.com#198's import half exists.
- Out-of-tree first (
harbor run --agent takes an import path — no fork); upstreaming to Harbor's adapter roster is the distribution move once stable.
Acceptance
- A local Docker run over a Terminal-Bench 2.0 subset produces graded trials, each with a valid ATIF trajectory that
Trajectory.model_validate_json accepts.
- One deliberately induced rate-limit failure classifies as ApiRateLimitError and retries under
--retry-include.
- The same run repeated from the pinned recipe produces comparable rows.
Source
OpenAgentsInc/openagents.com docs 2026-08-24-harbor-terminal-bench-plan.md.
Outcome
harbor run --dataset terminal-bench@2.0 --agent <import-path-to-adapter> --model <catalog-model>completes trials locally on Docker with graded results and valid ATIF trajectories. This is the workbench's effectiveness engine coming online: Harbor (projects/repos/harbor, the Terminal-Bench 2.0 harness) grades the tasks; we keep the thresholds, receipts, and cost-per-accepted-outcome layer on top.Contract (BaseInstalledAgent, src/harbor/agents/installed/base.py in the harbor clone)
install(environment):npm install -g @openagentsinc/cli@<pinned>.openagents coder --plainfed the rendered instruction, on a lane that works headless in a container (model connection via Harbor's ModelConnectionSpec or a provisioned account token; an offline refusal must never read as a task failure).--retry-includepolicy works.populate_context_post_run: writelogs_dir/trajectory.jsonin ATIF via the coder's existing exporter (which already carries plugin provenance per #32).atif=Truenow;resumemaps to--resume --last; declareload_atif_trajectoryonly when OpenAgentsInc/openagents.com#198's import half exists.harbor run --agenttakes an import path — no fork); upstreaming to Harbor's adapter roster is the distribution move once stable.Acceptance
Trajectory.model_validate_jsonaccepts.--retry-include.Source
OpenAgentsInc/openagents.comdocs2026-08-24-harbor-terminal-bench-plan.md.