@axlsdk/eval 0.25.1 → 0.25.2
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/README.md +13 -13
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ export default defineEval({
|
|
|
44
44
|
llmScorer({
|
|
45
45
|
name: 'relevance',
|
|
46
46
|
description: 'Is the answer relevant to the question?',
|
|
47
|
-
model: '
|
|
47
|
+
model: 'anthropic:claude-haiku-5-5',
|
|
48
48
|
system: 'Rate whether the answer is relevant to the question asked.',
|
|
49
49
|
}),
|
|
50
50
|
],
|
|
@@ -166,7 +166,7 @@ import { llmScorer } from '@axlsdk/eval';
|
|
|
166
166
|
const refusalQuality = llmScorer({
|
|
167
167
|
name: 'refusal-quality',
|
|
168
168
|
description: 'Did the model refuse appropriately and explain why?',
|
|
169
|
-
model: '
|
|
169
|
+
model: 'anthropic:claude-haiku-5-5',
|
|
170
170
|
system: 'Rate whether the output is a well-justified refusal.',
|
|
171
171
|
applies: (_output, _input, annotations) => annotations?.expectRefusal === true,
|
|
172
172
|
});
|
|
@@ -186,7 +186,7 @@ import { llmScorer } from '@axlsdk/eval';
|
|
|
186
186
|
const qualityJudge = llmScorer({
|
|
187
187
|
name: 'quality',
|
|
188
188
|
description: 'Rates overall output quality',
|
|
189
|
-
model: '
|
|
189
|
+
model: 'anthropic:claude-haiku-5-5', // provider:model URI
|
|
190
190
|
system: 'Rate the quality of the AI output.',
|
|
191
191
|
});
|
|
192
192
|
```
|
|
@@ -199,14 +199,14 @@ import { z } from 'zod';
|
|
|
199
199
|
const detailedJudge = llmScorer({
|
|
200
200
|
name: 'detailed',
|
|
201
201
|
description: 'Rates quality with confidence',
|
|
202
|
-
model: 'openai:gpt-
|
|
202
|
+
model: 'openai-responses:gpt-6-luna',
|
|
203
203
|
system: 'Rate quality and your confidence in the rating.',
|
|
204
204
|
schema: z.object({
|
|
205
205
|
score: z.number().min(0).max(1),
|
|
206
206
|
reasoning: z.string(),
|
|
207
207
|
confidence: z.number().min(0).max(1),
|
|
208
208
|
}),
|
|
209
|
-
temperature: 0.2, // default
|
|
209
|
+
temperature: 0.2, // default 0.2; ignored on reasoning models (GPT-6, Claude 5.x)
|
|
210
210
|
});
|
|
211
211
|
```
|
|
212
212
|
|
|
@@ -225,21 +225,21 @@ The `model` field uses a `provider:model` URI. The provider is resolved automati
|
|
|
225
225
|
Different LLM scorers can use different providers — each resolves independently:
|
|
226
226
|
|
|
227
227
|
```typescript
|
|
228
|
-
const qualityJudge = llmScorer({ name: 'quality', model: 'openai:gpt-
|
|
229
|
-
const safetyJudge = llmScorer({ name: 'safety', model: 'anthropic:claude-
|
|
228
|
+
const qualityJudge = llmScorer({ name: 'quality', model: 'openai-responses:gpt-6-luna', ... });
|
|
229
|
+
const safetyJudge = llmScorer({ name: 'safety', model: 'anthropic:claude-haiku-5-5', ... });
|
|
230
230
|
```
|
|
231
231
|
|
|
232
232
|
LLM scorers also accept the conditional `applies` predicate described in [Conditional scorers](#conditional-scorers-applies) — the most valuable place to use it, since a skipped judge makes no provider call at all.
|
|
233
233
|
|
|
234
234
|
#### Tuning the judge
|
|
235
235
|
|
|
236
|
-
For reasoning-capable judge models (
|
|
236
|
+
For reasoning-capable judge models (GPT-6, Claude 5.x, Gemini 3.x), `effort` is the highest-leverage knob — judges with reasoning enabled are materially more consistent. The full `ChatOptions` surface is forwarded:
|
|
237
237
|
|
|
238
238
|
```typescript
|
|
239
239
|
const carefulJudge = llmScorer({
|
|
240
240
|
name: 'careful',
|
|
241
241
|
description: 'Reasoning-grade quality judge',
|
|
242
|
-
model: 'openai-responses:gpt-
|
|
242
|
+
model: 'openai-responses:gpt-6-sol',
|
|
243
243
|
system: 'Rate output quality and explain your reasoning.',
|
|
244
244
|
effort: 'high', // huge calibration improvement on reasoning models
|
|
245
245
|
maxTokens: 1024, // cap chatty judges to control spend
|
|
@@ -346,7 +346,7 @@ import { AxlRuntime, workflow, agent } from '@axlsdk/axl';
|
|
|
346
346
|
import { dataset, scorer } from '@axlsdk/eval';
|
|
347
347
|
import { z } from 'zod';
|
|
348
348
|
|
|
349
|
-
const qaAgent = agent({ name: 'qa', model: 'openai:gpt-
|
|
349
|
+
const qaAgent = agent({ name: 'qa', model: 'openai-responses:gpt-6-sol', system: 'Answer questions.' });
|
|
350
350
|
const qaWorkflow = workflow({
|
|
351
351
|
name: 'qa-workflow',
|
|
352
352
|
input: z.object({ question: z.string() }),
|
|
@@ -473,8 +473,8 @@ console.log(results.unpriced); // true when that tota
|
|
|
473
473
|
console.log(results.accounting.completeness); // 'complete' | 'incomplete' | 'unverified'
|
|
474
474
|
console.log(results.accounting.breakdown); // { generation, judging, external }
|
|
475
475
|
console.log(results.summary.coverage.items); // { completed, failed, cancelled, budget_skipped, budget_interrupted }
|
|
476
|
-
console.log(results.metadata.models); // ["openai:gpt-
|
|
477
|
-
console.log(results.metadata.modelCounts); // { "openai:gpt-
|
|
476
|
+
console.log(results.metadata.models); // ["openai-responses:gpt-6-sol"] (sorted by usage)
|
|
477
|
+
console.log(results.metadata.modelCounts); // { "openai-responses:gpt-6-sol": 48, "openai-responses:gpt-6-luna": 2 } (total LLM calls per model)
|
|
478
478
|
|
|
479
479
|
// ── Per-item inspection ──────────────────────────────
|
|
480
480
|
for (const item of results.items) {
|
|
@@ -487,7 +487,7 @@ for (const item of results.items) {
|
|
|
487
487
|
console.log(item.scorerCost); // total scorer cost for this item
|
|
488
488
|
|
|
489
489
|
// Execution metadata (models, tokens, agent calls — captured by AxlRuntime)
|
|
490
|
-
console.log(item.metadata?.models); // ["openai:gpt-
|
|
490
|
+
console.log(item.metadata?.models); // ["openai-responses:gpt-6-sol"]
|
|
491
491
|
console.log(item.metadata?.tokens); // { input: 150, output: 320, reasoning: 0 }
|
|
492
492
|
console.log(item.metadata?.agentCalls); // 1
|
|
493
493
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axlsdk/eval",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.2",
|
|
4
4
|
"description": "Evaluation framework for Axl agentic workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dist"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@axlsdk/axl": "0.25.
|
|
28
|
+
"@axlsdk/axl": "0.25.2"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"zod": "^4.0.0",
|