TaskSignalProvider
組み込みの Task Tool(task_write、task_update、task_complete、task_check)と TaskStateProcessor を 1 回の Agent 登録にまとめます。Tool と Processor を個別に接続せずに、構造化された Durable Task List を Agent に追加するために使用します。
SignalProvider を拡張します。Task List は Thread スコープの tasks ストレージドメイン(信頼できる唯一の情報源)に保存され、Processor によって Agent の State Signal Lane に投影されます。そのため、Prompt Cache を無効にすることなく、Observational Memory の切り詰め後も保持されます。
使用例使用例への直接リンク
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 は 4 つの Task Tool を Toolset に自動的に統合し、Processor を Input Processor Chain に登録します。それ以外の接続は必要ありません。
Task Tracking には、Memory を基盤とする Thread(threadId + resourceId)が必要です。Memory がない場合、Task Tool は何も実行せず、Task Tracking には Agent Memory が必要であることを説明する結果を返します。tasks ストレージドメインはデフォルトでインメモリに接続されるため、ストレージバックエンドを設定しなくても Task Tracking は動作します。
コンストラクターのパラメーターコンストラクターのパラメーターへの直接リンク
TaskSignalProvider はコンストラクター引数を取りません。
プロパティプロパティへの直接リンク
id:
メソッドメソッドへの直接リンク
Agent との統合Agent との統合への直接リンク
これらのメソッドは、Provider が signals に渡されると Agent によって自動的に呼び出されます。通常、直接呼び出す必要はありません。
getTools()gettoolsへの直接リンク
4 つの Task Tool を Tool ID(task_write、task_update、task_complete、task_check)をキーとして返します。Agent はこれらを 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[]