You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+34-13Lines changed: 34 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@ Test AI targets on real repo tasks and measure what actually works.
17
17
-**Eval suite / imports / tests** are the task corpus: the prompts, cases, datasets, and imported benchmarks you want to evaluate.
18
18
-**Category** is derived from where the eval lives, such as folder path and file name. Use paths to organize the corpus instead of repeating category labels in every eval.
19
19
-**Workspace / fixtures / graders** are task-owned context: repos, setup scripts, files, fixtures, isolation, deterministic checks, and LLM grading prompts.
20
-
-**Target** is the system under test: an agent, provider, gateway, replay target, CLI wrapper, transcript provider, or future app/service wrapper. Each eval selects one `target`, either by label from `targets.yaml` or with an eval-local target object.
20
+
-**Target** is the system under test: an agent, provider, gateway, replay target, CLI wrapper, transcript provider, or future app/service wrapper. Each eval selects one `target`by configured target `id` or with an eval-local target object.
21
21
-**Tags** are run/result grouping labels. `tags.experiment` is the default experiment namespace, such as `with-skills` or `without-skills`; keep suite/category and target/model names out of that tag.
22
-
-**Evaluate options**configure runner-level behavior such as repeat policy, optional timeouts, and `max_concurrency` under `evaluate_options`.
22
+
-**Execution**configures runner-level behavior such as general suite concurrency with `execution.max_concurrency`; `evaluate_options` holds eval behaviors such as repeat policy and budgets.
23
23
-**Default test** configures inherited per-test defaults such as score `threshold`.
24
24
-**Run** is one concrete execution of a tagged eval against a resolved target that writes portable artifacts for readers such as Dashboard, compare, and trend.
25
25
@@ -31,16 +31,31 @@ npm install -g agentv
31
31
agentv init
32
32
```
33
33
34
-
**2. Configure targets** in `.agentv/targets.yaml` — point to the system under test, such as an agent, provider, gateway, replay source, or CLI wrapper. Provider-specific budgets belong here:
34
+
**2. Configure targets and graders** in `.agentv/config.yaml` — point to the system under test and the reusable grader. Provider settings live under `config`, and target `id` is the selection name used by evals and CLI flags:
35
35
36
36
```yaml
37
37
targets:
38
-
- label: local-openai
38
+
- id: local-openai
39
39
provider: openai
40
-
api_format: chat
41
-
base_url: ${{ LOCAL_OPENAI_PROXY_BASE_URL }}
42
-
api_key: ${{ LOCAL_OPENAI_PROXY_API_KEY }}
43
-
model: ${{ LOCAL_OPENAI_PROXY_MODEL }}
40
+
runtime: host
41
+
config:
42
+
api_format: chat
43
+
base_url: ${{ LOCAL_OPENAI_PROXY_BASE_URL }}
44
+
api_key: ${{ LOCAL_OPENAI_PROXY_API_KEY }}
45
+
model: ${{ LOCAL_OPENAI_PROXY_MODEL }}
46
+
47
+
graders:
48
+
- id: local-openai-grader
49
+
provider: openai
50
+
config:
51
+
api_format: chat
52
+
base_url: ${{ LOCAL_OPENAI_PROXY_BASE_URL }}
53
+
api_key: ${{ LOCAL_OPENAI_PROXY_API_KEY }}
54
+
model: ${{ LOCAL_OPENAI_PROXY_MODEL }}
55
+
56
+
defaults:
57
+
target: local-openai
58
+
grader: local-openai-grader
44
59
```
45
60
46
61
**3. Create shared test defaults** in `evals/default-test.yaml`. This is a promptfoo-style partial test config that AgentV applies to each test:
`target: local-openai` resolves the target label from `.agentv/targets.yaml` or `targets.yaml` and uses its default provider, model, hooks, and provider settings. The object form above starts from `local-openai`, then applies the eval-local fields for this eval. If `extends` is omitted, the object defines the full target inline and must include enough provider configuration to run. AgentV records the resolved target information in run artifacts so results can be audited and replayed. The `tags.experiment` label stays `with-skills` because the condition is unchanged; the model/provider variation belongs to the resolved target metadata.
143
+
`target: local-openai` resolves the configured target id from `.agentv/config.yaml` and uses its provider, model, hooks, and provider settings. The object form above defines a full eval-local target and must include enough provider configuration to run. AgentV records the resolved target information in run artifacts so results can be audited and replayed. The `tags.experiment` label stays `with-skills` because the condition is unchanged; the model/provider variation belongs to the resolved target metadata.
123
144
124
145
Use `default_test.threshold` for the inherited per-test pass cutoff. `default_test` can also point at a shared file, matching promptfoo's external defaults pattern:
Each run writes a portable bundle directly under `.agentv/results/<run_id>/`. In this example, `tags.experiment: with-skills` names the condition being measured and `target: local-openai` selects the system under test from `targets.yaml`; both are recorded as metadata, not path segments. The root `index.jsonl` manifest is the portable row index used by scripts, CI, and `agentv results compare`; per-case sidecars include the resolved eval and target configuration used for the run.
174
+
Each run writes a portable bundle directly under `.agentv/results/<run_id>/`. In this example, `tags.experiment: with-skills` names the condition being measured and `target: local-openai` selects the system under test from `.agentv/config.yaml`; both are recorded as metadata, not path segments. The root `index.jsonl` manifest is the portable row index used by scripts, CI, and `agentv results compare`; per-case sidecars include the resolved eval and target configuration used for the run.
0 commit comments