Skip to Content
ドキュメントワークフローワークフローを使った入力データマッピング | Mastra ドキュメント

入力データマッピング

入力データマッピングにより、次のステップの入力に対する値の明示的なマッピングが可能になります。これらの値は以下の複数のソースから取得できます:

  • 前のステップの出力
  • ランタイムコンテキスト
  • 定数値
  • ワークフローの初期入力

Map

この例では、step1からのoutputstep2に必要な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()でオブジェクト構文を使用してステップ出力の名前を変更できます。以下の例では、step1value出力が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" } })