데이터세트.시작실험()
추가된 항목: @mastra/core@1.4.0
데이터세트에 대한 실험을 실행하고 완료될 때까지 기다립니다. 선택적 채점을 통해 대상(Agent, Workflow 또는 채점자)에 대해 모든 항목을 실행합니다.
사용예사용예에 대한 직접 링크
import { Mastra } from '@mastra/core'
const mastra = new Mastra({/* storage config */})
const dataset = await mastra.datasets.get({ id: 'dataset-id' })
// Run against a registered agent with a flat scorer list
const summary = await dataset.startExperiment({
targetType: 'agent',
targetId: 'my-agent',
scorers: ['accuracy', 'relevancy'],
maxConcurrency: 10,
})
// Or pass the same categorised shape accepted by runEvals
const summary2 = await dataset.startExperiment({
targetType: 'agent',
targetId: 'my-agent',
scorers: {
agent: [accuracyScorer],
trajectory: [toolOrderScorer],
},
})
// For workflow targets, score individual steps with their own scorers
const summary3 = await dataset.startExperiment({
targetType: 'workflow',
targetId: 'my-workflow',
scorers: {
workflow: [overallScorer],
steps: {
'fetch-data': [fetchScorer],
transform: [transformScorer],
},
trajectory: [executionPathScorer],
},
})
console.log(`${summary.succeededCount}/${summary.totalItems} succeeded`)
console.log(`Status: ${summary.status}`)
console.log(`${summary2.succeededCount}/${summary2.totalItems} succeeded`)
console.log(`Status: ${summary2.status}`)
매개변수매개변수에 대한 직접 링크
targetType?:
'agent' | 'workflow' | 'scorer'
항목을 실행할 등록된 대상의 유형입니다.
targetId와 함께 사용하세요.targetId?:
string
등록된 대상의 ID입니다.
targetType과 함께 사용하세요.scorers?:
(MastraScorer | string)[] | AgentScorerConfig | WorkflowScorerConfig
각 결과를 평가할 채점기입니다.
MastraScorer 인스턴스 또는 등록된 채점기 ID의 단순 배열이나, runEvals에서 사용하는 것과 동일한 분류형 구성 구조(AgentScorerConfig / WorkflowScorerConfig)를 받습니다. 궤적 채점기(type: "trajectory")는 어떤 형식을 사용하든 미리 추출된 Trajectory를 출력으로 자동으로 받습니다. Workflow 대상의 경우 단계별 채점기를 scorers: { steps: { stepId: [...] } }를 통해 전달하여 각 단계의 출력을 대상으로 실행할 수 있습니다. 결과에는 원본 stepId가 포함되고 targetScope: "span"이 유지됩니다(runEvals와 동일).name?:
string
실험의 표시 이름입니다.
description?:
string
실험에 대한 설명입니다.
metadata?:
Record<string, unknown>
실험을 위한 임의의 메타데이터입니다.
version?:
number
특정 데이터 세트 버전으로 고정합니다. 기본값은 최신 버전입니다.
maxConcurrency?:
number
동시에 실행할 수 있는 최대 항목 수입니다. 기본값은
5입니다.signal?:
AbortSignal
실험을 취소하기 위한 AbortSignal입니다.
itemTimeout?:
number
항목별 실행 제한 시간(밀리초)입니다.
maxRetries?:
number
실패 시 항목당 최대 재시도 횟수입니다. 기본값은
0(재시도 없음)입니다. 중단 오류는 재시도하지 않습니다.unmockedToolPolicy?:
'allow' | 'deny'
= 'allow'
선언되지 않은 Agent Tool 호출을 제어합니다.
allow는 호출을 실제로 실행합니다. deny는 실행 전에 TOOL_MOCK_NOT_DECLARED와 함께 항목을 실패 처리합니다. 항목 수준의 값은 이 실험 기본값보다 우선합니다.persistence?:
ExperimentPersistencePolicy
이 실행에서 실험 레코드와 점수 레코드를 기록할지 제어합니다. 대상과 채점기는 계속 실행되며, 결과는 반환되는 요약에서 확인할 수 있습니다.
ExperimentPersistencePolicy
experiments?:
'default' | 'none'
실험 생성, 항목 결과, 진행 상황, 최종 상태 기록을 건너뛰려면
none으로 설정합니다.scores?:
'default' | 'none'
채점기는 계속 실행하되 점수 기록을 건너뛰려면
none으로 설정합니다.보고보고에 대한 직접 링크
result:
Promise<ExperimentSummary>
완료된 실험의 요약입니다.
ExperimentSummary
experimentId:
string
실험의 고유 ID입니다.
status:
'pending' | 'running' | 'completed' | 'failed'
실험의 최종 상태입니다.
totalItems:
number
데이터 세트의 전체 항목 수입니다.
succeededCount:
number
성공한 항목 수입니다.
failedCount:
number
실패한 항목 수입니다.
skippedCount:
number
건너뛴 항목 수입니다(예: 중단으로 인한 경우).
completedWithErrors:
boolean
실행은 완료되었지만 일부 항목이 실패한 경우
true입니다.startedAt:
Date
실험이 시작된 시점입니다.
completedAt:
Date
실험이 완료된 시점입니다.
results:
ItemWithScores[]
점수가 포함된 모든 항목 결과입니다.
ItemWithScores
itemId:
string
데이터 세트 항목의 ID입니다.
itemVersion:
number
실행 당시 항목의 데이터 세트 버전입니다.
input:
unknown
대상에 전달된 입력 데이터입니다.
output:
unknown | null
대상에서 생성된 출력이며, 실패한 경우
null입니다.groundTruth:
unknown | null
데이터 세트 항목의 예상 출력입니다.
error:
{ message: string; stack?: string; code?: string } | null
실행에 실패한 경우의 구조화된 오류입니다.
startedAt:
Date
항목 실행이 시작된 시점입니다.
completedAt:
Date
항목 실행이 완료된 시점입니다.
retryCount:
number
재시도 횟수입니다.
scores:
ScorerResult[]
이 항목에 대한 모든 채점기의 결과입니다.
ScorerResult
scorerId:
string
채점기의 ID입니다.
scorerName:
string
채점기의 표시 이름입니다.
score:
number | null
계산된 점수이며, 채점기가 실패한 경우
null입니다.reason:
string | null
점수의 근거/설명입니다.
error:
string | null
채점기가 실패한 경우의 오류 메시지입니다.