跳至主要內容

Mastra.addDynamicWorkflows()

beta

動態 Workflow 目前處於 beta 階段。在 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 參照可從即時 registry 或同組的其他成員中解析。

傳回值
「傳回值」的直接連結

所有成員完成驗證、註冊和持久儲存後,此 Promise 便會 resolve。

行為
「行為」的直接連結

  • 參照會從執行個體 registry 與該組自身 ID 的聯集中解析,因此根 Workflow 可以巢狀同一次呼叫中引入的輔助 Workflow。註冊順序由相依 graph 決定,而不是陣列順序。
  • 被拒絕的定義組不會註冊任何內容。重複 ID、無效成員和相依循環都會在變更任何內容前被偵測出來;如果註冊或持久儲存途中失敗,記憶體 registry 會復原到先前的狀態。
  • Storage 寫入最後執行。處理中途發生 Storage 層故障時,可能已有部分資料列寫入,但 registry 仍會復原,這些孤立資料列在下次啟動前不會生效。