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
-**Any target** — run against agents, model providers, gateways, replay targets, CLI wrappers, transcript providers, and future app or service wrappers
13
+
-**Any provider** — run against agents, model providers, gateways, replay providers, CLI wrappers, transcript providers, and future app or service wrappers
14
14
15
15
## Core Concepts
16
16
17
17
-**Eval suite / tests** are the task corpus: the prompts, cases, datasets, and reusable field-local files 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
-**Environment / fixtures / graders** are task-owned context: host or Docker setup, repos, setup scripts, files, fixtures, 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` by configured target `id` or with an eval-local target object.
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.
20
+
-**Provider** is the configured system under test: an agent, model provider, gateway, replay provider, CLI wrapper, transcript provider, or future app/service wrapper. Each provider entry uses `id` for the backend/spec and optional `label` for the stable AgentV selection and result identity.
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 provider/model names out of that tag.
22
22
-**Evaluate options** configure eval run behavior such as `max_concurrency`, repeat policy, and budgets.
23
23
-**Default test** configures inherited per-test defaults such as score `threshold`.
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.
24
+
-**Run** is one concrete execution of a tagged eval against a resolved provider that writes portable artifacts for readers such as Dashboard, compare, and trend.
25
25
26
26
## Quick start
27
27
@@ -31,21 +31,21 @@ npm install -g agentv
31
31
agentv init
32
32
```
33
33
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:
34
+
**2. Configure providers and graders** in `.agentv/providers.yaml` — point to the system under test and the reusable grader. Provider `id` names the backend/spec; `label` is the stable selection name used by evals and CLI flags:
35
35
36
36
```yaml
37
-
targets:
38
-
- id: local-openai
39
-
provider: openai
37
+
providers:
38
+
- id: openai
39
+
label: local-openai
40
40
runtime: host
41
41
config:
42
42
api_format: chat
43
43
base_url: "{{ env.LOCAL_OPENAI_PROXY_BASE_URL }}"
44
44
api_key: "{{ env.LOCAL_OPENAI_PROXY_API_KEY }}"
45
45
model: "{{ env.LOCAL_OPENAI_PROXY_MODEL }}"
46
46
47
-
- id: local-openai-grader
48
-
provider: openai
47
+
- id: openai
48
+
label: local-openai-grader
49
49
runtime: host
50
50
config:
51
51
api_format: chat
@@ -54,7 +54,7 @@ targets:
54
54
model: "{{ env.LOCAL_OPENAI_PROXY_MODEL }}"
55
55
56
56
defaults:
57
-
target: local-openai
57
+
provider: local-openai
58
58
grader: local-openai-grader
59
59
```
60
60
@@ -82,7 +82,8 @@ options:
82
82
description: Code generation quality
83
83
tags:
84
84
experiment: with-skills
85
-
target: local-openai
85
+
providers:
86
+
- local-openai
86
87
evaluate_options:
87
88
max_concurrency: 2
88
89
@@ -112,25 +113,25 @@ tests:
112
113
Plain assertion strings are short-form rubric criteria: AgentV groups them into
113
114
`llm-rubric`and writes grader detail to `grading.json.component_results` for
114
115
the Dashboard. Use explicit `type: llm-rubric` when you need weights, required
115
-
flags, `score_ranges`, a custom grader prompt, a grader target, or output
116
+
flags, `score_ranges`, a custom grader prompt, a grader provider, or output
116
117
transforms; use string `value` for free-form rubric checks. Executable graders
117
118
use `type: script`.
118
119
119
-
The target can be an eval-local object when this eval needs target settings of its own:
120
+
The provider can be an eval-local object when this eval needs provider settings of its own:
120
121
121
122
```yaml
122
-
description: Code generation quality with eval-local target settings
123
+
description: Code generation quality with eval-local provider settings
123
124
tags:
124
125
experiment: with-skills
125
-
target:
126
-
id: local-mini
127
-
provider: openai
128
-
runtime: host
129
-
config:
130
-
api_format: chat
131
-
base_url: "{{ env.LOCAL_OPENAI_PROXY_BASE_URL }}"
132
-
api_key: "{{ env.LOCAL_OPENAI_PROXY_API_KEY }}"
133
-
model: gpt-5.4-mini
126
+
providers:
127
+
- id: openai
128
+
label: local-mini
129
+
runtime: host
130
+
config:
131
+
api_format: chat
132
+
base_url: "{{ env.LOCAL_OPENAI_PROXY_BASE_URL }}"
133
+
api_key: "{{ env.LOCAL_OPENAI_PROXY_API_KEY }}"
134
+
model: gpt-5.4-mini
134
135
evaluate_options:
135
136
repeat:
136
137
count: 2
@@ -148,7 +149,7 @@ tests:
148
149
input: Write FizzBuzz in Python
149
150
```
150
151
151
-
`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.
152
+
`providers: [local-openai]` resolves the configured provider label from `.agentv/providers.yaml` and uses its backend, model, hooks, and provider settings. The object form above defines a full eval-local provider and must include enough provider configuration to run. AgentV records the resolved provider 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 provider metadata.
152
153
153
154
Use `default_test.threshold` for the inherited per-test pass cutoff. `default_test` can also point at a shared file:
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 `.internal/index.jsonl` file 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.
183
+
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 `providers: [local-openai]` selects the system under test from `.agentv/providers.yaml`; both are recorded as metadata, not path segments. The `.internal/index.jsonl` file is the portable row index used by scripts, CI, and `agentv results compare`; per-case sidecars include the resolved eval and provider configuration used for the run.
183
184
184
185
```bash
185
186
agentv eval evals/my-eval.eval.yaml
@@ -192,7 +193,7 @@ Run bundle layout:
192
193
.agentv/results/
193
194
├── 2026-06-30T08-30-00-000Z/ # <run_id> — one committed run bundle
0 commit comments