> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/llms.txt # TaskSignalProvider 將內置任務 Tool(`task_write`、`task_update`、`task_complete`、`task_check`)和 `TaskStateProcessor` 組合在單一 Agent 註冊中。使用此 Provider,即可為 Agent 加入結構化、持久的任務清單,而無需分別連接 Tool 和 processor。 擴充 [`SignalProvider`](https://mastra.zisheng.pro/zh-HK/reference/signals/signal-provider)。任務清單儲存於 thread 範圍的 `tasks` 儲存空間 domain(唯一真實來源),並由 processor 投射至 Agent 的 state-signal lane,因此即使 observational memory 被截短,任務清單仍會保留,而且不會令 prompt cache 失效。 ## 使用範例 在具備 `Memory` 和 Mastra `storage` 的 Agent 上註冊 Provider: ```typescript 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** (`'task-signals'`): Provider 實例的穩定識別碼。 ## 方法 ### Agent 整合 當 Provider 傳遞至 `signals` 時,Agent 會自動呼叫這些方法。一般情況下,你不會直接呼叫它們。 #### `getTools()` 傳回四個以 Tool ID(`task_write`、`task_update`、`task_complete`、`task_check`)作為鍵的任務 Tool。Agent 會將這些 Tool 合併至其 toolset。 ```typescript const tools = new TaskSignalProvider().getTools() // { task_write, task_update, task_complete, task_check } ``` 傳回:`Record` #### `getInputProcessors()` 傳回 Provider 的 `TaskStateProcessor` 實例。Agent 會在 input processor chain 上註冊該實例,並傳遞 Mastra 實例,讓 processor 能夠解析 `tasks` store。 ```typescript const [processor] = new TaskSignalProvider().getInputProcessors() // processor instanceof TaskStateProcessor ``` 傳回:`InputProcessorOrWorkflow[]`