Aller au contenu principal

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'utilisation
Lien direct vers Exemple d'utilisation

src/mastra/agents/index.ts
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 :

src/mastra/agents/index.ts
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_write
Lien 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ée
Lien direct vers Schéma d'entrée

tasks:

TaskItemInput[]
Liste de tâches mise à jour complète.
TaskItemInput

id?:

string
Identifiant stable de la tâche (par exemple, 'task_investigate_tests'). Conservez-le inchangé lors des mises à jour. Généré automatiquement lorsqu'il est omis.

content:

string
Description de la tâche à l'impératif (par exemple, 'Corriger le bug d'authentification').

status:

'pending' | 'in_progress' | 'completed'
Statut actuel de la tâche.

activeForm:

string
Forme indiquant une action en cours affichée pendant l'exécution (par exemple, 'Correction du bug d'authentification').

Sortie
Lien 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.

Comportement
Lien 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âches in_progress renvoie une erreur.

task_update
Lien 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ée
Lien direct vers Schéma d'entrée

id:

string
Identifiant stable de la tâche à mettre à jour.

content?:

string
Nouvelle description de la tâche à l'impératif.

status?:

'pending' | 'in_progress' | 'completed'
Nouveau statut de la tâche.

activeForm?:

string
Nouvelle forme au présent continu.

Au moins l'un des champs content, status ou activeForm est obligatoire.

Comportement
Lien direct vers Comportement

  • Lorsque la mise à jour définit une tâche sur in_progress, toute autre tâche in_progress est automatiquement rétrogradée à pending.
  • Renvoie une erreur contenant les identifiants des tâches disponibles lorsque l'identifiant est introuvable.

task_complete
Lien direct vers task_complete

Marque une tâche comme terminée au moyen de son identifiant stable.

Schéma d'entrée
Lien direct vers Schéma d'entrée

id:

string
Identifiant stable de la tâche à marquer comme terminée.

Comportement
Lien direct vers Comportement

Renvoie une erreur contenant les identifiants des tâches disponibles lorsque l'identifiant est introuvable.

task_check
Lien 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.

Sortie
Lien direct vers Sortie

Renvoie un TaskCheckResult contenant :

content:

string
Résumé lisible par les utilisateurs avec le nombre de tâches et les identifiants des tâches incomplètes.

tasks:

TaskItem[]
Instantané complet de la liste de tâches avec des identifiants stables.

summary:

TaskCheckSummary
Décomptes structurés.
TaskCheckSummary

total:

number
Nombre total de tâches suivies.

completed:

number
Tâches terminées.

inProgress:

number
Tâches en cours.

pending:

number
Tâches en attente.

incomplete:

number
Tâches qui ne sont pas encore terminées (en cours + en attente).

hasTasks:

boolean
Vaut true lorsqu'au moins une tâche existe.

allCompleted:

boolean
Vaut true lorsqu'au moins une tâche existe et que toutes les tâches sont terminées.

incompleteTasks:

TaskItem[]
Tâches qui nécessitent encore du travail (en cours et en attente).

isError:

boolean
Indique si la vérification a rencontré une erreur.