跳至主要內容

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、無效成員及循環依賴;如果登錄或持久保存途中失敗,記憶體內的登錄會還原至先前狀態。
  • 最後才會寫入儲存空間。如果在處理整組定義期間發生儲存層級故障,部分資料列可能已寫入,但登錄仍會回復原狀,而這些孤立資料列在下次啟動前不會生效。