Gérer des plans et des tâches
Ce guide montre comment faire travailler l'agent sur une liste de tâches avec son outil plan, et comment suivre sa progression. L'outil est activé par défaut (planTool: true).
Donner une liste à l'agent
Demandez plusieurs choses à la fois, sous forme de liste :
Do these 2 things: 1. create a file a.txt containing A, 2. create a file b.txt containing B.
Le modèle crée un plan à partir de la liste, le suit, et met à jour le statut de chaque tâche au fur et à mesure. Les petits modèles le font plus sûrement quand on le leur dit : « Use the plan tool. Do these… ».
Suivre la progression
mm affiche où en est le plan après chaque action qui change ou lit son état (create, update, next, status) — que le modèle en parle ou non dans sa réponse.
-
Mode ligne (
mm agent.yaml,mm -p) : une ligne avant chaque appel, une ligne après. Mesuré sur Qwen3.5 4B avec la demande ci-dessus :📋 plan: create 📋 [1/2] ⏳ Task 1: Create a file a.txt containing A (open) 💾 write_file: a.txt (1 bytes) 💾 write_file: b.txt (1 bytes) 📋 plan: update user-request-1 📋 [2/2] ⏳ Task 2: Create a file b.txt containing B (open) 📋 plan: update user-request-1 📋 [2/2] All tasks complete! -
Fenêtre (
mm -tui) : chaque appel est un appel d'outil dans la conversation, et la ligne📋 [C/N] …le suit en notice. -
Éditeur (
mm -acp) : chaque appel est un appel d'outil ; la ligne de statut est dans son résultat.
La ligne de statut montre la tâche en cours de travail — la première en cours, sinon la première encore ouverte : [C/N] <icône> Task C: <description> (<statut>). Icônes : ⏳ ouverte, 🔄 en cours, ✅ faite, ❌ en échec. Quand toutes les tâches sont terminées, elle indique [N/N] All tasks complete!, ou [N/N] Plan finished: D done, F failed si certaines ont échoué.
Orienter le plan
C'est le modèle qui décide quand appeler l'outil ; vous l'orientez avec vos propres mots :
- Où en est-on ? « Où en est le plan ? » — le modèle appelle
statuset mm affiche la ligne. - Sauter une tâche. « Saute les tests et continue. » — le modèle peut la marquer et passer à la suivante avec
next. - Une tâche a échoué. Le modèle peut la marquer
failed, avec une note ; la ligne de statut passe alors à la tâche ouverte suivante. - Abandonner le plan. « Oublie ce plan. » — le modèle peut appeler
delete.
Il n'y a pas de commande slash pour les plans : c'est l'outil du modèle.
Variantes
- Plusieurs conversations dans un éditeur. Chaque fil a ses propres plans : un plan créé dans un fil de Zed n'est pas visible dans un autre.
- Repartir de zéro.
/newet/resumeoublient les plans dans toutes les façades ; un rechargement depuis l'éditeur (session/load,session/resume) démarre le fil sans plan. Les plans ne sont gardés qu'en mémoire, jamais dans le fichier de session, et sont perdus à l'arrêt de mm. - Le skill
plan-manager.skills/plan-managerdit au modèle quand faire un plan et comment le parcourir. Mettez-le dans leskillsDirde l'agent pour un modèle qui n'utilise pas l'outil de lui-même. Il demande aussi au modèle de reprendre la ligne de statut dans sa réponse ; mm l'affiche de toute façon. - Un agent qui n'a pas besoin de plans. Mettez
planTool: false: l'outil n'est pas déclaré. Faites-le pour un agent dont le travail est une réponse unique (écrire un document, répondre à des questions), où un petit modèle pourrait sinon boucler sur des appels au plan.
Dépannage
- L'agent ne crée pas de plan. Donnez une liste numérotée, et dites « use the plan tool ». Avec un petit modèle, ajoutez le skill
plan-manager. - L'agent appelle
plan updateen boucle.updatechange le statut d'UNE tâche ; il ne peut pas changer les tâches d'un plan. Un appel sansstatusvalide reçoit une réponse qui reprend l'appel, nomme le champ manquant et donne un appel valide. Si un petit modèle le répète quand même, mettezplanTool: falsepour cet agent.
Voir aussi
- Référence des outils —
plan: chaque action, champ, résultat et erreur - Référence de la configuration :
planTool - Référence des commandes :
/new,/resume demos/plans/— une démo mesurée : un programme Go construit en quatre étapes planifiées, et un plan qui se termine sur une tâche en échec
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
|