bots-garden/mini-mepublic Fork
⑂ feature/mini-mes
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. 2d0776dUnverified · on feature/mini-mes · k33g · 16d ago
let-the-agent-call-other-agents.md · 73 lines · 4.1 KBmarkdown
Blame HistoryOpen raw

Comment laisser votre agent appeler d'autres agents

Ce guide montre comment donner une équipe à votre agent : d'autres agents mm auxquels il confie du travail de lui-même, avec l'outil intégré ask_agent, pendant que vous voyez lequel travaille. Il suppose que vous lancez déjà mm avec un fichier de configuration, et que vous avez un fichier de configuration par agent à appeler.

Étapes

  1. Listez les agents sous mmConfigs, chacun avec une description qui dit quand l'appeler — la description est tout ce dont votre modèle dispose pour choisir :

    mmConfigs:
      milo:
        path: agent.milo.yaml
        description: Specifier. Turns a request into a specification saved in specs/<slug>.spec.md, and checks code against a specification.
      homer:
        path: agent.homer.yaml
        description: Coder. Implements a specification file from specs/, with tests. Call him only once a specification exists.
    

    Les chemins sont relatifs au fichier où vous les écrivez. Une entrée simple nom: chemin marche toujours ; elle est décrite par l'acp.title de l'agent.

  2. Décidez qui approuve les appels d'outils des agents eux-mêmes. Par défaut, le yolo de votre agent décide aussi pour eux. Donnez à un agent son propre yolo pour changer cela :

      homer:
        path: agent.homer.yaml
        description: …
        yolo: true    # ses modifications et commandes s'exécutent sans demander
    

    Avec votre propre yolo: false, vous approuvez toujours chaque passage de main — l'appel ask_agent, avec le prompt écrit par votre modèle — puis homer travaille seul.

  3. Dites à votre modèle, dans son prompt system, quand passer la main et quoi faire de la réponse. Par exemple :

    system: |
      …
      OTHER AGENTS
      `ask_agent` hands a task to another agent; its description says which
      agent does what. Give it a complete prompt. Call it ONCE per task: its
      result is that agent's answer. Then answer the user, saying which agent
      answered; never answer in its place.
    
  4. Lancez mm et vérifiez que la bannière liste ask_agent parmi les outils :

    mm … | tools: bash, read_skill, read_file, write_file, edit_file, plan, ask_agent | …
    
  5. Demandez en langage courant quelque chose qui relève d'un agent. Dans la fenêtre (mm -tui), l'en-tête bascule sur l'agent pendant qu'il travaille, et sa réponse porte son nom :

    mm [Jan (coding agent)] · Jan-nano:Q4_K_M @ llmman · asked by mm [Bob (coordinator)]
    …
    ‣ mm [Jan (coding agent)]
    The capital of Peru is Lima.
    

    Puis l'en-tête revient à votre agent, qui poursuit à partir de la réponse.

Variantes

  • Envoyer la conversation. Le modèle met with_context: true quand l'agent a besoin de ce qui a été dit — un relecteur qui donne un deuxième avis. Dites-le dans la description de l'agent (« call it with with_context true »).
  • Interroger un agent vous-même. /ask-<nom> et /ask-with-context-<nom> marchent toujours, et gardent l'échange dans l'historique. Voir Interroger un autre agent mm.
  • Travail long. Chaque événement diffusé par l'agent maintient en vie le watchdog de votre agent, mais pas un long silence — un gros modèle qui se charge, un long premier prompt : relevez votre watchdogTimeout pour le couvrir (10m pour un modèle de 48 Go sur un portable).
  • Depuis un script. mm --ask <nom> reste la voie pour une commande shell. Voir Interroger un autre agent depuis une skill ou un script.
  • Exemples complets. demo-llmman/agent.llmman.yaml (Bob avec Jan, Lucy et un relecteur) et mini-mes/riker/agent.riker.yaml (un coordinateur, un spécificateur et un codeur).

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
66
67
68
69
70
71
72
73
# Comment laisser votre agent appeler d'autres agents

