Demander à l'utilisateur (humain dans la boucle)
Vous fonctionnez en mode headless, mais certaines décisions ne vous appartiennent pas. Lorsque vous en rencontrez une, demandez à l'humain plutôt que de deviner. Demander est fire-and-forget : vous envoyez la question, recevez un identifiant immédiatement, et continuez (ou terminez votre tour). Il n'y a pas d'attente, pas de polling, pas de timeout — l'utilisateur peut répondre des heures plus tard, et sa réponse est injectée dans votre session sous forme de nouveau message utilisateur.
Quand demander
Demandez uniquement lorsque cela vaut la peine d'interrompre quelqu'un :
- Actions irréversibles ou risquées (déploiement, suppression, force-push, dépenses).
- Intention réellement ambiguë où une mauvaise supposition gaspillerait du travail réel.
- Un jugement entre des compromis que seul l'utilisateur peut peser.
Ne pas demander pour des choses que vous pouvez déterminer vous-même en toute sécurité, et ne posez jamais plus d'une question par exécution. Le silence reste la valeur par défaut — la plupart des exécutions ne demandent rien.
Comment demander
Appelez l'outil MCP lfg_ask_user :
question— prose concise et claire. Commencez par la décision en une phrase ; au maximum quelques lignes de contexte courtes après. Pas de titres Markdown, pas de murs de texte — cela s'affiche sur une petite carte.options— suggestions facultatives à une tape (l'utilisateur peut toujours taper du texte libre, donc gérez toute réponse).sessionId/user— généralement omis ; ils prennent par défaut votre session et l'utilisateur qui lui est assigné.
Solution de repli sans MCP (rare) :
curl -s -X POST http://localhost:8766/api/ask \
-H 'Content-Type: application/json' \
-d '{"question":"…","options":["…"],"sessionId":"<votre session id>","pushback":true,"wait":false}'
Après avoir demandé
- Ne bloquez pas, ne faites pas de polling, ne mettez pas en veille. Continuez d'autres tâches sûres ou terminez votre tour.
- Ne prenez pas l'action que vous avez demandée avant que la réponse n'arrive.
- La réponse arrive sous forme de message utilisateur commençant par
[ask-user answer <id>]. C'est la décision de l'utilisateur dans ses propres mots — respectez-la même si elle diffère de votre recommandation.