dataset.startExperiment()
追加バージョン: @mastra/core@1.4.0
データセットで Experiment を実行し、完了を待ちます。任意のスコアリングを使用して、すべての項目を対象(Agent、Workflow、Scorer)に対して実行します。
使用例使用例への直接リンク
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
各結果を評価する Scorer。
MastraScorer インスタンスまたは登録済み Scorer ID の単純な配列のほか、runEvals と同じ分類済み設定形式(AgentScorerConfig / WorkflowScorerConfig)を指定できます。Trajectory Scorer(type: "trajectory")は、指定形式にかかわらず、事前抽出された Trajectory を出力として自動的に受け取ります。Workflow の場合は scorers: { steps: { stepId: [...] } } で Step ごとの Scorer を渡し、各 Step の出力に対して実行できます。その結果には元の stepId が含まれ、targetScope: "span" が維持されます(runEvals と同じ動作)。name?:
string
表示名 experiment.
description?:
string
説明 experiment.
metadata?:
Record<string, unknown>
Experiment の任意のメタデータ。
version?:
number
特定のデータセットバージョンに固定します。デフォルトは最新バージョンです。
maxConcurrency?:
number
項目を同時実行する最大数。デフォルトは
5 です。signal?:
AbortSignal
Experiment をキャンセルするための AbortSignal。
itemTimeout?:
number
項目ごとの実行タイムアウト(ミリ秒)。
maxRetries?:
number
失敗時の項目ごとの最大再試行回数。デフォルトは
0(再試行なし)です。Abort エラーは再試行しません。unmockedToolPolicy?:
'allow' | 'deny'
= 'allow'
宣言されていない Agent Tool の呼び出しを制御します。
allow は実際に実行します。deny は実行前に TOOL_MOCK_NOT_DECLARED で項目を失敗させます。項目単位の値は、この Experiment のデフォルト値を上書きします。persistence?:
ExperimentPersistencePolicy
この実行で Experiment レコードとスコアレコードを書き込むかを制御します。対象と Scorer は引き続き実行され、結果は返される概要で確認できます。
ExperimentPersistencePolicy
experiments?:
'default' | 'none'
none に設定すると、Experiment の作成、項目結果、進行状況、最終ステータスの書き込みを省略します。scores?:
'default' | 'none'
none に設定すると、Scorer を実行したままスコアの書き込みを省略します。戻り値戻り値への直接リンク
result:
Promise<ExperimentSummary>
完了した Experiment の概要。
ExperimentSummary
experimentId:
string
一意な ID: experiment.
status:
'pending' | 'running' | 'completed' | 'failed'
Experiment の最終ステータス。
totalItems:
number
データセット内の項目総数。
succeededCount:
number
成功した項目数。
failedCount:
number
失敗した項目数。
skippedCount:
number
スキップされた項目数(Abort による場合など)。
completedWithErrors:
boolean
実行は完了したものの一部の項目が失敗した場合は
true。startedAt:
Date
Experiment が開始された日時。
completedAt:
Date
Experiment が完了した日時。
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[]
この項目に対するすべての Scorer の結果。
ScorerResult
scorerId:
string
Scorer の ID。
scorerName:
string
表示名 scorer.
score:
number | null
算出されたスコア。Scorer が失敗した場合は
null。reason:
string | null
スコアの理由または説明。
error:
string | null
Scorer が失敗した場合のエラーメッセージ。