Summary
Provide pre-executed agent trajectories alongside the repo so that evaluation developers, researchers, and downstream users can build and test evaluators without needing to run the agents themselves. Running agents requires API keys, compute, and time; shipping trajectories removes that barrier for eval work.
Keep trajectories outside src/ since they are data artifacts, not code.
AssetOpsBench/
├── src/agent/
│ ├── plan_execute/
│ ├── deep_agent/
│ ├── claude_agent/
│ └── openai_agent/
└── trajectories/
├── README.md # schema, regeneration policy, scenario list
├── manifest.json # index of runs, models, dates
├── schema/
│ └── trajectory.schema.json
└── v1.0/ # versioned by release
├── scenario_001_anomaly_detection/
│ ├── scenario.json # self-contained copy of the input
│ ├── plan_execute/
│ │ ├── run_01.jsonl
│ │ ├── run_02.jsonl
│ │ └── run_03.jsonl
│ ├── deep_agent/
│ ├── claude_agent/
│ └── openai_agent/
├── scenario_002_rca_pump/
└── ...
Why this structure:
- Scenario-first, framework-second matches how evaluators think ("how did all 4 frameworks do on scenario X?").
- 3–5 runs per (scenario, framework) cell enables variance analysis, not just point estimates.
- Versioned root (v1.0/) lets us refresh trajectories without breaking existing eval scripts.
- Self-contained scenario.json inside each folder makes a trajectory auditable in isolation.
Summary
Provide pre-executed agent trajectories alongside the repo so that evaluation developers, researchers, and downstream users can build and test evaluators without needing to run the agents themselves. Running agents requires API keys, compute, and time; shipping trajectories removes that barrier for eval work.
Keep trajectories outside src/ since they are data artifacts, not code.
Why this structure: