bots-garden/mini-mepublic Fork
⑂ v0.9.0
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 7087d46 · on v0.9.0 · k33g · 2d ago
manage-plans-and-tasks.md · 65 lines · 4.5 KBmarkdown
Blame HistoryOpen raw

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 status et 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. /new et /resume oublient 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-manager dit au modèle quand faire un plan et comment le parcourir. Mettez-le dans le skillsDir de 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 update en boucle. update change le statut d'UNE tâche ; il ne peut pas changer les tâches d'un plan. Un appel sans status valide 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, mettez planTool: false pour cet agent.

Voir aussi

 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
# 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 :

```text
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 :

  ```text
  📋 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 `status` et 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.** `/new` et `/resume` oublient 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-manager` dit au modèle quand faire un plan et comment le parcourir. Mettez-le dans le `skillsDir` de 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 update` en boucle.** `update` change le statut d'UNE tâche ; il ne peut pas changer les tâches d'un plan. Un appel sans `status` valide 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, mettez `planTool: false` pour cet agent.

## Voir aussi

- [Référence des outils — `plan`](../reference/tools.md#plan) : chaque action, champ, résultat et erreur
- [Référence de la configuration](../reference/configuration.md) : `planTool`
- [Référence des commandes](../reference/slash-commands.md) : `/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