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
-
Listez les agents sous
mmConfigs, chacun avec unedescriptionqui 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: cheminmarche toujours ; elle est décrite par l'acp.titlede l'agent. -
Décidez qui approuve les appels d'outils des agents eux-mêmes. Par défaut, le
yolode votre agent décide aussi pour eux. Donnez à un agent son propreyolopour changer cela :homer: path: agent.homer.yaml description: … yolo: true # ses modifications et commandes s'exécutent sans demanderAvec votre propre
yolo: false, vous approuvez toujours chaque passage de main — l'appelask_agent, avec le prompt écrit par votre modèle — puis homer travaille seul. -
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. -
Lancez
mmet vérifiez que la bannière listeask_agentparmi les outils :mm … | tools: bash, read_skill, read_file, write_file, edit_file, plan, ask_agent | … -
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: truequand 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
watchdogTimeoutpour 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) etmini-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
- Les deux formes de
mmConfigs: référence de la configuration - Pourquoi il tourne dans le tour plutôt que par une skill : interroger un autre agent — explication
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 |
|