TaskSignalProvider
將內置任務 Tool(task_write、task_update、task_complete、task_check)和 TaskStateProcessor 組合在單一 Agent 註冊中。使用此 Provider,即可為 Agent 加入結構化、持久的任務清單,而無需分別連接 Tool 和 processor。
擴充 SignalProvider。任務清單儲存於 thread 範圍的 tasks 儲存空間 domain(唯一真實來源),並由 processor 投射至 Agent 的 state-signal lane,因此即使 observational memory 被截短,任務清單仍會保留,而且不會令 prompt cache 失效。
使用範例使用範例 的直接連結
在具備 Memory 和 Mastra storage 的 Agent 上註冊 Provider:
import { Agent } from '@mastra/core/agent'
import { TaskSignalProvider } from '@mastra/core/signals'
const agent = new Agent({
id: 'coder',
name: 'coder',
instructions: '...',
model,
memory,
signals: [new TaskSignalProvider()],
})
Agent 會自動將四個任務 Tool 合併至其 toolset,並在 input processor chain 上註冊 processor,無需額外連接。
任務追蹤需要由 memory 支援的 thread(threadId + resourceId)。沒有 memory 時,任務 Tool 不會執行操作,並會傳回結果說明任務追蹤需要 Agent memory。tasks 儲存空間 domain 預設連接至記憶體內儲存空間,因此無需配置儲存空間後端亦可使用任務追蹤。
建構函數參數建構函數參數 的直接連結
TaskSignalProvider 不接受任何建構函數參數。
屬性屬性 的直接連結
id:
方法方法 的直接連結
Agent 整合Agent 整合 的直接連結
當 Provider 傳遞至 signals 時,Agent 會自動呼叫這些方法。一般情況下,你不會直接呼叫它們。
getTools()gettools 的直接連結
傳回四個以 Tool ID(task_write、task_update、task_complete、task_check)作為鍵的任務 Tool。Agent 會將這些 Tool 合併至其 toolset。
const tools = new TaskSignalProvider().getTools()
// { task_write, task_update, task_complete, task_check }
傳回:Record<string, Tool>
getInputProcessors()getinputprocessors 的直接連結
傳回 Provider 的 TaskStateProcessor 實例。Agent 會在 input processor chain 上註冊該實例,並傳遞 Mastra 實例,讓 processor 能夠解析 tasks store。
const [processor] = new TaskSignalProvider().getInputProcessors()
// processor instanceof TaskStateProcessor
傳回:InputProcessorOrWorkflow[]