入力データマッピング
入力データマッピングにより、次のステップの入力に対する値の明示的なマッピングが可能になります。これらの値は以下の複数のソースから取得できます:
- 前のステップの出力
- ランタイムコンテキスト
- 定数値
- ワークフローの初期入力
Map
この例では、step1
からのoutput
がstep2
に必要なinputSchema
に合うように変換されます。step1
からの値は、.map
関数のinputData
パラメータを使用してアクセスできます。
src/mastra/workflows/test-workflow.ts
const step1 = createStep({...});
const step2 = createStep({...});
export const testWorkflow = createWorkflow({
id: "test-workflow",
description: 'Test workflow',
inputSchema: z.object({
input: z.number()
}),
outputSchema: z.object({
output: z.string()
})
})
.then(step1)
.map(({ inputData }) => {
const { value } = inputData;
return {
output: `${value}`
};
})
.then(step2)
.commit();
inputData
inputData
を使用して前のステップの完全な出力にアクセスします:
.map(({ inputData }) => {
const { value} = inputData;
...
})
getStepResult
getStepResult
を使用して、ステップのインスタンスを参照することで特定のステップの完全な出力にアクセスします:
.then(step1)
.map(({ getStepResult }) => {
console.log(getStepResult(step1));
...
})
getInitData
getInitData
を使用してワークフローに提供された初期入力データにアクセスします:
.then(step1)
.map(({ getInitData }) => {
console.log(getInitData());
...
})
出力の名前変更
ステップ出力
.map()
でオブジェクト構文を使用してステップ出力の名前を変更できます。以下の例では、step1
のvalue
出力がdetails
に名前変更されています:
.then(step)
.map({
details: {
step: step,
path: "value"
}
})
ワークフロー出力
参照合成を使用してワークフロー出力の名前を変更できます。これは、ワークフローインスタンスをinitData
として渡すことを含みます。
export const testWorkflow = createWorkflow({
id: "test-workflow",
description: 'Test workflow',
inputSchema: z.object({
input: z.string()
}),
outputSchema: z.object({
output: z.string()
})
});
testWorkflow
.then(cityCoordinatesStep)
.map({
details: {
initData: testWorkflow,
path: "value"
}
})