Comment interroger un autre agent depuis une skill ou un script
Ce guide montre comment faire poser une question à un autre agent mm par une skill — ou par n'importe quel script shell — et se servir de sa réponse. Il suppose que les agents sont déjà déclarés sous mmConfigs (voir comment interroger un autre agent). Pour que votre modèle confie du travail à un autre agent de lui-même, l'outil ask_agent est la voie la plus simple : aucune commande à recopier, et la fenêtre montre quel agent travaille. Une skill sert pour une procédure figée, un script, ou plusieurs agents en une seule commande.
Étapes
-
Dans la skill, rappelez le même mm via les variables que mm exporte vers les commandes de son outil
bash.MM_BINest lemmen cours, etMM_CONFIGsa configuration :--asktrouve donc les noms des agents sans chemin :"$MM_BIN" --ask jan -p "What is the capital of Peru?"stdout porte la réponse et rien d'autre ; l'en-tête et les appels d'outils de l'agent vont sur stderr.
-
Pour envoyer la conversation, écrivez-la sur stdin, puis une ligne
---, puis la question :"$MM_BIN" --ask-with-context reviewer <<'CONTEXT' User: I think Go's goroutines are OS threads. Assistant: They are not: the Go runtime schedules them onto a few OS threads. --- Is the assistant right? CONTEXTC'est le modèle qui écrit ce résumé lui-même : une commande ne peut pas lire la conversation.
-
Dites au modèle, dans la skill, de lancer la commande une seule fois et de présenter la réponse comme celle de l'autre agent. Une skill complète (
skills/second-opinion/SKILL.md) :--- name: second-opinion description: Get a second opinion from the reviewer agent on a claim or an answer from this conversation. keywords: second opinion, review, check, deuxième avis, vérifie, relis --- # Second opinion Call your `bash` tool ONCE with this command, the conversation summarised in English above the `---` line, the question below it: "$MM_BIN" --ask-with-context reviewer <<'CONTEXT' User: <the claim> Assistant: <your answer, if any> --- Is this right? Correct it if not. CONTEXT What it prints is the reviewer's answer. Report it, starting with "The reviewer says:"; never answer in its place. If it prints `[ask: …]`, tell the user that line.Gardez une telle commande courte : un petit modèle recopie une longue commande de façon inexacte (guillemets, préfixes).
-
Relevez les délais dans la configuration de l'agent qui pose la question. Un modèle local peut mettre une minute à répondre, et les deux délais par défaut sont bien en dessous :
bashTimeout: 3m # une commande bash (30s par défaut) watchdogTimeout: 3m # continue de compter pendant qu'une commande tourne (ticket 57) -
Lancez l'agent depuis le dossier qu'attendent les skills et demandez en langage courant :
> I think Go's goroutines are OS threads. Get a second opinion from Lucy on that claim. 📖 read_skill: second-opinion 🛠️ bash: "$MM_BIN" --ask-with-context reviewer <<'CONTEXT' … │ 🗣 asking reviewer (llmman/hf.co/Menlo/Lucy-gguf:Q4_K_M), with the conversation… │ The assistant's answer is correct. Go goroutines are not OS threads; …
Variantes
- Depuis un terminal ou un script, hors de mm. Nommez la configuration :
mm -config demo-llmman/agent.llmman.yaml --ask lucy -p "…", ou mettez la question sur stdin. Vérifiez le code de sortie : 0 réponse obtenue, 1 échec (la raison est sur stderr), 130 interrompu. - Un agent qui doit seulement répondre. Donnez-lui une configuration avec
bashTool: false,editTools: false,planTool: falseet sans skills —demo-llmman/agent.lucy-reviewer.yamlen est une. Un petit modèle doté de tous ses outils a tendance à s'égarer (lire des fichiers, charger des skills) quand on lui demande seulement son avis. - Récupérer la réponse dans une variable.
answer=$("$MM_BIN" --ask jan -p "…")— stdout ne contient que la réponse.
Voir aussi
- Toutes les options, flux et codes de sortie : référence de la ligne de commande
bashTimeoutetmmConfigs: référence de configuration- Pourquoi l'agent est un processus enfant, et ce que
--askajoute pour les scripts : 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 74 75 76 77 78 79 80 |
|