Ce guide montre comment donner une équipe à votre agent : d'autres agents mm auxquels il confie du travail de lui-même, avec l'outil intégré `ask_agent`, pendant que vous voyez lequel travaille. Il suppose que vous lancez déjà `mm` avec un fichier de configuration, et que vous avez un fichier de configuration par agent à appeler.

## Étapes

1. Listez les agents sous `mmConfigs`, chacun avec une `description` qui dit **quand** l'appeler — la description est tout ce dont votre modèle dispose pour choisir :

   ```yaml
   mmConfigs:
     milo:
       path: agent.milo.yaml
       description: Specifier. Turns a request into a specification saved in specs/<slug>.spec.md, and checks code against a specification.
     homer:
       path: agent.homer.yaml
       description: Coder. Implements a specification file from specs/, with tests. Call him only once a specification exists.
   ```

   Les chemins sont relatifs au fichier où vous les écrivez. Une entrée simple `nom: chemin` marche toujours ; elle est décrite par l'`acp.title` de l'agent.

2. Décidez qui approuve les appels d'outils des agents eux-mêmes. Par défaut, le `yolo` de votre agent décide aussi pour eux. Donnez à un agent son propre `yolo` pour changer cela :

   ```yaml
     homer:
       path: agent.homer.yaml
       description: …
       yolo: true    # ses modifications et commandes s'exécutent sans demander
   ```

   Avec votre propre `yolo: false`, vous approuvez toujours chaque passage de main — l'appel `ask_agent`, avec le prompt écrit par votre modèle — puis homer travaille seul.

3. Dites à votre modèle, dans son prompt `system`, quand passer la main et quoi faire de la réponse. Par exemple :

   ```yaml
   system: |
     …
     OTHER AGENTS
     `ask_agent` hands a task to another agent; its description says which
     agent does what. Give it a complete prompt. Call it ONCE per task: its
     result is that agent's answer. Then answer the user, saying which agent
     answered; never answer in its place.
   ```

4. Lancez `mm` et vérifiez que la bannière liste `ask_agent` parmi les outils :

   ```text
   mm … | tools: bash, read_skill, read_file, write_file, edit_file, plan, ask_agent | …
   ```

5. Demandez en langage courant quelque chose qui relève d'un agent. Dans la fenêtre (`mm -tui`), l'en-tête bascule sur l'agent pendant qu'il travaille, et sa réponse porte son nom :

   ```text
   mm [Jan (coding agent)] · Jan-nano:Q4_K_M @ llmman · asked by mm [Bob (coordinator)]
   …
   ‣ mm [Jan (coding agent)]
   The capital of Peru is Lima.
   ```

   Puis l'en-tête revient à votre agent, qui poursuit à partir de la réponse.

## Variantes

- **Envoyer la conversation.** Le modèle met `with_context: true` quand l'agent a besoin de ce qui a été dit — un relecteur qui donne un deuxième avis. Dites-le dans la description de l'agent (« call it with with_context true »).
- **Interroger un agent vous-même.** `/ask-<nom>` et `/ask-with-context-<nom>` marchent toujours, et gardent l'échange dans l'historique. Voir [Interroger un autre agent mm](ask-another-agent.md).
- **Travail long.** Chaque événement diffusé par l'agent maintient en vie le watchdog de votre agent, mais pas un long silence — un gros modèle qui se charge, un long premier prompt : relevez votre `watchdogTimeout` pour le couvrir (10m pour un modèle de 48 Go sur un portable).
- **Depuis un script.** `mm --ask <nom>` reste la voie pour une commande shell. Voir [Interroger un autre agent depuis une skill ou un script](ask-another-agent-from-a-skill.md).
- **Exemples complets.** `demo-llmman/agent.llmman.yaml` (Bob avec Jan, Lucy et un relecteur) et `mini-mes/riker/agent.riker.yaml` (un coordinateur, un spécificateur et un codeur).

## Voir aussi

- Les champs de l'outil, son affichage et ses erreurs : [référence des outils](../reference/tools.md#ask_agent)
- Les deux formes de `mmConfigs` : [référence de la configuration](../reference/configuration.md)
- Pourquoi il tourne dans le tour plutôt que par une skill : [interroger un autre agent — explication](../explanation/asking-another-agent.md)