Skip to Content
リファレンスワークフローWorkflow

Workflowクラス

Workflowクラスは、条件分岐やデータ検証を含む複雑な操作のシーケンスのためのステートマシンを作成できるようにします。

使用方法

const myWorkflow = createWorkflow({ id: "my-workflow", inputSchema: z.object({ startValue: z.string(), }), outputSchema: z.object({ result: z.string(), }), steps: [step1, step2, step3], // Declare steps used in this workflow }) .then(step1) .then(step2) .then(step3) .commit(); const mastra = new Mastra({ workflows: { myWorkflow, }, }); const run = await mastra.getWorkflow("myWorkflow").createRunAsync();

API Reference

Constructor

id:

string
ワークフローの一意識別子

inputSchema:

z.ZodType<any>
ワークフローの入力構造を定義するZodスキーマ

outputSchema:

z.ZodType<any>
ワークフローの出力構造を定義するZodスキーマ

steps:

Step[]
ワークフローに含めるステップの配列

Core Methods

then()

ワークフローにステップを順次追加します。チェーンのためにワークフローインスタンスを返します。

parallel()

複数のステップを同時に実行します。ステップの配列を受け取り、ワークフローインスタンスを返します。

branch()

条件分岐ロジックを作成します。条件関数と条件が満たされた時に実行するステップを含むタプルの配列を受け取ります。

dowhile()

条件が真である間、ステップを繰り返し実行するループを作成します。条件は各実行後にチェックされます。

dountil()

条件が真になるまでステップを繰り返し実行するループを作成します。条件は各実行後にチェックされます。

foreach()

配列を反復処理し、各要素に対してステップを実行します。オプションの並行性設定を受け入れます。

map()

マッピング設定オブジェクトまたはマッピング関数を使用して、ステップ間でデータをマップします。ステップ間でデータを変換するのに便利です。

commit()

ワークフロー設定を検証し、確定します。すべてのステップを追加した後に呼び出す必要があります。

createRun()

非推奨。新しいワークフロー実行インスタンスを作成し、特定の入力データでワークフローを実行できるようにします。オプションの実行IDを受け入れます。

createRunAsync()

新しいワークフロー実行インスタンスを作成し、特定の入力データでワークフローを実行できるようにします。オプションの実行IDを受け入れます。保留中のワークフロー実行スナップショットをストレージに保存します。

execute()

提供された入力データでワークフローを実行します。ワークフローの中断、再開を処理し、実行中にイベントを発行します。

ワークフローのステータス

ワークフローのステータスは、現在の実行状態を示します。考えられる値は以下の通りです。

success:

string
すべてのステップが正常に実行され、有効な結果が出力されました

failed:

string
ワークフローの実行中にエラーが発生し、エラーの詳細が利用可能です

suspended:

string
ワークフローの実行が一時停止されており、再開を待っています。停止されたステップの情報が含まれます

ステップ間でのコンテキストの受け渡し

ステップは、コンテキストオブジェクトを通じてワークフロー内の前のステップからのデータにアクセスできます。各ステップは、実行されたすべての前のステップから蓄積されたコンテキストを受け取ります。

workflow .then({ id: "getData", execute: async ({ inputData }) => { return { data: { id: "123", value: "example" }, }; }, }) .then({ id: "processData", execute: async ({ inputData }) => { // Access data from previous step through context.steps const previousData = inputData.data; // Process previousData.id and previousData.value }, });

関連