TaskSignalProvider
透過單一 Agent 註冊,組合內建任務 Tool(task_write、task_update、task_complete、task_check)與 TaskStateProcessor。使用它可為 Agent 新增結構化、持久的任務清單,而不必分別接線 Tool 與 processor。
擴充 SignalProvider。任務清單儲存在 thread 範圍的 tasks Storage 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 合併至 Tool 集合,並在輸入 processor chain 上註冊 processor。不需要其他接線。
任務追蹤需要由 Memory 支援的 thread(threadId + resourceId)。沒有 Memory 時,任務 Tool 不會執行任何操作,而是傳回說明任務追蹤需要 Agent Memory 的結果。tasks Storage domain 預設在記憶體內接線,因此不必設定 Storage 後端也能使用任務追蹤。
Constructor 參數「Constructor 參數」的直接連結
TaskSignalProvider 不接受 constructor 引數。
屬性「屬性」的直接連結
id:
方法「方法」的直接連結
Agent 整合「Agent 整合」的直接連結
將 Provider 傳給 signals 時,Agent 會自動呼叫這些方法。通常不需直接呼叫。
getTools()「gettools」的直接連結
傳回以 Tool id(task_write、task_update、task_complete、task_check)作為 key 的四個任務 Tool。Agent 會將它們合併至 Tool 集合。
const tools = new TaskSignalProvider().getTools()
// { task_write, task_update, task_complete, task_check }
傳回:Record<string, Tool>
getInputProcessors()「getinputprocessors」的直接連結
傳回 Provider 的 TaskStateProcessor instance。Agent 會將它註冊到輸入 processor chain,並傳遞 Mastra instance,讓 processor 能解析 tasks store。
const [processor] = new TaskSignalProvider().getInputProcessors()
// processor instanceof TaskStateProcessor
傳回:InputProcessorOrWorkflow[]