> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # TaskSignalProvider 通过单个 Agent 注册捆绑内置任务 Tool(`task_write`、`task_update`、`task_complete`、`task_check`)和 `TaskStateProcessor`。使用它可为 Agent 添加结构化、持久的任务列表,无需分别连接 Tool 和处理器。 它扩展了 [`SignalProvider`](https://mastra.zisheng.pro/reference/signals/signal-provider)。任务列表存储在以 thread 为作用域的 `tasks` storage domain 中(作为事实来源),并由处理器投影到 Agent 的状态 Signal 通道,因此它能在观察性 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 合并到其 Tool 集中,并在其 input-processor chain 上注册处理器。无需其他连接操作。 任务跟踪需要由 memory 支持的 thread(`threadId` + `resourceId`)。没有 memory 时,任务 Tool 不执行任何操作,并返回说明任务跟踪需要 Agent memory 的结果。`tasks` storage domain 默认在内存中连接,因此无需配置 storage 后端即可使用任务跟踪。 ## 构造函数参数 `TaskSignalProvider` 不接受构造函数参数。 ## 属性 **id** (`'task-signals'`): Provider 实例的稳定标识符。 ## 方法 ### Agent 集成 当 Provider 传入 `signals` 时,Agent 会自动调用这些方法。通常无需直接调用它们。 #### `getTools()` 返回以 Tool id(`task_write`、`task_update`、`task_complete`、`task_check`)为键的四个任务 Tool。Agent 会将它们合并到其 Tool 集中。 ```typescript const tools = new TaskSignalProvider().getTools() // { task_write, task_update, task_complete, task_check } ``` 返回:`Record` #### `getInputProcessors()` 返回 Provider 的 `TaskStateProcessor` 实例。Agent 会将其注册到 input-processor chain 上,该链会传递 Mastra 实例,以便处理器解析 `tasks` store。 ```typescript const [processor] = new TaskSignalProvider().getInputProcessors() // processor instanceof TaskStateProcessor ``` 返回:`InputProcessorOrWorkflow[]`