Directory Layout
details/*.json files are the source of truth. Completed samples use the task id, with an optional category suffix, as
the filename. Failed results use the _error_ prefix so a reuse run can schedule them again. Summary files are derived
views. run-name is omitted from the path when it is empty.
Artifact Roles
details/*.json Field Reference
One detail file represents one benchmark task, not one model call. Its outer envelope is stable across integrations,
while values under artifacts, extra, and parts of meta are intentionally extensible. A run with k > 1 normally
stores all measured executions in the same file under the string-keyed attempts object.
File Names
/ and : in task ids or categories are replaced with _ when the filename is created. The normal runner keeps
attempts inside the JSON object rather than creating one file per attempt. An _error_ file can still contain a model
answer, trajectory, score, or verifier output; the prefix classifies execution validity, not answer quality alone. A
later valid result is written to the normal filename and removes the stale error file.
The following abbreviated object shows how the field groups fit together. Fields that are unavailable for a particular
benchmark, harness, or failure point may be null, empty, or omitted.
Task-level Fields
Task-level
status and score are removed at the persistence boundary. Their countable values belong to individual
attempts so multi-attempt results remain unambiguous.
Attempt-level Fields
Normalized Trajectory
Whentrajectory is available, AgentCompass uses the ACTF trajectory envelope. The default schema version is
ACTF_v1.0; integrations may preserve additional values inside individual steps.
Each normalized step can contain the following fields:
For harness-specific fields, inspect the raw trajectory referenced by
artifacts and the corresponding
Harness module.
Resolved Execution Plan
attempts.<index>.meta.resolved_execution_plan records the security- and recipe-relevant plan that was actually used,
after configuration precedence and recipe adaptation were applied. It is more useful for auditing than the original
CLI request alone.
Each network policy contains
network_mode (public, no-network, or allowlist) and allowed_hosts. The detail
record intentionally stores only the environment identity and network policy here, rather than every provider
parameter. Use run_info.json and params.json for the sanitized run request and persisted effective parameters.
Analyzer Results
Eachanalysis_result.<analyzer-family> object has a small common shape:
Detail payloads are written atomically and recursively redact recognized credential fields before persistence.
Nevertheless, answers, prompts, observations, and benchmark artifacts can still contain sensitive task data; apply
the same access controls you use for run logs. Treat
details/ as generated source data: edit analyzers or regenerate
derived summaries instead of manually changing these files.
Local Result Browser
tools/result-browser provides a local web UI for inspecting completed or in-progress run directories. It is served from a source checkout and requires Node.js and npm on the machine running the UI service.
From the repository root:
npm run dev, usually http://localhost:5173, then enter the absolute run directory path that contains summary.md and details/, for example /path/to/AgentCompass/results/swebench_verified/$MODEL_NAME/20260703_120000.
The entered path is resolved on the machine running npm run dev. If you access the UI through SSH port forwarding or a remote forwarded URL, still enter the server-side absolute path to the run directory.
To check the production build locally:
Summary vs Analysis
Both commands derive new views from an existing run without rerunning the agent:summary is lightweight and can be previewed without writing. analysis may invoke configured qualitative models and
copies the run by default; in-place mutation requires an explicit --override.
Data, Cache, and Output Directories
AgentCompass keeps downloaded or prepared benchmark data separate from durable evaluation results. Logs live inside each run directory, alongside task details and generated summaries.runtime.data_dir and runtime.results_dir are YAML keys in config/defaults.yaml with matching CLI flags. --run-name and --run-id are per-run CLI flags (fields of the RunRequest output spec, not configuration file keys).
Override the data and result roots for one run when needed:
