@memberjunction/testing-engine 2.125.0 → 2.126.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.
|
@@ -29,15 +29,58 @@ export interface AgentEvalConfig {
|
|
|
29
29
|
* Maximum execution time in milliseconds
|
|
30
30
|
*/
|
|
31
31
|
maxExecutionTime?: number;
|
|
32
|
+
/**
|
|
33
|
+
* When to evaluate with oracles in multi-turn tests
|
|
34
|
+
* - "final-turn-only": Run oracles only on final turn (default)
|
|
35
|
+
* - "each-turn": Run oracles after each turn
|
|
36
|
+
* - "all-turns-aggregate": Evaluate all turns together at the end
|
|
37
|
+
*/
|
|
38
|
+
evaluationStrategy?: 'final-turn-only' | 'each-turn' | 'all-turns-aggregate';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Single turn in a multi-turn test
|
|
42
|
+
*/
|
|
43
|
+
export interface AgentEvalTurn {
|
|
44
|
+
/**
|
|
45
|
+
* User message for this turn
|
|
46
|
+
*/
|
|
47
|
+
userMessage: string;
|
|
48
|
+
/**
|
|
49
|
+
* Input payload for this turn.
|
|
50
|
+
* - Turn 1: Use this payload (if provided)
|
|
51
|
+
* - Turn N (N>1): Automatically populated from previous turn's output
|
|
52
|
+
*/
|
|
53
|
+
inputPayload?: Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Optional: Override execution params for this specific turn
|
|
56
|
+
*/
|
|
57
|
+
executionParams?: {
|
|
58
|
+
modelOverride?: string;
|
|
59
|
+
temperatureOverride?: number;
|
|
60
|
+
maxTokensOverride?: number;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Optional: Expected outcomes specific to this turn
|
|
64
|
+
* (for per-turn oracle evaluation)
|
|
65
|
+
*/
|
|
66
|
+
expectedOutcomes?: AgentEvalExpectedOutcomes;
|
|
32
67
|
}
|
|
33
68
|
/**
|
|
34
69
|
* Input definition for Agent Evaluation tests.
|
|
35
70
|
*/
|
|
36
71
|
export interface AgentEvalInput {
|
|
37
72
|
/**
|
|
38
|
-
* User message to send to agent
|
|
73
|
+
* Single-turn: User message to send to agent (backward compatible)
|
|
39
74
|
*/
|
|
40
|
-
userMessage
|
|
75
|
+
userMessage?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Single-turn: Input payload (backward compatible)
|
|
78
|
+
*/
|
|
79
|
+
inputPayload?: Record<string, unknown>;
|
|
80
|
+
/**
|
|
81
|
+
* Multi-turn: Array of turns to execute
|
|
82
|
+
*/
|
|
83
|
+
turns?: AgentEvalTurn[];
|
|
41
84
|
/**
|
|
42
85
|
* Optional conversation context
|
|
43
86
|
*/
|
|
@@ -49,7 +92,7 @@ export interface AgentEvalInput {
|
|
|
49
92
|
}>;
|
|
50
93
|
};
|
|
51
94
|
/**
|
|
52
|
-
* Optional agent execution parameters
|
|
95
|
+
* Optional agent execution parameters (applies to all turns unless overridden)
|
|
53
96
|
*/
|
|
54
97
|
executionParams?: {
|
|
55
98
|
modelOverride?: string;
|
|
@@ -134,8 +177,8 @@ export declare class AgentEvalDriver extends BaseTestDriver {
|
|
|
134
177
|
*
|
|
135
178
|
* Steps:
|
|
136
179
|
* 1. Parse configuration and input
|
|
137
|
-
* 2. Load and execute agent via AgentRunner
|
|
138
|
-
* 3. Create bidirectional link (TestRun ↔ AgentRun)
|
|
180
|
+
* 2. Load and execute agent via AgentRunner (single or multi-turn)
|
|
181
|
+
* 3. Create bidirectional link (TestRun ↔ AgentRun(s))
|
|
139
182
|
* 4. Run oracles to evaluate results
|
|
140
183
|
* 5. Calculate score and determine status
|
|
141
184
|
* 6. Return structured results
|
|
@@ -164,25 +207,66 @@ export declare class AgentEvalDriver extends BaseTestDriver {
|
|
|
164
207
|
*/
|
|
165
208
|
private loadAgent;
|
|
166
209
|
/**
|
|
167
|
-
* Execute agent and return
|
|
210
|
+
* Execute agent (single or multi-turn) and return results.
|
|
168
211
|
* @private
|
|
169
212
|
*/
|
|
170
213
|
private executeAgent;
|
|
171
214
|
/**
|
|
172
|
-
*
|
|
215
|
+
* Execute a single turn in a multi-turn test.
|
|
173
216
|
* @private
|
|
174
217
|
*/
|
|
175
|
-
private
|
|
218
|
+
private executeSingleTurn;
|
|
219
|
+
/**
|
|
220
|
+
* Create a timeout promise that rejects after specified milliseconds.
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
private createTimeoutPromise;
|
|
224
|
+
/**
|
|
225
|
+
* Normalize input to multi-turn format for consistent processing.
|
|
226
|
+
* @private
|
|
227
|
+
*/
|
|
228
|
+
private normalizeTurns;
|
|
229
|
+
/**
|
|
230
|
+
* Extract output payload from agent run.
|
|
231
|
+
* Parses the FinalPayload string property to get the agent's output for chaining to next turn.
|
|
232
|
+
* @private
|
|
233
|
+
*/
|
|
234
|
+
private extractOutputPayload;
|
|
235
|
+
/**
|
|
236
|
+
* Create bidirectional links between TestRun and multiple AgentRuns.
|
|
237
|
+
* @private
|
|
238
|
+
*/
|
|
239
|
+
private linkTestRunToAgentRuns;
|
|
176
240
|
/**
|
|
177
241
|
* Extract agent output from agent run.
|
|
178
242
|
* @private
|
|
179
243
|
*/
|
|
180
244
|
private extractAgentOutput;
|
|
181
245
|
/**
|
|
182
|
-
* Run
|
|
246
|
+
* Run oracles for multi-turn evaluation.
|
|
247
|
+
* @private
|
|
248
|
+
*/
|
|
249
|
+
private runOraclesForMultiTurn;
|
|
250
|
+
/**
|
|
251
|
+
* Run oracles only on the final turn.
|
|
252
|
+
* @private
|
|
253
|
+
*/
|
|
254
|
+
private runOraclesForFinalTurn;
|
|
255
|
+
/**
|
|
256
|
+
* Run oracles after each turn and aggregate results.
|
|
257
|
+
* @private
|
|
258
|
+
*/
|
|
259
|
+
private runOraclesForEachTurn;
|
|
260
|
+
/**
|
|
261
|
+
* Run oracles with all turns data for holistic evaluation.
|
|
262
|
+
* @private
|
|
263
|
+
*/
|
|
264
|
+
private runOraclesForAllTurns;
|
|
265
|
+
/**
|
|
266
|
+
* Run oracles for a single turn.
|
|
183
267
|
* @private
|
|
184
268
|
*/
|
|
185
|
-
private
|
|
269
|
+
private runOraclesForSingleTurn;
|
|
186
270
|
/**
|
|
187
271
|
* Calculate total cost from agent run.
|
|
188
272
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentEvalDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAmC,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAG3G,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACH,sBAAsB,EACtB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"AgentEvalDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,8 +59,8 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
59
59
|
*
|
|
60
60
|
* Steps:
|
|
61
61
|
* 1. Parse configuration and input
|
|
62
|
-
* 2. Load and execute agent via AgentRunner
|
|
63
|
-
* 3. Create bidirectional link (TestRun ↔ AgentRun)
|
|
62
|
+
* 2. Load and execute agent via AgentRunner (single or multi-turn)
|
|
63
|
+
* 3. Create bidirectional link (TestRun ↔ AgentRun(s))
|
|
64
64
|
* 4. Run oracles to evaluate results
|
|
65
65
|
* 5. Calculate score and determine status
|
|
66
66
|
* 6. Return structured results
|
|
@@ -77,34 +77,36 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
77
77
|
const expected = this.parseExpectedOutcomes(context.test);
|
|
78
78
|
// Load agent
|
|
79
79
|
const agent = await this.loadAgent(config.agentId, context.contextUser);
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
//
|
|
85
|
-
await this.
|
|
86
|
-
//
|
|
87
|
-
|
|
80
|
+
// Normalize input to multi-turn format
|
|
81
|
+
const turns = this.normalizeTurns(input);
|
|
82
|
+
const isMultiTurn = turns.length > 1;
|
|
83
|
+
this.log(`Executing agent: ${agent.Name} (${turns.length} turn${turns.length > 1 ? 's' : ''})`, context.options.verbose);
|
|
84
|
+
// Execute agent (single or multi-turn)
|
|
85
|
+
const { agentRuns, turnResults } = await this.executeAgent(agent, input, context.contextUser, context.test, config.maxExecutionTime, context.testRun);
|
|
86
|
+
// Create bidirectional links for all agent runs
|
|
87
|
+
await this.linkTestRunToAgentRuns(context.testRun, agentRuns);
|
|
88
|
+
// Get final agent run and output
|
|
89
|
+
const finalAgentRun = agentRuns[agentRuns.length - 1];
|
|
90
|
+
const actualOutput = this.extractAgentOutput(finalAgentRun);
|
|
88
91
|
// Run oracles
|
|
89
92
|
this.log('Running oracles for evaluation', context.options.verbose);
|
|
90
|
-
const oracleResults = await this.
|
|
93
|
+
const oracleResults = await this.runOraclesForMultiTurn(config, turns, turnResults, expected, context);
|
|
91
94
|
// Calculate score and status
|
|
92
|
-
// When oracles are disabled, consider test passed if agent succeeded
|
|
95
|
+
// When oracles are disabled, consider test passed if final agent run succeeded
|
|
93
96
|
const score = this.calculateScore(oracleResults, config.scoringWeights);
|
|
94
|
-
const status = oracleResults.length === 0 &&
|
|
97
|
+
const status = oracleResults.length === 0 && finalAgentRun.Status === 'Completed'
|
|
95
98
|
? 'Passed'
|
|
96
99
|
: this.determineStatus(oracleResults);
|
|
97
100
|
// Count checks
|
|
98
101
|
const passedChecks = oracleResults.filter(r => r.passed).length;
|
|
99
102
|
const totalChecks = oracleResults.length;
|
|
100
|
-
// Calculate cost
|
|
101
|
-
const totalCost =
|
|
102
|
-
|
|
103
|
-
const durationMs = this.calculateDurationMs(agentRun);
|
|
103
|
+
// Calculate total cost and duration across all turns
|
|
104
|
+
const totalCost = turnResults.reduce((sum, tr) => sum + (tr.cost || 0), 0);
|
|
105
|
+
const durationMs = turnResults.reduce((sum, tr) => sum + (tr.durationMs || 0), 0);
|
|
104
106
|
// Build result
|
|
105
107
|
const result = {
|
|
106
108
|
targetType: 'AI Agent',
|
|
107
|
-
targetLogId:
|
|
109
|
+
targetLogId: finalAgentRun.ID,
|
|
108
110
|
status,
|
|
109
111
|
score,
|
|
110
112
|
oracleResults,
|
|
@@ -115,7 +117,11 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
115
117
|
expectedOutput: expected,
|
|
116
118
|
actualOutput,
|
|
117
119
|
totalCost,
|
|
118
|
-
durationMs
|
|
120
|
+
durationMs,
|
|
121
|
+
// Multi-turn specific fields
|
|
122
|
+
totalTurns: isMultiTurn ? turns.length : undefined,
|
|
123
|
+
turnResults: isMultiTurn ? turnResults : undefined,
|
|
124
|
+
allAgentRunIds: isMultiTurn ? agentRuns.map(ar => ar.ID) : undefined
|
|
119
125
|
};
|
|
120
126
|
this.log(`Agent evaluation completed: ${status} (Score: ${score})`, context.options.verbose);
|
|
121
127
|
return result;
|
|
@@ -184,12 +190,45 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
184
190
|
}
|
|
185
191
|
// Validate input definition
|
|
186
192
|
const input = this.parseInputDefinition(test);
|
|
187
|
-
|
|
193
|
+
// Validate either userMessage OR turns is provided
|
|
194
|
+
if (!input.userMessage && (!input.turns || input.turns.length === 0)) {
|
|
188
195
|
errors.push({
|
|
189
196
|
category: 'input',
|
|
190
|
-
message: 'userMessage is required in InputDefinition',
|
|
191
|
-
field: 'InputDefinition
|
|
192
|
-
suggestion: 'Provide
|
|
197
|
+
message: 'Either userMessage or turns array is required in InputDefinition',
|
|
198
|
+
field: 'InputDefinition',
|
|
199
|
+
suggestion: 'Provide userMessage for single-turn or turns array for multi-turn tests'
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
// Validate turns array if provided
|
|
203
|
+
if (input.turns) {
|
|
204
|
+
if (input.turns.length === 0) {
|
|
205
|
+
errors.push({
|
|
206
|
+
category: 'input',
|
|
207
|
+
message: 'turns array cannot be empty',
|
|
208
|
+
field: 'InputDefinition.turns',
|
|
209
|
+
suggestion: 'Provide at least one turn in the turns array'
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
// Validate each turn
|
|
213
|
+
input.turns.forEach((turn, index) => {
|
|
214
|
+
if (!turn.userMessage || turn.userMessage.trim() === '') {
|
|
215
|
+
errors.push({
|
|
216
|
+
category: 'input',
|
|
217
|
+
message: `Turn ${index + 1}: userMessage is required`,
|
|
218
|
+
field: `InputDefinition.turns[${index}].userMessage`,
|
|
219
|
+
suggestion: 'Each turn must have a non-empty userMessage'
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
// Warning if inputPayload provided on non-first turns
|
|
224
|
+
input.turns.forEach((turn, index) => {
|
|
225
|
+
if (index > 0 && turn.inputPayload) {
|
|
226
|
+
warnings.push({
|
|
227
|
+
category: 'best-practice',
|
|
228
|
+
message: `Turn ${index + 1}: inputPayload will be overridden by previous turn output`,
|
|
229
|
+
recommendation: 'Only the first turn should have inputPayload defined; subsequent turns automatically receive output from previous turn'
|
|
230
|
+
});
|
|
231
|
+
}
|
|
193
232
|
});
|
|
194
233
|
}
|
|
195
234
|
}
|
|
@@ -217,16 +256,57 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
217
256
|
return agent;
|
|
218
257
|
}
|
|
219
258
|
/**
|
|
220
|
-
* Execute agent and return
|
|
259
|
+
* Execute agent (single or multi-turn) and return results.
|
|
221
260
|
* @private
|
|
222
261
|
*/
|
|
223
262
|
async executeAgent(agent, input, contextUser, test, maxExecutionTime, testRun) {
|
|
263
|
+
// Normalize to multi-turn format
|
|
264
|
+
const turns = this.normalizeTurns(input);
|
|
265
|
+
const agentRuns = [];
|
|
266
|
+
const turnResults = [];
|
|
267
|
+
let conversationId = input.conversationContext?.conversationId;
|
|
268
|
+
let previousOutputPayload;
|
|
269
|
+
// Execute each turn sequentially
|
|
270
|
+
for (let i = 0; i < turns.length; i++) {
|
|
271
|
+
const turn = turns[i];
|
|
272
|
+
const turnNumber = i + 1;
|
|
273
|
+
// Determine input payload for this turn
|
|
274
|
+
const inputPayload = i === 0
|
|
275
|
+
? turn.inputPayload // First turn: use provided payload
|
|
276
|
+
: previousOutputPayload; // Subsequent turns: use previous output
|
|
277
|
+
// Execute single turn
|
|
278
|
+
const turnResult = await this.executeSingleTurn({
|
|
279
|
+
agent,
|
|
280
|
+
turn,
|
|
281
|
+
turnNumber,
|
|
282
|
+
totalTurns: turns.length,
|
|
283
|
+
conversationId,
|
|
284
|
+
inputPayload,
|
|
285
|
+
priorMessages: input.conversationContext?.priorMessages,
|
|
286
|
+
contextUser,
|
|
287
|
+
test,
|
|
288
|
+
testRun,
|
|
289
|
+
maxExecutionTime
|
|
290
|
+
});
|
|
291
|
+
agentRuns.push(turnResult.agentRun);
|
|
292
|
+
turnResults.push(turnResult);
|
|
293
|
+
// Update context for next turn
|
|
294
|
+
conversationId = turnResult.agentRun.ConversationID;
|
|
295
|
+
previousOutputPayload = this.extractOutputPayload(turnResult.agentRun);
|
|
296
|
+
}
|
|
297
|
+
return { agentRuns, turnResults };
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Execute a single turn in a multi-turn test.
|
|
301
|
+
* @private
|
|
302
|
+
*/
|
|
303
|
+
async executeSingleTurn(params) {
|
|
224
304
|
const runner = new ai_agents_1.AgentRunner();
|
|
225
|
-
// Build conversation messages
|
|
305
|
+
// Build conversation messages (only for first turn with priorMessages)
|
|
226
306
|
const conversationMessages = [];
|
|
227
|
-
// Add prior messages if provided
|
|
228
|
-
if (
|
|
229
|
-
for (const msg of
|
|
307
|
+
// Add prior messages only if this is the first turn and they're provided
|
|
308
|
+
if (params.turnNumber === 1 && params.priorMessages) {
|
|
309
|
+
for (const msg of params.priorMessages) {
|
|
230
310
|
conversationMessages.push({
|
|
231
311
|
role: msg.role,
|
|
232
312
|
content: msg.content
|
|
@@ -236,56 +316,107 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
236
316
|
// Add current user message
|
|
237
317
|
conversationMessages.push({
|
|
238
318
|
role: 'user',
|
|
239
|
-
content:
|
|
319
|
+
content: params.turn.userMessage
|
|
240
320
|
});
|
|
321
|
+
// Build conversation name
|
|
322
|
+
const conversationName = params.totalTurns > 1
|
|
323
|
+
? (params.testRun.Sequence != null
|
|
324
|
+
? `[${params.testRun.Sequence}] ${params.test.Name} - Turn ${params.turnNumber}`
|
|
325
|
+
: `[Test] ${params.test.Name} - Turn ${params.turnNumber}`)
|
|
326
|
+
: (params.testRun.Sequence != null
|
|
327
|
+
? `[${params.testRun.Sequence}] ${params.test.Name}`
|
|
328
|
+
: `[Test] ${params.test.Name}`);
|
|
241
329
|
// Build execution parameters
|
|
242
|
-
const
|
|
243
|
-
agent: agent,
|
|
330
|
+
const runParams = {
|
|
331
|
+
agent: params.agent,
|
|
332
|
+
conversationId: params.conversationId, // Continue same conversation for multi-turn
|
|
244
333
|
conversationMessages,
|
|
245
|
-
contextUser,
|
|
246
|
-
|
|
247
|
-
|
|
334
|
+
contextUser: params.contextUser,
|
|
335
|
+
payload: params.inputPayload, // Pass payload from previous turn
|
|
336
|
+
override: params.turn.executionParams?.modelOverride ? {
|
|
337
|
+
modelId: params.turn.executionParams.modelOverride
|
|
248
338
|
} : undefined
|
|
249
339
|
};
|
|
250
|
-
//
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
:
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
340
|
+
// Execute with timeout if specified
|
|
341
|
+
const executePromise = runner.RunAgentInConversation(runParams, {
|
|
342
|
+
userMessage: params.turn.userMessage,
|
|
343
|
+
createArtifacts: true,
|
|
344
|
+
conversationName: conversationName,
|
|
345
|
+
testRunId: params.testRun.ID
|
|
346
|
+
});
|
|
347
|
+
const startTime = Date.now();
|
|
348
|
+
const runResult = params.maxExecutionTime
|
|
349
|
+
? await Promise.race([
|
|
350
|
+
executePromise,
|
|
351
|
+
this.createTimeoutPromise(params.maxExecutionTime)
|
|
352
|
+
])
|
|
353
|
+
: await executePromise;
|
|
354
|
+
const endTime = Date.now();
|
|
355
|
+
const agentRun = runResult.agentResult.agentRun;
|
|
356
|
+
return {
|
|
357
|
+
turnNumber: params.turnNumber,
|
|
358
|
+
agentRun,
|
|
359
|
+
inputPayload: params.inputPayload,
|
|
360
|
+
outputPayload: this.extractOutputPayload(agentRun),
|
|
361
|
+
durationMs: endTime - startTime,
|
|
362
|
+
cost: agentRun.TotalCost || 0
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Create a timeout promise that rejects after specified milliseconds.
|
|
367
|
+
* @private
|
|
368
|
+
*/
|
|
369
|
+
createTimeoutPromise(timeoutMs) {
|
|
370
|
+
return new Promise((_, reject) => setTimeout(() => reject(new Error(`Agent execution timeout after ${timeoutMs}ms`)), timeoutMs));
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Normalize input to multi-turn format for consistent processing.
|
|
374
|
+
* @private
|
|
375
|
+
*/
|
|
376
|
+
normalizeTurns(input) {
|
|
377
|
+
// If turns array provided, use it
|
|
378
|
+
if (input.turns && input.turns.length > 0) {
|
|
379
|
+
return input.turns;
|
|
268
380
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
});
|
|
276
|
-
return { agentRun: runResult.agentResult.agentRun };
|
|
381
|
+
// Backward compatibility: convert single message to single turn
|
|
382
|
+
if (input.userMessage) {
|
|
383
|
+
return [{
|
|
384
|
+
userMessage: input.userMessage,
|
|
385
|
+
inputPayload: input.inputPayload
|
|
386
|
+
}];
|
|
277
387
|
}
|
|
388
|
+
throw new Error('Either userMessage or turns must be provided in InputDefinition');
|
|
278
389
|
}
|
|
279
390
|
/**
|
|
280
|
-
*
|
|
391
|
+
* Extract output payload from agent run.
|
|
392
|
+
* Parses the FinalPayload string property to get the agent's output for chaining to next turn.
|
|
281
393
|
* @private
|
|
282
394
|
*/
|
|
283
|
-
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
const
|
|
287
|
-
|
|
288
|
-
|
|
395
|
+
extractOutputPayload(agentRun) {
|
|
396
|
+
// Parse the FinalPayload string property (which exists on base AIAgentRunEntity)
|
|
397
|
+
// SafeJSONParse returns the parsed object or an empty object if parsing fails
|
|
398
|
+
const finalPayloadObject = (0, global_1.SafeJSONParse)(agentRun.FinalPayload);
|
|
399
|
+
return finalPayloadObject || {};
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Create bidirectional links between TestRun and multiple AgentRuns.
|
|
403
|
+
* @private
|
|
404
|
+
*/
|
|
405
|
+
async linkTestRunToAgentRuns(testRun, agentRuns) {
|
|
406
|
+
// Link each AgentRun to TestRun with TurnNumber
|
|
407
|
+
for (let i = 0; i < agentRuns.length; i++) {
|
|
408
|
+
const agentRun = agentRuns[i];
|
|
409
|
+
const turnNumber = i + 1;
|
|
410
|
+
// Update AgentRun with hard FK to TestRun
|
|
411
|
+
agentRun.TestRunID = testRun.ID;
|
|
412
|
+
// Set turn number if field exists (check dynamically)
|
|
413
|
+
if ('TurnNumber' in agentRun) {
|
|
414
|
+
agentRun.TurnNumber = turnNumber;
|
|
415
|
+
}
|
|
416
|
+
const saved = await agentRun.Save();
|
|
417
|
+
if (!saved) {
|
|
418
|
+
this.logError(`Failed to link AgentRun (Turn ${turnNumber}) to TestRun`, new Error(agentRun.LatestResult?.Message));
|
|
419
|
+
}
|
|
289
420
|
}
|
|
290
421
|
}
|
|
291
422
|
/**
|
|
@@ -301,18 +432,58 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
301
432
|
};
|
|
302
433
|
}
|
|
303
434
|
/**
|
|
304
|
-
* Run
|
|
435
|
+
* Run oracles for multi-turn evaluation.
|
|
305
436
|
* @private
|
|
306
437
|
*/
|
|
307
|
-
async
|
|
308
|
-
const oracleResults = [];
|
|
438
|
+
async runOraclesForMultiTurn(config, turns, turnResults, expected, context) {
|
|
309
439
|
// TODO: Temporarily skip oracle execution while oracles are being finalized
|
|
310
440
|
// Remove this flag once oracles are ready (SQL schema fixes, LLM Judge prompt creation, etc.)
|
|
311
441
|
const skipOracles = true;
|
|
312
442
|
if (skipOracles) {
|
|
313
443
|
this.log('⚠️ Oracle execution temporarily disabled', context.options.verbose);
|
|
314
|
-
return
|
|
444
|
+
return [];
|
|
445
|
+
}
|
|
446
|
+
const strategy = config.evaluationStrategy || 'final-turn-only';
|
|
447
|
+
switch (strategy) {
|
|
448
|
+
case 'final-turn-only':
|
|
449
|
+
return this.runOraclesForFinalTurn(config, turns, turnResults, expected, context);
|
|
450
|
+
case 'each-turn':
|
|
451
|
+
return this.runOraclesForEachTurn(config, turns, turnResults, expected, context);
|
|
452
|
+
case 'all-turns-aggregate':
|
|
453
|
+
return this.runOraclesForAllTurns(config, turns, turnResults, expected, context);
|
|
454
|
+
default:
|
|
455
|
+
throw new Error(`Unknown evaluation strategy: ${strategy}`);
|
|
315
456
|
}
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Run oracles only on the final turn.
|
|
460
|
+
* @private
|
|
461
|
+
*/
|
|
462
|
+
async runOraclesForFinalTurn(config, turns, turnResults, expected, context) {
|
|
463
|
+
const finalTurnResult = turnResults[turnResults.length - 1];
|
|
464
|
+
const finalTurn = turns[turns.length - 1];
|
|
465
|
+
return this.runOraclesForSingleTurn(config, finalTurn, finalTurnResult, finalTurn.expectedOutcomes || expected, context);
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Run oracles after each turn and aggregate results.
|
|
469
|
+
* @private
|
|
470
|
+
*/
|
|
471
|
+
async runOraclesForEachTurn(config, turns, turnResults, expected, context) {
|
|
472
|
+
const allResults = [];
|
|
473
|
+
for (let i = 0; i < turnResults.length; i++) {
|
|
474
|
+
const turn = turns[i];
|
|
475
|
+
const turnResult = turnResults[i];
|
|
476
|
+
const turnOracles = await this.runOraclesForSingleTurn(config, turn, turnResult, turn.expectedOutcomes || expected, context, `Turn ${i + 1}: `);
|
|
477
|
+
allResults.push(...turnOracles);
|
|
478
|
+
}
|
|
479
|
+
return allResults;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Run oracles with all turns data for holistic evaluation.
|
|
483
|
+
* @private
|
|
484
|
+
*/
|
|
485
|
+
async runOraclesForAllTurns(config, turns, turnResults, expected, context) {
|
|
486
|
+
const oracleResults = [];
|
|
316
487
|
for (const oracleConfig of config.oracles) {
|
|
317
488
|
const oracle = context.oracleRegistry.get(oracleConfig.type);
|
|
318
489
|
if (!oracle) {
|
|
@@ -320,11 +491,20 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
320
491
|
continue;
|
|
321
492
|
}
|
|
322
493
|
try {
|
|
494
|
+
// Pass all turns data to oracle
|
|
323
495
|
const oracleInput = {
|
|
324
496
|
test: context.test,
|
|
325
497
|
expectedOutput: expected,
|
|
326
|
-
actualOutput
|
|
327
|
-
|
|
498
|
+
actualOutput: {
|
|
499
|
+
turns: turnResults.map(tr => ({
|
|
500
|
+
turnNumber: tr.turnNumber,
|
|
501
|
+
inputPayload: tr.inputPayload,
|
|
502
|
+
outputPayload: tr.outputPayload,
|
|
503
|
+
agentRunId: tr.agentRun.ID
|
|
504
|
+
})),
|
|
505
|
+
finalOutput: turnResults[turnResults.length - 1].outputPayload
|
|
506
|
+
},
|
|
507
|
+
targetEntity: turnResults[turnResults.length - 1].agentRun,
|
|
328
508
|
contextUser: context.contextUser
|
|
329
509
|
};
|
|
330
510
|
const result = await oracle.evaluate(oracleInput, oracleConfig.config || {});
|
|
@@ -343,6 +523,46 @@ let AgentEvalDriver = class AgentEvalDriver extends BaseTestDriver_1.BaseTestDri
|
|
|
343
523
|
}
|
|
344
524
|
return oracleResults;
|
|
345
525
|
}
|
|
526
|
+
/**
|
|
527
|
+
* Run oracles for a single turn.
|
|
528
|
+
* @private
|
|
529
|
+
*/
|
|
530
|
+
async runOraclesForSingleTurn(config, turn, turnResult, expected, context, messagePrefix = '') {
|
|
531
|
+
const oracleResults = [];
|
|
532
|
+
for (const oracleConfig of config.oracles) {
|
|
533
|
+
const oracle = context.oracleRegistry.get(oracleConfig.type);
|
|
534
|
+
if (!oracle) {
|
|
535
|
+
this.logError(`Oracle not found: ${oracleConfig.type}`);
|
|
536
|
+
continue;
|
|
537
|
+
}
|
|
538
|
+
try {
|
|
539
|
+
const oracleInput = {
|
|
540
|
+
test: context.test,
|
|
541
|
+
expectedOutput: expected,
|
|
542
|
+
actualOutput: turnResult.outputPayload,
|
|
543
|
+
targetEntity: turnResult.agentRun,
|
|
544
|
+
contextUser: context.contextUser
|
|
545
|
+
};
|
|
546
|
+
const result = await oracle.evaluate(oracleInput, oracleConfig.config || {});
|
|
547
|
+
// Add message prefix if provided (for per-turn evaluation)
|
|
548
|
+
if (messagePrefix) {
|
|
549
|
+
result.message = messagePrefix + result.message;
|
|
550
|
+
}
|
|
551
|
+
oracleResults.push(result);
|
|
552
|
+
this.log(`${messagePrefix}Oracle ${oracleConfig.type}: ${result.passed ? 'PASSED' : 'FAILED'} (Score: ${result.score})`, context.options.verbose);
|
|
553
|
+
}
|
|
554
|
+
catch (error) {
|
|
555
|
+
this.logError(`${messagePrefix}Oracle ${oracleConfig.type} failed`, error);
|
|
556
|
+
oracleResults.push({
|
|
557
|
+
oracleType: oracleConfig.type,
|
|
558
|
+
passed: false,
|
|
559
|
+
score: 0,
|
|
560
|
+
message: `${messagePrefix}Oracle execution failed: ${error.message}`
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
return oracleResults;
|
|
565
|
+
}
|
|
346
566
|
/**
|
|
347
567
|
* Calculate total cost from agent run.
|
|
348
568
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentEvalDriver.js","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;AAGH,mDAAuD;AAEvD,yDAAwD;AAExD,qDAAkD;AA4GlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,+BAAc;IAC/C;;;;;;;;;;;;;OAaG;IACI,KAAK,CAAC,OAAO,CAAC,OAA+B;QAChD,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/D,IAAI,CAAC;YACD,sBAAsB;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAkB,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAiB,OAAO,CAAC,IAAI,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAA4B,OAAO,CAAC,IAAI,CAAC,CAAC;YAErF,aAAa;YACb,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAExE,gBAAgB;YAChB,IAAI,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CACvC,KAAK,EACL,KAAK,EACL,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,IAAI,EACZ,MAAM,CAAC,gBAAgB,EACvB,OAAO,CAAC,OAAO,CAClB,CAAC;YAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEtC,4BAA4B;YAC5B,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE5D,wBAAwB;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEvD,cAAc;YACd,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CACvC,MAAM,EACN,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,OAAO,CACV,CAAC;YAEF,6BAA6B;YAC7B,qEAAqE;YACrE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;gBACxE,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAE1C,eAAe;YACf,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;YAEzC,iBAAiB;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEpD,2BAA2B;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAEtD,eAAe;YACf,MAAM,MAAM,GAA0B;gBAClC,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,MAAM;gBACN,KAAK;gBACL,aAAa;gBACb,YAAY;gBACZ,YAAY,EAAE,WAAW,GAAG,YAAY;gBACxC,WAAW;gBACX,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,QAAQ;gBACxB,YAAY;gBACZ,SAAS;gBACT,UAAU;aACb,CAAC;YAEF,IAAI,CAAC,GAAG,CACJ,+BAA+B,MAAM,YAAY,KAAK,GAAG,EACzD,OAAO,CAAC,OAAO,CAAC,OAAO,CAC1B,CAAC;YACF,OAAO,MAAM,CAAC;QAElB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,KAAc,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACa,KAAK,CAAC,QAAQ,CAAC,IAAgB;QAC3C,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC;YACD,mCAAmC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAkB,IAAI,CAAC,CAAC;YAEvD,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC;oBACR,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,sCAAsC;oBAC/C,KAAK,EAAE,uBAAuB;oBAC9B,UAAU,EAAE,qCAAqC;iBACpD,CAAC,CAAC;YACP,CAAC;YACD,+DAA+D;YAC/D,gDAAgD;YAEhD,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC;oBACR,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,iCAAiC;oBAC1C,KAAK,EAAE,uBAAuB;oBAC9B,UAAU,EAAE,8DAA8D;iBAC7E,CAAC,CAAC;YACP,CAAC;YACD,wEAAwE;YACxE,gDAAgD;YAEhD,2BAA2B;YAC3B,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAC3D,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EACnB,CAAC,CACJ,CAAC;gBACF,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;oBACrC,QAAQ,CAAC,IAAI,CAAC;wBACV,QAAQ,EAAE,eAAe;wBACzB,OAAO,EAAE,mCAAmC;wBAC5C,cAAc,EAAE,gBAAgB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;qBAC3D,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,4BAA4B;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAiB,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC;oBACR,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,4CAA4C;oBACrD,KAAK,EAAE,6BAA6B;oBACpC,UAAU,EAAE,+CAA+C;iBAC9D,CAAC,CAAC;YACP,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACR,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,oCAAqC,KAAe,CAAC,OAAO,EAAE;gBACvE,KAAK,EAAE,eAAe;gBACtB,UAAU,EAAE,kCAAkC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM;YACN,QAAQ;SACX,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,WAAqB;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAgB,WAAW,EAAE,WAAW,CAAC,CAAC;QAC5F,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,YAAY,CACtB,KAAoB,EACpB,KAAqB,EACrB,WAAqB,EACrB,IAAgB,EAChB,gBAAoC,EACpC,OAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,uBAAW,EAAE,CAAC;QAEjC,8BAA8B;QAC9B,MAAM,oBAAoB,GAAkB,EAAE,CAAC;QAE/C,iCAAiC;QACjC,IAAI,KAAK,CAAC,mBAAmB,EAAE,aAAa,EAAE,CAAC;YAC3C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;gBACxD,oBAAoB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;iBACR,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,oBAAoB,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,CAAC,WAAW;SACd,CAAC,CAAC;QAElB,6BAA6B;QAC7B,MAAM,MAAM,GAAG;YACX,KAAK,EAAE,KAAY,EAAE,2CAA2C;YAChE,oBAAoB;YACpB,WAAW;YACX,QAAQ,EAAE,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC7C,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,aAAa;aAC/C,CAAC,CAAC,CAAC,SAAS;SAChB,CAAC;QAEF,8FAA8F;QAC9F,2FAA2F;QAC3F,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI;YAC7C,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE;YACtC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,0CAA0C;QAC1C,IAAI,gBAAgB,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACpD,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CACnF,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjC,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE;oBAClC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,eAAe,EAAE,IAAI;oBACrB,gBAAgB,EAAE,gBAAgB;oBAClC,SAAS,EAAE,OAAO,CAAC,EAAE;iBACxB,CAAC;gBACF,cAAc;aACjB,CAAC,CAAC;YAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE;gBAC1D,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,gBAAgB;gBAClC,SAAS,EAAE,OAAO,CAAC,EAAE;aACxB,CAAC,CAAC;YAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACxD,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,qBAAqB,CAC/B,OAAsB,EACtB,QAA0B;QAE1B,0CAA0C;QAC1C,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,oCAAoC,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACnG,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,QAA0B;QACjD,OAAO;YACH,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;SAC1C,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,UAAU,CACpB,MAAuB,EACvB,KAAqB,EACrB,QAAmC,EACnC,YAAqC,EACrC,QAA0B,EAC1B,OAA+B;QAE/B,MAAM,aAAa,GAAmB,EAAE,CAAC;QAEzC,4EAA4E;QAC5E,8FAA8F;QAC9F,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/E,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,CAAC,qBAAqB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxD,SAAS;YACb,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,WAAW,GAAgB;oBAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,cAAc,EAAE,QAAQ;oBACxB,YAAY;oBACZ,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;iBACnC,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC7E,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE3B,IAAI,CAAC,GAAG,CACJ,UAAU,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,YAAY,MAAM,CAAC,KAAK,GAAG,EAC9F,OAAO,CAAC,OAAO,CAAC,OAAO,CAC1B,CAAC;YAEN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,UAAU,YAAY,CAAC,IAAI,SAAS,EAAE,KAAc,CAAC,CAAC;gBACpE,aAAa,CAAC,IAAI,CAAC;oBACf,UAAU,EAAE,YAAY,CAAC,IAAI;oBAC7B,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,4BAA6B,KAAe,CAAC,OAAO,EAAE;iBAClE,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,QAA0B;QACjD,OAAO,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,QAA0B;QAClD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACb,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,OAAO,GAAG,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ,CAAA;AA3YY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,sBAAa,EAAC,+BAAc,EAAE,iBAAiB,CAAC;GACpC,eAAe,CA2Y3B"}
|
|
1
|
+
{"version":3,"file":"AgentEvalDriver.js","sourceRoot":"","sources":["../../src/drivers/AgentEvalDriver.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Core type definitions for the Testing Engine
|
|
3
3
|
*/
|
|
4
4
|
import { UserInfo } from '@memberjunction/core';
|
|
5
|
-
import { TestEntity, TestRunEntity } from '@memberjunction/core-entities';
|
|
5
|
+
import { TestEntity, TestRunEntity, AIAgentRunEntity } from '@memberjunction/core-entities';
|
|
6
6
|
import { IOracle } from './oracles/IOracle';
|
|
7
7
|
/**
|
|
8
8
|
* Progress callback for test execution
|
|
@@ -240,6 +240,39 @@ export interface DriverExecutionContext {
|
|
|
240
240
|
*/
|
|
241
241
|
oracleRegistry: Map<string, IOracle>;
|
|
242
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Result from a single turn in multi-turn test
|
|
245
|
+
*/
|
|
246
|
+
export interface TurnResult {
|
|
247
|
+
/**
|
|
248
|
+
* Turn number (1-indexed)
|
|
249
|
+
*/
|
|
250
|
+
turnNumber: number;
|
|
251
|
+
/**
|
|
252
|
+
* Agent run for this turn
|
|
253
|
+
*/
|
|
254
|
+
agentRun: AIAgentRunEntity;
|
|
255
|
+
/**
|
|
256
|
+
* Input payload for this turn
|
|
257
|
+
*/
|
|
258
|
+
inputPayload?: Record<string, unknown>;
|
|
259
|
+
/**
|
|
260
|
+
* Output payload from this turn
|
|
261
|
+
*/
|
|
262
|
+
outputPayload: Record<string, unknown>;
|
|
263
|
+
/**
|
|
264
|
+
* Oracle results for this turn (if per-turn evaluation)
|
|
265
|
+
*/
|
|
266
|
+
oracleResults?: OracleResult[];
|
|
267
|
+
/**
|
|
268
|
+
* Duration in milliseconds
|
|
269
|
+
*/
|
|
270
|
+
durationMs?: number;
|
|
271
|
+
/**
|
|
272
|
+
* Cost in USD
|
|
273
|
+
*/
|
|
274
|
+
cost?: number;
|
|
275
|
+
}
|
|
243
276
|
/**
|
|
244
277
|
* Result from driver execution
|
|
245
278
|
*/
|
|
@@ -249,7 +282,7 @@ export interface DriverExecutionResult {
|
|
|
249
282
|
*/
|
|
250
283
|
targetType: string;
|
|
251
284
|
/**
|
|
252
|
-
* Target entity ID
|
|
285
|
+
* Target entity ID (final AgentRun ID for single/multi-turn)
|
|
253
286
|
*/
|
|
254
287
|
targetLogId: string;
|
|
255
288
|
/**
|
|
@@ -300,6 +333,18 @@ export interface DriverExecutionResult {
|
|
|
300
333
|
* Error message if status is Error
|
|
301
334
|
*/
|
|
302
335
|
errorMessage?: string;
|
|
336
|
+
/**
|
|
337
|
+
* Multi-turn specific: Total number of turns
|
|
338
|
+
*/
|
|
339
|
+
totalTurns?: number;
|
|
340
|
+
/**
|
|
341
|
+
* Multi-turn specific: Results for each turn
|
|
342
|
+
*/
|
|
343
|
+
turnResults?: TurnResult[];
|
|
344
|
+
/**
|
|
345
|
+
* Multi-turn specific: All AgentRun IDs
|
|
346
|
+
*/
|
|
347
|
+
allAgentRunIds?: string[];
|
|
303
348
|
}
|
|
304
349
|
/**
|
|
305
350
|
* Oracle evaluation input
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,UAAU,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/testing-engine",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.126.1",
|
|
4
4
|
"description": "MemberJunction Testing Framework Engine - Core test execution and evaluation engine supporting multiple test types",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
"@types/debug": "^4.1.12"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@memberjunction/ai": "2.
|
|
24
|
-
"@memberjunction/ai-agents": "2.
|
|
25
|
-
"@memberjunction/ai-core-plus": "2.
|
|
26
|
-
"@memberjunction/ai-prompts": "2.
|
|
27
|
-
"@memberjunction/aiengine": "2.
|
|
28
|
-
"@memberjunction/core": "2.
|
|
29
|
-
"@memberjunction/core-entities": "2.
|
|
30
|
-
"@memberjunction/global": "2.
|
|
31
|
-
"@memberjunction/testing-engine-base": "2.
|
|
23
|
+
"@memberjunction/ai": "2.126.1",
|
|
24
|
+
"@memberjunction/ai-agents": "2.126.1",
|
|
25
|
+
"@memberjunction/ai-core-plus": "2.126.1",
|
|
26
|
+
"@memberjunction/ai-prompts": "2.126.1",
|
|
27
|
+
"@memberjunction/aiengine": "2.126.1",
|
|
28
|
+
"@memberjunction/core": "2.126.1",
|
|
29
|
+
"@memberjunction/core-entities": "2.126.1",
|
|
30
|
+
"@memberjunction/global": "2.126.1",
|
|
31
|
+
"@memberjunction/testing-engine-base": "2.126.1",
|
|
32
32
|
"debug": "^4.4.0",
|
|
33
33
|
"rxjs": "^7.8.1",
|
|
34
34
|
"zod": "^3.23.8"
|