メインコンテンツへ移動

Mastra.addDynamicWorkflows()

beta

動的 Workflow はベータ版です。API が安定するまでは、メジャーバージョンを上げずに破壊的変更が加わる場合があります。

.addDynamicWorkflows() メソッドは、相互に参照できる動的 Workflow 定義のセットを追加します。一般的な用途は、ルート Workflow と、まだ定義されていない内部の補助 Workflow をまとめて追加することです。

最初にセット全体が検証されます。その後、依存関係順に各メンバーが登録されるため、補助 Workflow は、それを内包する Workflow より先に必ず登録されます。

単一の定義を追加する場合は addDynamicWorkflow() を使用します。

使用例
使用例への直接リンク

await mastra.addDynamicWorkflows([
helperDefinition, // nested by the root — order in the array doesn't matter
rootDefinition, // graph contains { type: 'workflow', workflowId: helperDefinition.id }
])

パラメータ
パラメータへの直接リンク

defs:

readonly DynamicWorkflowGraph[]
追加する Workflow 定義。ネストされた Workflow の参照先には、実行中のレジストリまたは同じセット内の別メンバーを指定できます。

戻り値
戻り値への直接リンク

すべてのメンバーの検証、登録、永続化が完了すると解決される Promise。

動作
動作への直接リンク

  • 参照は、インスタンスのレジストリとセット内の ID を合わせた範囲から解決されます。そのため、ルート Workflow は同じ呼び出しで追加された補助 Workflow を内包できます。登録順は配列の順序ではなく、依存関係グラフから決まります。
  • 拒否されたセットは何も登録しません。ID の重複、無効なメンバー、依存関係の循環は、状態を変更する前に検出されます。登録または永続化が途中で失敗した場合、メモリ内のレジストリは以前の状態に戻されます。
  • Storage への書き込みは最後に行われます。セットの途中で Storage レベルの障害が起きると、一部の行が書き込まれたままになる場合があります。ただし、レジストリはロールバックされ、孤立した行は次回起動まで使用されません。