Traces
The trajectory
During execution, an agent harness can append to /workspace/trajectory.jsonl. The file starts with a TrajectoryEntry. Every non-blank line uses that schema:
{"step": 0, "role": "system", "content": "You are a senior electrical engineer...", "timestamp": "2026-08-15T01:02:03.000Z"}
{"step": 0, "role": "user", "content": "Calculate voltage drop...", "timestamp": "2026-08-15T01:02:03.001Z"}
{"step": 1, "role": "assistant", "content": "I'll compute R and X contributions...", "call_type": "main", "timestamp": "2026-08-15T01:02:04.000Z"}
{"step": 1, "role": "tool_call", "tool_name": "python", "command": "python calc.py", "call_type": "main", "timestamp": "2026-08-15T01:02:05.000Z"}
{"step": 1, "role": "tool_result", "tool_name": "python", "stdout": "V_drop = 5.2V", "stderr": "", "exit_code": 0, "duration_ms": 142, "call_type": "main", "timestamp": "2026-08-15T01:02:05.142Z"}Each entry carries step and role. Tool entries can also carry tool_name, command, arguments, stdout, stderr, exit_code, duration_ms, media, and structured metadata. A timestamp records the real step event; the retained artefact reference identifies the trace.
Shared run identity
Many trials can share the same dataset, agent, source revision, and execution setup. AEC-Bench stores that shared context once in a RunManifest, and each trial refers to it through run_id.
RunManifest records the facts shared by all trials in one run:
run_idandexperiment_id;- an exact source reference;
- the agent and effective configuration;
- the execution environment and provider route;
- an exact dataset reference when the run uses one;
- expected evidence authorities; and
- optional evaluation and qualification requirements.
The local record store keeps the manifest once. Each trial refers to it through run_id.
The trial result
TrialRecord stores facts for one planned trial. The trial can contain one agent attempt or select from several best-of candidates:
class TrialRecord(StrictModel):
schema_version: Literal[2]
trial_id: NonEmptyStr
run_id: NonEmptyStr
task_id: NonEmptyStr
attempt: PositiveInt
execution_status: ExecutionStatus
evaluation_status: EvaluationStatus
evidence_status: EvidenceStatus
started_at: datetime
completed_at: datetime | None
input: TrialInput
output: TrialOutput | None
evaluation: EvaluationResult | None
timing: TimingRecord
cost: CostRecord | None
authority_evidence: tuple[AuthorityEvidenceRef, ...]
provider_evidence: ArtifactRef | None
extension_refs: tuple[TrialExtensionRef, ...]TrialInput carries the instruction, task revision, task kind, visibility, and optional input-file references. TrialOutput references the retained raw output, conversation, trajectory, and other output artefacts with ArtifactRef.
The attempt field is the planned repetition number. Internal TaskAttempt candidates use separate attempt_id values. When a trial uses candidate selection, its extension references include the retained selection evidence and the trajectory points to the selected attempt.
Result status
Read the execution, evaluation, and evidence statuses independently.
| Field | Meaning |
|---|---|
execution_status | Execution progress or terminal result |
evaluation_status | Whether evaluation was requested and completed |
evidence_status | Whether required authority evidence is ready and valid |
Leaderboard publication normally requires:
execution_status == "completed";evaluation_status == "completed";evaluation.validity.verifier_completed == true; andevidence_statusequal toverifiedornot_required, subject to the run policy.
A failed execution can still have useful diagnostics. Keep each status visible so readers can see execution, evaluation, and evidence completeness independently.
Cost tracking
Each trial can record model calls, input and output tokens, cache use, advisor use, and an estimated USD cost. Reports use CostRecord as the aggregate usage authority. Provider-specific metadata can remain in provider evidence when it is needed for diagnosis.
Retained records
Accepted run manifests, trial records, and retained evidence cannot be overwritten. New review or diagnostic detail is stored as another artefact that refers to the existing trial. Source code and temporary workspaces can still change normally.
Imported Prime rollouts
Hosted Prime eval samples can enter the same run and trial boundary:
uv run aec-bench import-prime-eval <prime-eval-id> \
--experiment prime-eval-medium-statefulThe import retains the Prime sample and conversation as artefacts. It maps provider execution, evaluation, and evidence separately. Imported samples are useful for rollout review. Leaderboard claims still need an exact dataset, reconstructive source, repeated trials, verifier evidence, and the selected publication policy.
Inspect a trace
The evaluation layer loads trajectory.jsonl first and can fall back to conversation.jsonl. Trace summaries expose turn counts, tool errors, the first error, and the behavioural classification described in Classification. The retained trace artefact is the step-by-step evidence surface.