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