RunRequest and a small set of contracts such as PreparedTask, EnvironmentSession, ExecutionPlan, and RunResult. That is why the same benchmark can be evaluated with different harnesses, the same harness can move from local execution to Modal or Daytona, and a model endpoint can be swapped without changing benchmark code.
AgentCompass aims for free composition, with explicit compatibility checks where reality requires them. A harness can reject unsupported environment/model combinations through
supports(...), and recipes can adapt images, workspaces, and resources before sandbox startup.Module Map
Runtime
Builds
RunRequest, loads components, applies concurrency limits, emits progress, and persists artifacts.Configuration
Explains default files, override precedence, scoped params, and how to keep secrets out of shared config.
Benchmarks
Load tasks, prepare benchmark material, score harness output, and aggregate metrics.
Harnesses
Adapt models, CLIs, and external agent frameworks to the shared
PreparedTask contract.Environments
Provide command execution and file primitives across local, container, remote, and cluster providers.
Recipes
Rewrite execution plans before sandbox startup, especially for images, workspaces, and provider resources.
Models
Carry run-local endpoint, protocol, API key, and sampling configuration.
Results
Store per-task details, summaries, progress events, logs, and analysis artifacts.
Analyzers
Re-run post-analysis over trajectories and aggregate latency, behavior, and qualitative reports.
One Run Lifecycle
Design Principles
What This Enables
Read By Goal
Composition Examples
These are examples of how the same runtime shape spans different evaluation styles. Copyable commands live in Setup and the cookbooks; this section focuses on the module boundaries.GUI grounding, local execution
screenspot + qwen3vl_gui + host_process: the benchmark owns images and scoring, the harness adapts a VLM-style interaction loop, and the environment only needs local command/file primitives.Agentic coding, remote sandbox
swebench_verified + mini_swe_agent + modal or daytona: the benchmark provides repository tasks and pass/fail evaluation, while recipes derive image and workspace settings before sandbox startup.Terminal tasks, isolated shell
terminal_bench_2 + terminus2 + daytona or modal: the harness drives terminal behavior, and the environment provider supplies an isolated filesystem and shell for each task.Research and tool use, API-first
browsecomp + researchharness + host_process: the benchmark supplies questions and judge logic, while the harness handles research workflow and model calls without a benchmark-specific sandbox provider.