Tools de tâches
Quatre Tools intégrés et indépendants de l'Agent qui gèrent une liste structurée de tâches pour l'exécution d'un Agent. La liste de tâches est conservée dans le domaine de stockage threadState propre au thread et projetée sur le canal de Signal d'état de l'Agent afin de survivre à la troncature de la mémoire observationnelle.
Le suivi des tâches nécessite un thread adossé à une mémoire (threadId + resourceId). Sans mémoire, les Tools renvoient une erreur expliquant que le suivi des tâches nécessite la mémoire de l'Agent.
La configuration recommandée est TaskSignalProvider, qui regroupe les quatre Tools et TaskStateProcessor dans un seul enregistrement. Consultez le guide conceptuel des Tools intégrés.
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { Agent } from '@mastra/core/agent'
import { Memory } from '@mastra/memory'
import { TaskSignalProvider } from '@mastra/core/signals'
const agent = new Agent({
id: 'coder',
name: 'Coder',
instructions: 'Track your progress with the task tools.',
model,
memory: new Memory(),
signals: [new TaskSignalProvider()],
})
Vous pouvez également importer les Tools directement :
import { taskWriteTool, taskUpdateTool, taskCompleteTool, taskCheckTool } from '@mastra/core/tools'
const agent = new Agent({
id: 'coder',
name: 'Coder',
instructions: 'Track your progress with the task tools.',
model,
memory: new Memory(),
tools: { taskWriteTool, taskUpdateTool, taskCompleteTool, taskCheckTool },
})
task_writeLien direct vers task_write
Crée ou remplace toute la liste de tâches. Chaque appel remplace la liste précédente.
Schéma d'entréeLien direct vers Schéma d'entrée
tasks:
id?:
content:
status:
activeForm:
SortieLien direct vers Sortie
Renvoie un TaskToolResult contenant un résumé content lisible par les utilisateurs, le tableau tasks complet avec les identifiants attribués et un indicateur isError.
ComportementLien direct vers Comportement
- Les identifiants doivent être uniques au sein d'un même appel. Les identifiants explicites dupliqués reçoivent une valeur de repli générée.
- Lorsqu'un identifiant est omis pendant la réécriture d'une liste existante, une tâche dont la correspondance est sans ambiguïté réutilise son identifiant précédent à des fins de stabilité.
- Une seule tâche peut avoir le statut
in_progressà la fois. L'envoi de plusieurs tâchesin_progressrenvoie une erreur.
task_updateLien direct vers task_update
Met à jour une tâche au moyen de son identifiant stable. Incluez uniquement les champs qui ont changé.
Schéma d'entréeLien direct vers Schéma d'entrée
id:
content?:
status?:
activeForm?:
Au moins l'un des champs content, status ou activeForm est obligatoire.
ComportementLien direct vers Comportement
- Lorsque la mise à jour définit une tâche sur
in_progress, toute autre tâchein_progressest automatiquement rétrogradée àpending. - Renvoie une erreur contenant les identifiants des tâches disponibles lorsque l'identifiant est introuvable.
task_completeLien direct vers task_complete
Marque une tâche comme terminée au moyen de son identifiant stable.
Schéma d'entréeLien direct vers Schéma d'entrée
id:
ComportementLien direct vers Comportement
Renvoie une erreur contenant les identifiants des tâches disponibles lorsque l'identifiant est introuvable.
task_checkLien direct vers task_check
Vérifie le statut d'achèvement de la liste de tâches. N'accepte aucun paramètre d'entrée.
SortieLien direct vers Sortie
Renvoie un TaskCheckResult contenant :