> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # 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](https://mastra.zisheng.pro/fr/docs/long-running-agents/signals) de l'Agent afin de survivre à la troncature de la [mémoire observationnelle](https://mastra.zisheng.pro/fr/docs/memory/observational-memory). 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`](https://mastra.zisheng.pro/fr/reference/signals/task-signal-provider), qui regroupe les quatre Tools et `TaskStateProcessor` dans un seul enregistrement. Consultez le guide conceptuel des [Tools intégrés](https://mastra.zisheng.pro/fr/docs/agents/using-tools). ## Exemple d'utilisation ```typescript 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 : ```typescript 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` Crée ou remplace toute la liste de tâches. Chaque appel remplace la liste précédente. ### Schéma d'entrée **tasks** (`TaskItemInput[]`): Liste de tâches mise à jour complète. **tasks.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. **tasks.content** (`string`): Description de la tâche à l'impératif (par exemple, 'Corriger le bug d'authentification'). **tasks.status** (`'pending' | 'in_progress' | 'completed'`): Statut actuel de la tâche. **tasks.activeForm** (`string`): Forme indiquant une action en cours affichée pendant l'exécution (par exemple, 'Correction du bug d'authentification'). ### 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 - 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` Met à jour une tâche au moyen de son identifiant stable. Incluez uniquement les champs qui ont changé. ### 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 - 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` Marque une tâche comme terminée au moyen de son identifiant stable. ### Schéma d'entrée **id** (`string`): Identifiant stable de la tâche à marquer comme terminée. ### Comportement Renvoie une erreur contenant les identifiants des tâches disponibles lorsque l'identifiant est introuvable. ## `task_check` Vérifie le statut d'achèvement de la liste de tâches. N'accepte aucun paramètre d'entrée. ### 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. **summary.total** (`number`): Nombre total de tâches suivies. **summary.completed** (`number`): Tâches terminées. **summary.inProgress** (`number`): Tâches en cours. **summary.pending** (`number`): Tâches en attente. **summary.incomplete** (`number`): Tâches qui ne sont pas encore terminées (en cours + en attente). **summary.hasTasks** (`boolean`): Vaut true lorsqu'au moins une tâche existe. **summary.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.