跳至主要內容

Mastra.addDynamicWorkflow()

beta

動態 Workflow 目前處於 beta 階段。在 API 穩定之前,可能會出現不伴隨主要版本升級的破壞性變更。

.addDynamicWorkflow() 方法會驗證動態 Workflow 定義,並將其作為即時 Workflow 註冊至實例,同時透過 workflowDefinitions 儲存域持久保存。註冊後,此 Workflow 可像任何其他 Workflow 一樣,透過 getWorkflow() 執行。

如需完整設定範例,請參閱動態 Workflow;如需了解可接受的欄位及圖表項目,請參閱動態 Workflow 定義參考

使用範例
使用範例 的直接連結

await mastra.addDynamicWorkflow({
id: 'greeting-workflow',
description: 'Returns a greeting for the supplied name',
inputSchema: {
type: 'object',
properties: { name: { type: 'string' } },
required: ['name'],
},
outputSchema: {
type: 'object',
properties: { message: { type: 'string' } },
required: ['message'],
},
graph: [
{
type: 'mapping',
id: 'create-greeting',
mapConfig: JSON.stringify({
message: { template: 'Hello, ${initData.name}!' },
}),
},
],
})

const run = await mastra.getWorkflow('greeting-workflow').createRun()
const result = await run.start({ inputData: { name: 'Ada' } })

參數
參數 的直接連結

def:

DynamicWorkflowGraph
Workflow 定義:id、可選的 description 及 metadata、JSON Schema 輸入/輸出 schema、可選的狀態及請求內容 schema,以及步驟圖表。

傳回值
傳回值 的直接連結

一個 Promise,在定義完成驗證、註冊及持久保存後 resolve。

行為
行為 的直接連結

  • 在修改任何內容之前,會完整驗證定義(結構、引用及 schema 流程)。圖表所引用的 Agent、Tool 及 Workflow 必須已在實例上註冊。
  • 加入具有現有 ID 的定義時,會同時取代已儲存的定義及即時註冊。執行中的 run 會保留啟動時所用的圖表。
  • 如果沒有支援 workflowDefinitions 儲存域的儲存配接器,Workflow 仍會經過驗證並在記憶體中註冊,但重新啟動後定義便會遺失。
  • 如要同時加入根 Workflow 及其巢狀包含的輔助 Workflow,請使用 addDynamicWorkflows()