Skip to content

Commit 3099e5e

Browse files
authored
docs(run): document generated task bundles (#1350)
1 parent 499db1f commit 3099e5e

4 files changed

Lines changed: 54 additions & 17 deletions

File tree

apps/web/src/content/docs/docs/evaluation/running-evals.mdx

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ sidebar:
1111
agentv eval evals/my-eval.yaml
1212
```
1313

14-
Results are written to `.agentv/results/runs/<timestamp>/index.jsonl`. Each line is a JSON object with one result per test case, and the run workspace also stores the manifest and related artifacts.
14+
Results are written to `.agentv/results/runs/<timestamp>/index.jsonl`. Each line is a JSON object with one result per test case, and the run workspace also stores the manifest and related artifacts. Use this generated run folder as the portable audit surface: copy or sync the run directory, not a hand-authored parallel bundle.
1515

1616
Each `scores[]` entry includes per-grader timing:
1717

@@ -89,6 +89,40 @@ agentv eval evals/my-eval.yaml --output ./my-results
8989
`--output` is a run directory, not a file path. The canonical manifest is always
9090
`<output>/index.jsonl`.
9191

92+
### Generated Task Bundles
93+
94+
Each result can also include a generated task bundle inside its per-test artifact
95+
directory. The bundle captures the eval slice and target settings that produced
96+
that row, so reviewers and rerun tooling can inspect the exact run-local source
97+
instead of relying on a mutable checkout.
98+
99+
Typical layout:
100+
101+
```text
102+
my-results/
103+
index.jsonl
104+
benchmark.json
105+
<test-id>/
106+
grading.json
107+
timing.json
108+
input.md
109+
outputs/response.md
110+
task/
111+
EVAL.yaml
112+
targets.yaml
113+
files/ # copied input files when the case references them
114+
graders/ # copied grader prompt/script files when applicable
115+
```
116+
117+
The `index.jsonl` row links to these generated paths with snake_case fields such
118+
as `artifact_dir`, `task_dir`, `eval_path`, `targets_path`, `files_path`, and
119+
`graders_path`. Treat those paths as relative to the run directory. When you need
120+
a portable artifact for audit, review, Dashboard inspection, or rerun workflows,
121+
share the generated run directory and its `index.jsonl` manifest. Source-side
122+
case directories are still useful for organizing bulky prompts, fixtures, or
123+
tests while authoring an eval, but they are optional input organization rather
124+
than a separate artifact schema.
125+
92126
### Export Additional Formats
93127

94128
Write additional output files alongside the artifact directory. Format is inferred from the file extension (`.jsonl`, `.json`, `.xml`, `.yaml`, `.html`):

apps/web/src/content/docs/docs/guides/benchmark-provenance.mdx

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ verification commands. AgentV represents that with existing primitives:
1212
- Put runtime behavior in `workspace`, `execution`, `input`, `expected_output`,
1313
and `assertions`.
1414
- Put provenance and classification in per-case `metadata`.
15-
- Put bulky per-case artifacts in case directories and supporting files.
15+
- Put bulky per-case authoring inputs in optional case directories and supporting files.
16+
- Use generated run folders, not hand-authored source bundles, as the portable audit artifact.
1617

1718
These are documentation patterns, not special runtime schema keys. AgentV does
1819
not interpret keys such as `source_commit`, `test_patch`, or `question_type`
@@ -64,7 +65,7 @@ on per-case metadata such as a patch path, source row, or selected test list.
6465

6566
## Task Artifact Anatomy
6667

67-
Benchmark task packs map cleanly onto AgentV fields:
68+
Benchmark task packs map cleanly onto AgentV fields at authoring time:
6869

6970
| Task artifact | AgentV pattern |
7071
|---------------|----------------|
@@ -74,14 +75,16 @@ Benchmark task packs map cleanly onto AgentV fields:
7475
| Gold answer | `expected_output` when the answer is passive reference data |
7576
| Active verification | `assertions`, especially `code-grader` for commands or artifact checks |
7677
| Provenance | `tests[].metadata` with source pins, generator rows, and curation labels |
77-
| Bulky task files | `tests: ./cases/` with per-case directories and supporting files |
78+
| Bulky task files | Optional `tests: ./cases/` with per-case directories and supporting files |
7879

79-
This mirrors the common task shape used by filesystem-native benchmark harnesses:
80-
Margin keeps each task's prompt, case metadata, tests, environment, and optional
81-
oracle in a case directory; Terminal-Bench and Harbor keep task instructions,
82-
container setup, run-test scripts, and result artifacts as separate files. In
83-
AgentV, keep the same separation but bind it with eval YAML instead of adding a
84-
large benchmark-specific schema.
80+
Use this separation only when it makes the source eval easier to maintain. It is
81+
not a first-class artifact schema. After an eval runs, AgentV writes the portable
82+
audit surface into the generated run folder: each result can link from
83+
`index.jsonl` to a run-local `task/` bundle containing `EVAL.yaml`,
84+
`targets.yaml`, and copied `files/` or `graders/` snapshots where applicable.
85+
Review, Dashboard files views, and rerun workflows should inspect those generated
86+
run artifacts instead of requiring authors to maintain a parallel source-side
87+
bundle layout. See [Generated Task Bundles](/docs/evaluation/running-evals/#generated-task-bundles).
8588

8689
## SWE-Style Case
8790

@@ -181,11 +184,11 @@ regeneration checks. If a hook or grader needs the source file at runtime, clone
181184
it through `workspace.repos` or make the generator output available as a normal
182185
fixture file.
183186

184-
## When to Split Into Case Directories
187+
## Optional Source-Side Case Directories
185188

186189
Inline YAML is fine when a case has a short prompt, a short expected answer, and
187-
a few metadata fields. Move away from inline YAML when the benchmark starts
188-
accumulating task-local artifacts:
190+
a few metadata fields. Move source inputs into case directories only when the
191+
benchmark starts accumulating bulky authoring resources:
189192

190193
- The case has patches, hidden tests, oracle JSON, screenshots, reports, or
191194
fixture files.
@@ -260,5 +263,5 @@ script.
260263
- Keep `metadata` snake_case because it crosses process and result boundaries.
261264
- Prefer `expected_output` for passive gold answers and `code-grader` for active
262265
commands, file checks, or generated artifact validation.
263-
- Prefer case directories over long inline YAML once task artifacts become part
264-
of the benchmark contract.
266+
- Prefer case directories over long inline YAML only for bulky source inputs;
267+
the generated run folder remains the portable artifact contract.

apps/web/src/content/docs/docs/tools/dashboard.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ You can also set the same field globally in `$AGENTV_HOME/config.yaml` or `~/.ag
8686

8787
## Run Detail
8888

89-
Click any run to see a breakdown by suite, per-test scores, target, duration, and cost. The source label (`local` or `remote`) tells you where the run came from.
89+
Click any run to see a breakdown by suite, per-test scores, target, duration, and cost. The source label (`local` or `remote`) tells you where the run came from. Files and source views resolve against the generated run artifacts referenced by `index.jsonl`—including per-result task bundles when present—so Dashboard does not require authors to create a separate source-side bundle structure.
9090

9191
<Image src={studioRunDetail} alt="AgentV Dashboard run detail showing 100% pass rate across 5 tests with scores and duration" />
9292

apps/web/src/content/docs/docs/tools/results.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Use `results export` when you need the artifact workspace layout itself rather t
6969
agentv results export <run-workspace-or-index.jsonl> [--out <dir>]
7070
```
7171

72-
This is useful when a manifest needs to be materialized into a predictable artifact tree for other tooling, review, or archiving.
72+
This is useful when a manifest needs to be materialized into a predictable artifact tree for other tooling, review, or archiving. The run workspace is also where generated task bundles live: `index.jsonl` rows may point to per-result `task_dir`, `eval_path`, `targets_path`, `files_path`, and `graders_path` entries. Keep those generated artifacts with the run when sharing or auditing results.
7373

7474
## Inspection helpers
7575

0 commit comments

Comments
 (0)