agentv 5.2.0-next.1 → 5.3.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{artifact-writer-SN6UNL5G.js → artifact-writer-JFNIPMKW.js} +4 -4
- package/dist/{chunk-3S6A2RKR.js → chunk-6ZZCDZPD.js} +1357 -304
- package/dist/chunk-6ZZCDZPD.js.map +1 -0
- package/dist/{chunk-46K2OET3.js → chunk-BHKQHG26.js} +2 -2
- package/dist/{chunk-T4AD3H3Y.js → chunk-FVR4RQFK.js} +74 -16
- package/dist/chunk-FVR4RQFK.js.map +1 -0
- package/dist/{chunk-3X357HS4.js → chunk-T32NL3E6.js} +62 -6
- package/dist/chunk-T32NL3E6.js.map +1 -0
- package/dist/{chunk-ALVZQUZP.js → chunk-V52ATPTT.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/{dist-DEPJOMCA.js → dist-6Z7U473R.js} +11 -3
- package/dist/index.js +5 -5
- package/dist/{interactive-36ZNMQB2.js → interactive-RUY3OCBI.js} +5 -5
- package/dist/skills/agentv-bench/SKILL.md +1 -1
- package/dist/skills/agentv-bench/agents/analyzer.md +1 -1
- package/dist/skills/agentv-bench/agents/comparator.md +3 -3
- package/dist/skills/agentv-bench/agents/grader.md +4 -2
- package/dist/skills/agentv-bench/references/description-optimization.md +5 -6
- package/dist/skills/agentv-bench/references/environment-adaptation.md +2 -2
- package/dist/skills/agentv-bench/references/eval-yaml-spec.md +20 -9
- package/dist/skills/agentv-eval-migrations/references/breaking-changes.md +100 -2
- package/dist/skills/agentv-eval-writer/SKILL.md +27 -16
- package/dist/{ts-eval-loader-OMG2JBHP-OP5RR7A3.js → ts-eval-loader-DQDYRULE-V3377FOL.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-3S6A2RKR.js.map +0 -1
- package/dist/chunk-3X357HS4.js.map +0 -1
- package/dist/chunk-T4AD3H3Y.js.map +0 -1
- /package/dist/{artifact-writer-SN6UNL5G.js.map → artifact-writer-JFNIPMKW.js.map} +0 -0
- /package/dist/{chunk-46K2OET3.js.map → chunk-BHKQHG26.js.map} +0 -0
- /package/dist/{chunk-ALVZQUZP.js.map → chunk-V52ATPTT.js.map} +0 -0
- /package/dist/{dist-DEPJOMCA.js.map → dist-6Z7U473R.js.map} +0 -0
- /package/dist/{interactive-36ZNMQB2.js.map → interactive-RUY3OCBI.js.map} +0 -0
- /package/dist/{ts-eval-loader-OMG2JBHP-OP5RR7A3.js.map → ts-eval-loader-DQDYRULE-V3377FOL.js.map} +0 -0
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
prepareSharedWorkspaceSetup,
|
|
17
17
|
readTranscriptJsonl,
|
|
18
18
|
releaseSharedWorkspaceSetup
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-6ZZCDZPD.js";
|
|
20
20
|
|
|
21
21
|
// ../../packages/core/dist/index.js
|
|
22
22
|
import { readFileSync } from "node:fs";
|
|
@@ -6089,4 +6089,4 @@ export {
|
|
|
6089
6089
|
parseCopilotEvents,
|
|
6090
6090
|
createAgentKernel
|
|
6091
6091
|
};
|
|
6092
|
-
//# sourceMappingURL=chunk-
|
|
6092
|
+
//# sourceMappingURL=chunk-V52ATPTT.js.map
|
package/dist/cli.js
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
runCli
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-T32NL3E6.js";
|
|
6
|
+
import "./chunk-FVR4RQFK.js";
|
|
7
|
+
import "./chunk-BHKQHG26.js";
|
|
8
|
+
import "./chunk-V52ATPTT.js";
|
|
9
9
|
import {
|
|
10
10
|
killAllTrackedChildren
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-6ZZCDZPD.js";
|
|
12
12
|
import "./chunk-7BGERE6L.js";
|
|
13
13
|
import "./chunk-PEUTJS7B.js";
|
|
14
14
|
import "./chunk-M7BUKBAF.js";
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
transpileEvalYaml,
|
|
55
55
|
transpileEvalYamlFile,
|
|
56
56
|
trimBaselineResult
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-V52ATPTT.js";
|
|
58
58
|
import {
|
|
59
59
|
AGENTV_CONFIG_FILE_NAME,
|
|
60
60
|
AGENTV_CONFIG_YML_FILE_NAME,
|
|
@@ -83,6 +83,7 @@ import {
|
|
|
83
83
|
ExternalTraceMetadataWireSchema,
|
|
84
84
|
FieldAccuracyGrader,
|
|
85
85
|
GraderRegistry,
|
|
86
|
+
LEGACY_METRICS_SCHEMA_VERSION,
|
|
86
87
|
LatencyGrader,
|
|
87
88
|
LlmGrader,
|
|
88
89
|
METRICS_JSON_MEDIA_TYPE,
|
|
@@ -106,6 +107,7 @@ import {
|
|
|
106
107
|
ResultRowSchemaError,
|
|
107
108
|
ScriptGrader,
|
|
108
109
|
SkillTriggerGrader,
|
|
110
|
+
SkillUsedGrader,
|
|
109
111
|
TEST_MESSAGE_ROLES,
|
|
110
112
|
TRACE_EVENT_TYPES,
|
|
111
113
|
TRACE_REDACTION_LEVELS,
|
|
@@ -145,6 +147,7 @@ import {
|
|
|
145
147
|
TraceSourceWireSchema,
|
|
146
148
|
TraceSummaryBoundarySchema,
|
|
147
149
|
TraceToolWireSchema,
|
|
150
|
+
TrajectoryGrader,
|
|
148
151
|
WorkspaceCreationError,
|
|
149
152
|
addProject,
|
|
150
153
|
aggregateRunDir,
|
|
@@ -282,6 +285,7 @@ import {
|
|
|
282
285
|
normalizeExperimentConfig,
|
|
283
286
|
normalizeExperimentRunOverride,
|
|
284
287
|
normalizeLineEndings,
|
|
288
|
+
normalizeMetricsArtifactWire,
|
|
285
289
|
normalizeRepoIdentity,
|
|
286
290
|
normalizeResultRow,
|
|
287
291
|
omitExternalTraceMetadataKeys,
|
|
@@ -373,7 +377,7 @@ import {
|
|
|
373
377
|
writeArtifactsFromResults,
|
|
374
378
|
writeInitialRunSummaryArtifact,
|
|
375
379
|
writePerTestArtifacts
|
|
376
|
-
} from "./chunk-
|
|
380
|
+
} from "./chunk-6ZZCDZPD.js";
|
|
377
381
|
import "./chunk-7BGERE6L.js";
|
|
378
382
|
import {
|
|
379
383
|
DockerWorkspaceProvider
|
|
@@ -409,6 +413,7 @@ export {
|
|
|
409
413
|
ExternalTraceMetadataWireSchema,
|
|
410
414
|
FieldAccuracyGrader,
|
|
411
415
|
GraderRegistry,
|
|
416
|
+
LEGACY_METRICS_SCHEMA_VERSION,
|
|
412
417
|
LatencyGrader,
|
|
413
418
|
LlmGrader,
|
|
414
419
|
METRICS_JSON_MEDIA_TYPE,
|
|
@@ -433,6 +438,7 @@ export {
|
|
|
433
438
|
RunBudgetTracker,
|
|
434
439
|
ScriptGrader,
|
|
435
440
|
SkillTriggerGrader,
|
|
441
|
+
SkillUsedGrader,
|
|
436
442
|
TEST_MESSAGE_ROLES,
|
|
437
443
|
TRACE_EVENT_TYPES,
|
|
438
444
|
TRACE_REDACTION_LEVELS,
|
|
@@ -473,6 +479,7 @@ export {
|
|
|
473
479
|
TraceSourceWireSchema,
|
|
474
480
|
TraceSummaryBoundarySchema,
|
|
475
481
|
TraceToolWireSchema,
|
|
482
|
+
TrajectoryGrader,
|
|
476
483
|
TranscriptProvider,
|
|
477
484
|
WorkspaceCreationError,
|
|
478
485
|
addProject,
|
|
@@ -636,6 +643,7 @@ export {
|
|
|
636
643
|
normalizeExperimentConfig,
|
|
637
644
|
normalizeExperimentRunOverride,
|
|
638
645
|
normalizeLineEndings,
|
|
646
|
+
normalizeMetricsArtifactWire,
|
|
639
647
|
normalizeRepoIdentity,
|
|
640
648
|
normalizeResultRow,
|
|
641
649
|
normalizeResultsConfig,
|
|
@@ -754,4 +762,4 @@ export {
|
|
|
754
762
|
writeInitialRunSummaryArtifact,
|
|
755
763
|
writePerTestArtifacts
|
|
756
764
|
};
|
|
757
|
-
//# sourceMappingURL=dist-
|
|
765
|
+
//# sourceMappingURL=dist-6Z7U473R.js.map
|
package/dist/index.js
CHANGED
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
runCli,
|
|
7
7
|
shouldRunBeforeSessionHook,
|
|
8
8
|
usesDeprecatedStudioAlias
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-T32NL3E6.js";
|
|
10
|
+
import "./chunk-FVR4RQFK.js";
|
|
11
|
+
import "./chunk-BHKQHG26.js";
|
|
12
|
+
import "./chunk-V52ATPTT.js";
|
|
13
|
+
import "./chunk-6ZZCDZPD.js";
|
|
14
14
|
import "./chunk-7BGERE6L.js";
|
|
15
15
|
import "./chunk-PEUTJS7B.js";
|
|
16
16
|
import "./chunk-M7BUKBAF.js";
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
getCategories,
|
|
9
9
|
resolveExistingRunPrimaryPath,
|
|
10
10
|
runEvalCommand
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-FVR4RQFK.js";
|
|
12
|
+
import "./chunk-BHKQHG26.js";
|
|
13
|
+
import "./chunk-V52ATPTT.js";
|
|
14
14
|
import {
|
|
15
15
|
getAgentvConfigDir,
|
|
16
16
|
listTargetNames,
|
|
17
17
|
readTargetDefinitions
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-6ZZCDZPD.js";
|
|
19
19
|
import "./chunk-7BGERE6L.js";
|
|
20
20
|
import "./chunk-PEUTJS7B.js";
|
|
21
21
|
import "./chunk-M7BUKBAF.js";
|
|
@@ -344,4 +344,4 @@ ${ANSI_DIM}Retrying execution errors...${ANSI_RESET}
|
|
|
344
344
|
export {
|
|
345
345
|
launchInteractiveWizard
|
|
346
346
|
};
|
|
347
|
-
//# sourceMappingURL=interactive-
|
|
347
|
+
//# sourceMappingURL=interactive-RUY3OCBI.js.map
|
|
@@ -117,7 +117,7 @@ Start with 2-3 realistic test cases — the kind of thing a real user would actu
|
|
|
117
117
|
|
|
118
118
|
Good assertions are objectively verifiable and have descriptive names. Subjective quality ("the output is good") is better evaluated qualitatively — don't force assertions onto things that need human judgment.
|
|
119
119
|
|
|
120
|
-
**Grader types** (cheapest to most expensive): `exact`, `contains`, `regex`, `is-json`, `field-accuracy`, `assert-set`, `
|
|
120
|
+
**Grader types** (cheapest to most expensive): `exact`, `contains`, `regex`, `is-json`, `field-accuracy`, `assert-set`, `skill-used`, `not-skill-used`, `trajectory:*`, `script`, `llm-rubric`. See `references/eval-yaml-spec.md` for full config and grading recipes for each type.
|
|
121
121
|
|
|
122
122
|
Prefer deterministic graders over LLM graders whenever possible. If an assertion can be checked with `contains` or `regex`, don't use `llm-rubric`.
|
|
123
123
|
|
|
@@ -123,7 +123,7 @@ If a section has no findings, include the header with "None found." underneath.
|
|
|
123
123
|
- **Be specific:** Every suggestion must include the test case ID, grader name, evidence from the results, and a concrete replacement config.
|
|
124
124
|
- **Be conservative:** Only suggest deterministic upgrades when the pattern is clear and consistent. Partial or ambiguous evidence should be noted but not acted on.
|
|
125
125
|
- **Prioritize by impact:** Order suggestions by estimated cost savings (`llm-rubric` → deterministic saves the most).
|
|
126
|
-
- **Handle all grader types:** Process `script`, `
|
|
126
|
+
- **Handle all grader types:** Process `script`, `trajectory:*`, `skill-used`, `not-skill-used`, `llm-rubric`, `rubrics`, `assert-set`, and all deterministic types. Only LLM-based types are candidates for deterministic upgrades.
|
|
127
127
|
- **Multi-provider awareness:** When results span multiple targets, note if a suggestion applies to all targets or is target-specific.
|
|
128
128
|
- **No false positives:** It is better to miss a suggestion than to recommend an incorrect upgrade. If unsure, add the finding to a "Needs Review" subsection with your reasoning.
|
|
129
129
|
|
|
@@ -24,7 +24,7 @@ You are the Blind Comparator for AgentV's evaluation workflow. Your job is to co
|
|
|
24
24
|
You will receive:
|
|
25
25
|
- `outputs`: Array of evaluation outputs to compare. Each contains:
|
|
26
26
|
- `target_id`: The provider/configuration identifier (DO NOT read this during scoring)
|
|
27
|
-
- `evaluator_results`: Array of grader scores and details (script,
|
|
27
|
+
- `evaluator_results`: Array of grader scores and details (script, trajectory, skill-use, llm-rubric, deterministic)
|
|
28
28
|
- `workspace_changes`: File changes made during workspace evaluation (if applicable)
|
|
29
29
|
- `tool_calls`: Tool invocations and results from multi-turn conversations (if applicable)
|
|
30
30
|
- `conversation`: Full multi-turn conversation history (if applicable)
|
|
@@ -91,7 +91,7 @@ For each content criterion, define:
|
|
|
91
91
|
**Grader-Specific Scoring** — when grader results are present:
|
|
92
92
|
|
|
93
93
|
- **script-grader**: Factor in pass/fail results, test coverage, assertion hit rates
|
|
94
|
-
- **
|
|
94
|
+
- **trajectory assertions**: Factor in tool call accuracy, sequence correctness, unnecessary tool calls
|
|
95
95
|
- **llm-rubric**: Factor in existing LLM grader scores as a reference signal (not as ground truth)
|
|
96
96
|
- **deterministic**: Factor in exact match / keyword hit rates
|
|
97
97
|
|
|
@@ -235,7 +235,7 @@ Also produce a human-readable markdown summary:
|
|
|
235
235
|
- **Be evidence-based**: Every score must cite specific evidence from the output.
|
|
236
236
|
- **Evaluate substance over style**: Correct, complete answers with rough formatting score higher than polished but incorrect answers.
|
|
237
237
|
- **Handle missing data gracefully**: If an output lacks workspace changes or tool calls but others have them, score what is present — do not penalize for data the target wasn't expected to produce.
|
|
238
|
-
- **Respect grader signals**: When script-grader or
|
|
238
|
+
- **Respect grader signals**: When script-grader or trajectory assertion results exist, they represent objective ground truth. Weight these heavily.
|
|
239
239
|
|
|
240
240
|
## Edge Cases
|
|
241
241
|
|
|
@@ -80,8 +80,10 @@ For LLM-graded types: be rigorous and fair. Score based on substance, not exact
|
|
|
80
80
|
|
|
81
81
|
| Type | How to evaluate |
|
|
82
82
|
|------|----------------|
|
|
83
|
-
| `tool-
|
|
84
|
-
| `
|
|
83
|
+
| `trajectory:tool-used` | Inspect transcript for tool presence and minimum call counts |
|
|
84
|
+
| `trajectory:tool-sequence` | Inspect transcript for expected tool call order |
|
|
85
|
+
| `trajectory:tool-args-match` | Inspect transcript for expected tool arguments |
|
|
86
|
+
| `skill-used` / `not-skill-used` | Check whether the named skill was invoked in tool calls |
|
|
85
87
|
|
|
86
88
|
If transcript data is not available for tool inspection assertions, record `score: null` with a note that transcript data was not captured. Exclude from the weighted average.
|
|
87
89
|
|
|
@@ -6,7 +6,7 @@ core workflow step.
|
|
|
6
6
|
|
|
7
7
|
**Provider compatibility**: Description optimization applies to any agent platform with
|
|
8
8
|
skill-discovery mechanisms — Claude Code, Codex (`.agents/` or `.codex/` folders), Copilot,
|
|
9
|
-
and others. The `skill-
|
|
9
|
+
and others. The `skill-used` and `not-skill-used` graders check whether the agent invoked the right skill,
|
|
10
10
|
regardless of how discovery works on that platform.
|
|
11
11
|
|
|
12
12
|
## Step 1: Generate Trigger EVAL.yaml
|
|
@@ -36,14 +36,13 @@ tests:
|
|
|
36
36
|
- id: should-trigger-casual-optimize
|
|
37
37
|
input: "ok so I have this agent that keeps failing on the code review tasks, can you help me figure out why and fix it"
|
|
38
38
|
assert:
|
|
39
|
-
- type: skill-
|
|
40
|
-
|
|
39
|
+
- type: skill-used
|
|
40
|
+
value: agentv-bench
|
|
41
41
|
- id: should-not-trigger-build-error
|
|
42
42
|
input: "my TypeScript build is failing with type errors in src/auth.ts"
|
|
43
43
|
assert:
|
|
44
|
-
- type: skill-
|
|
45
|
-
|
|
46
|
-
should_trigger: false
|
|
44
|
+
- type: not-skill-used
|
|
45
|
+
value: agentv-bench
|
|
47
46
|
```
|
|
48
47
|
|
|
49
48
|
## Step 2: Review with User
|
|
@@ -28,7 +28,7 @@ to any platform with skill-discovery mechanisms. All listed providers support sk
|
|
|
28
28
|
|
|
29
29
|
## Unsupported Providers: Use a Code-Grader
|
|
30
30
|
|
|
31
|
-
The built-in `skill-
|
|
31
|
+
The built-in `skill-used` and `not-skill-used` graders cover Claude, Copilot, Pi, Codex and VS Code out
|
|
32
32
|
of the box. For providers with different tool-call formats, write a script-grader that inspects
|
|
33
33
|
the agent's transcript messages or tool call trace.
|
|
34
34
|
|
|
@@ -37,7 +37,7 @@ transcript `messages`, and structured `trace`. Inspect `messages` or `trace.even
|
|
|
37
37
|
tool calls; reserve `output` for final-answer text checks.
|
|
38
38
|
|
|
39
39
|
```yaml
|
|
40
|
-
# Example: script-grader for Codex skill-
|
|
40
|
+
# Example: script-grader for Codex skill-use detection
|
|
41
41
|
tests:
|
|
42
42
|
- id: should-trigger-codex
|
|
43
43
|
input: "Analyze this CSV file"
|
|
@@ -171,18 +171,29 @@ Same as contains variants but explicitly case-insensitive.
|
|
|
171
171
|
|
|
172
172
|
### Tool inspection assertions
|
|
173
173
|
|
|
174
|
-
#### `tool-
|
|
174
|
+
#### `trajectory:tool-used`
|
|
175
175
|
|
|
176
|
-
- **Fields:** `
|
|
177
|
-
- **Recipe:** Inspect AgentV-normalized transcript/tool-call data
|
|
178
|
-
- **PASS:**
|
|
179
|
-
- **Boundary:** This is an AgentV extension. Promptfoo `trajectory:*`, `tool-call-f1`, `skill-used`, and `trace-*` assertion names are rejected until implemented directly.
|
|
176
|
+
- **Fields:** `value.name` (string, required), `value.min` (number, optional)
|
|
177
|
+
- **Recipe:** Inspect AgentV-normalized transcript/tool-call data and count matching tool calls.
|
|
178
|
+
- **PASS:** matching calls meet the requested minimum.
|
|
180
179
|
|
|
181
|
-
#### `
|
|
180
|
+
#### `trajectory:tool-sequence`
|
|
182
181
|
|
|
183
|
-
- **Fields:** `
|
|
184
|
-
- **Recipe:**
|
|
185
|
-
- **PASS:**
|
|
182
|
+
- **Fields:** `value.steps` (array of tool names, required), `value.mode` (`in_order` | `exact`)
|
|
183
|
+
- **Recipe:** Inspect AgentV-normalized transcript/tool-call data and compare the observed sequence.
|
|
184
|
+
- **PASS:** tool calls match the expected sequence for the selected mode.
|
|
185
|
+
|
|
186
|
+
#### `trajectory:tool-args-match`
|
|
187
|
+
|
|
188
|
+
- **Fields:** `value.name` (string, required), `value.args` (object, required), `value.mode` (`partial` | `exact`)
|
|
189
|
+
- **Recipe:** Inspect matching tool calls and compare arguments.
|
|
190
|
+
- **PASS:** at least one matching call has the expected arguments.
|
|
191
|
+
|
|
192
|
+
#### `skill-used` / `not-skill-used`
|
|
193
|
+
|
|
194
|
+
- **Fields:** `value` (skill name string or pattern object, required)
|
|
195
|
+
- **Recipe:** Check whether the agent invoked the named skill in its tool calls.
|
|
196
|
+
- **PASS:** `skill-used` finds the skill; `not-skill-used` confirms it is absent.
|
|
186
197
|
|
|
187
198
|
### LLM-judged assertions (require Claude reasoning)
|
|
188
199
|
|
|
@@ -51,9 +51,12 @@ For a v4.42.4-era eval:
|
|
|
51
51
|
15. Replace authored `preprocessors` and deprecated Promptfoo `postprocess`
|
|
52
52
|
with `transform` at `default_test.options`, `tests[].options`, or the
|
|
53
53
|
assertion that needs the shaped output.
|
|
54
|
-
16.
|
|
54
|
+
16. Replace `type: skill-trigger` with `skill-used` or `not-skill-used`.
|
|
55
|
+
17. Replace `type: tool-trajectory` with Promptfoo-compatible `trajectory:*`
|
|
56
|
+
assertions where there is a direct mapping.
|
|
57
|
+
18. Keep raw cases under `tests` / `tests: file://...`; run full eval suites
|
|
55
58
|
directly with CLI multi-file selection and tags.
|
|
56
|
-
|
|
59
|
+
19. Validate with `bun apps/cli/src/cli.ts validate <eval-file>`.
|
|
57
60
|
|
|
58
61
|
## Assertions Renamed To `assert`
|
|
59
62
|
|
|
@@ -211,6 +214,101 @@ templates and custom graders can consume it. The breaking authoring change is
|
|
|
211
214
|
that workers should not depend on missing `assert` plus `criteria` to define
|
|
212
215
|
the whole grading contract for new migrated YAML.
|
|
213
216
|
|
|
217
|
+
## `skill-trigger` And `tool-trajectory` Replaced By Promptfoo Assertions
|
|
218
|
+
|
|
219
|
+
### v4.42.4 Shape
|
|
220
|
+
|
|
221
|
+
Older AgentV YAML used AgentV-specific skill and tool trajectory assertions:
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
assert:
|
|
225
|
+
- type: skill-trigger
|
|
226
|
+
skill: csv-analyzer
|
|
227
|
+
should_trigger: true
|
|
228
|
+
- type: tool-trajectory
|
|
229
|
+
mode: any_order
|
|
230
|
+
minimums:
|
|
231
|
+
search: 2
|
|
232
|
+
- type: tool-trajectory
|
|
233
|
+
mode: exact
|
|
234
|
+
expected:
|
|
235
|
+
- tool: search
|
|
236
|
+
args:
|
|
237
|
+
q: agentv
|
|
238
|
+
- tool: fetch
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Current Shape
|
|
242
|
+
|
|
243
|
+
Current authored eval YAML uses Promptfoo-compatible assertions:
|
|
244
|
+
|
|
245
|
+
```yaml
|
|
246
|
+
assert:
|
|
247
|
+
- type: skill-used
|
|
248
|
+
value: csv-analyzer
|
|
249
|
+
- type: trajectory:tool-used
|
|
250
|
+
value:
|
|
251
|
+
name: search
|
|
252
|
+
min: 2
|
|
253
|
+
- type: trajectory:tool-sequence
|
|
254
|
+
value:
|
|
255
|
+
mode: exact
|
|
256
|
+
steps: [search, fetch]
|
|
257
|
+
- type: trajectory:tool-args-match
|
|
258
|
+
value:
|
|
259
|
+
name: search
|
|
260
|
+
args:
|
|
261
|
+
q: agentv
|
|
262
|
+
mode: partial
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Migration Steps
|
|
266
|
+
|
|
267
|
+
- Replace `type: skill-trigger`, `skill: X`, `should_trigger: true` with
|
|
268
|
+
`type: skill-used`, `value: X`.
|
|
269
|
+
- Replace `type: skill-trigger`, `skill: X`, `should_trigger: false` with
|
|
270
|
+
`type: not-skill-used`, `value: X`.
|
|
271
|
+
- Replace `type: tool-trajectory`, `mode: any_order`, and `minimums: { Tool: N }`
|
|
272
|
+
with one `trajectory:tool-used` assertion per tool:
|
|
273
|
+
|
|
274
|
+
```yaml
|
|
275
|
+
- type: trajectory:tool-used
|
|
276
|
+
value:
|
|
277
|
+
name: Tool
|
|
278
|
+
min: N
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
- Replace `mode: in_order` or `mode: exact` plus `expected` tool steps with
|
|
282
|
+
`trajectory:tool-sequence`:
|
|
283
|
+
|
|
284
|
+
```yaml
|
|
285
|
+
- type: trajectory:tool-sequence
|
|
286
|
+
value:
|
|
287
|
+
mode: exact
|
|
288
|
+
steps: [search, fetch]
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
- Move old `expected[].args` checks to `trajectory:tool-args-match`. Use
|
|
292
|
+
`mode: exact` only for exact argument equality; otherwise use Promptfoo's
|
|
293
|
+
partial argument matching.
|
|
294
|
+
- Do not carry old `max_duration_ms` per-tool latency checks under
|
|
295
|
+
`trajectory:*`. There is no Promptfoo-compatible equivalent in AgentV yet;
|
|
296
|
+
use a `script` assertion or track the behavior as future scope.
|
|
297
|
+
|
|
298
|
+
### Verification
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
bun apps/cli/src/cli.ts validate path/to/eval.eval.yaml
|
|
302
|
+
rg -n "skill-trigger|tool-trajectory" path/to/evals path/to/.agentv/templates
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Compatibility Notes
|
|
306
|
+
|
|
307
|
+
The runtime still has private compatibility classes and tests for older
|
|
308
|
+
helpers. That does not make `skill-trigger` or `tool-trajectory` valid authored
|
|
309
|
+
eval YAML. Normal Promptfoo-aligned eval files fail validation and parsing with
|
|
310
|
+
the replacement guidance above.
|
|
311
|
+
|
|
214
312
|
## Authored `input` Moved To `prompts` Plus Vars
|
|
215
313
|
|
|
216
314
|
### v4.42.4 Shape
|
|
@@ -569,22 +569,33 @@ Variables: `{{criteria}}`, `{{input}}`, `{{expected_output}}`, `{{output}}`, `{{
|
|
|
569
569
|
```
|
|
570
570
|
Use `assert-set` for Promptfoo-aligned assertion grouping. Without `threshold`, the set passes only when every nonzero-weight child assertion passes. With `threshold`, the weighted aggregate score determines the set verdict. Parent `config` is inherited by children, and child `config` keys override parent keys. Do not use `type: composite`; AgentV rejects it.
|
|
571
571
|
|
|
572
|
-
###
|
|
573
|
-
```yaml
|
|
574
|
-
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
572
|
+
### Skill And Trajectory Assertions
|
|
573
|
+
```yaml
|
|
574
|
+
- type: skill-used
|
|
575
|
+
value: csv-analyzer
|
|
576
|
+
- type: not-skill-used
|
|
577
|
+
value:
|
|
578
|
+
pattern: "web-*"
|
|
579
|
+
max: 0
|
|
580
|
+
- type: trajectory:tool-used
|
|
581
|
+
value:
|
|
582
|
+
name: knowledgeSearch
|
|
583
|
+
min: 2
|
|
584
|
+
- type: trajectory:tool-sequence
|
|
585
|
+
value:
|
|
586
|
+
mode: exact
|
|
587
|
+
steps: [knowledgeSearch, documentRetrieve]
|
|
588
|
+
- type: trajectory:tool-args-match
|
|
589
|
+
value:
|
|
590
|
+
name: knowledgeSearch
|
|
591
|
+
args: { query: "search term" }
|
|
592
|
+
mode: partial
|
|
593
|
+
```
|
|
594
|
+
Use Promptfoo-compatible `skill-used`, `not-skill-used`, and `trajectory:*`
|
|
595
|
+
assertions for new eval YAML. Do not author `skill-trigger` or
|
|
596
|
+
`tool-trajectory`; AgentV rejects them with migration guidance. Per-tool
|
|
597
|
+
latency checks from old `tool-trajectory` YAML do not have a Promptfoo
|
|
598
|
+
trajectory equivalent yet; use a `script` assertion for that behavior.
|
|
588
599
|
|
|
589
600
|
### field-accuracy
|
|
590
601
|
```yaml
|
|
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module'; const require = createRequire(impor
|
|
|
2
2
|
import {
|
|
3
3
|
loadTsEvalFile,
|
|
4
4
|
loadTsEvalSuite
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6ZZCDZPD.js";
|
|
6
6
|
import "./chunk-7BGERE6L.js";
|
|
7
7
|
import "./chunk-PEUTJS7B.js";
|
|
8
8
|
import "./chunk-M7BUKBAF.js";
|
|
@@ -11,4 +11,4 @@ export {
|
|
|
11
11
|
loadTsEvalFile,
|
|
12
12
|
loadTsEvalSuite
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=ts-eval-loader-
|
|
14
|
+
//# sourceMappingURL=ts-eval-loader-DQDYRULE-V3377FOL.js.map
|