Comment utiliser mini-me depuis un éditeur (ACP)
Ce guide montre comment héberger mm dans un éditeur qui parle l'Agent Client Protocol, comme Zed. Il suppose que mm est compilé et installé dans votre PATH (./install.sh le copie dans /usr/local/bin), et que votre serveur de modèle tourne.
Étapes
-
Déclarez
mmcomme serveur d'agent dans l'éditeur, avec l'option-acp. Dans Zed, ajoutez àsettings.json:{ "agent_servers": { "mini-me": { "type": "custom", "command": "mm", "args": ["-acp"], "env": { "AGENT_CONFIG": "/chemin/absolu/vers/agent.yaml" } } } } -
Donnez à
AGENT_CONFIGun chemin absolu. L'éditeur lancemmavec le répertoire du projet comme répertoire de travail, donc un./agent.yamlrelatif ne serait pas trouvé. En mode ACP, unskillsDirrelatif dans ce fichier est résolu à côté du fichier, pas à côté du répertoire de travail de l'éditeur. -
Ouvrez le panneau d'agent et démarrez une conversation. Chaque appel à
bash,read_file,write_fileetedit_fileapparaît comme un appel d'outil. Par défaut (yolo: true), ils s'exécutent aussitôt ; avecyolo: falsedans la configuration, l'éditeur vous demande d'autoriser chaque appel àbash,write_fileetedit_fileavant exécution.read_fileetread_skillne demandent jamais. -
Lisez les journaux quand quelque chose semble anormal. En mode ACP, rien de lisible par un humain ne va sur stdout : la bannière, les avertissements et une trace
[acp] …vont sur stderr, que Zed affiche viadev: open acp logs.
Variantes
-
Autoriser ou refuser un outil pour toute la session (
yolo: false). Choisissez « Allow bash for this session » ou « Never allow bash in this session » dans le dialogue de permission ; le choix est mémorisé par nom d'outil jusqu'à la fin de la session. Voir Confirmer les appels d'outils. -
Annuler un tour en cours. Utilisez la touche d'arrêt de l'éditeur (Échap dans Zed). L'agent répond au prompt avec la raison d'arrêt
cancelledet conserve dans l'historique les commandes déjà exécutées. Il n'y a pas de/aborten ACP. -
Compresser ou recommencer la conversation. Envoyez
/compactou/new; les éditeurs qui listent les commandes de l'agent proposent les deux dans le menu des commandes slash. Voir la référence des commandes slash. -
Attacher un fichier avec
@. Le sélecteur de l'éditeur envoie unresource_link, transmis au modèle sous la forme[attached file: <chemin>]; un chemin tapé à la main comme@cheminest compris de la même façon (voir@chemin). Le modèle lit le fichier avec ses outils. -
Recharger l'agent sans perdre le fil. Avec
sessions.enabled: truedans le fichier de configuration, le Reload Agent de l'éditeur (Zed) appellesession/loadet toute la conversation, appels d'outils compris, est rejouée dans le fil. Voir Conserver les sessions et les reprendre. -
Voir le JSON échangé avec le modèle. Activez la trace, dans le fichier de configuration (
trace: {enabled: true}) ou dans les réglages de l'éditeur ("env": { "AGENT_CONFIG": "…", "AGENT_TRACE": "true" }— l'éditeur ne transmet pas les variables de votre shell). Les fichiers arrivent dans<projet>/.mm/traces/, le projet étant lecwdde la session ; la bannière, dans les logs ACP, indiquetrace: <session cwd>/.mm/traces. Voir Comment voir le JSON envoyé au modèle. -
Changer le nom que voit l'éditeur. Ajoutez un bloc
acp:au fichier de configuration ;nameest l'identifiant que l'éditeur journalise,titlele nom qu'il peut afficher (laisseztitlevide pour n'en envoyer aucun). La version envoyée est toujours celle du binaire, celle qu'affichemm --version— vérifiez-la avec la requêteinitializeci-dessous. Voir les clés deacp.acp: name: mini-me title: Mini Me -
Lancer depuis un terminal pour déboguer le protocole.
mm -acplit du JSON-RPC sur stdin et l'écrit sur stdout, un message par ligne. Par exemple, pour voir comment l'agent se présente :(echo '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":1}}'; sleep 2) \ | mm -acp -config /chemin/absolu/vers/agent.yaml 2>/dev/null | head -1Avec les réglages par défaut, la réponse contient
"agentInfo":{"name":"bob","title":"Bob (bash-first agent)","version":"v0.1.7"}.
Voir aussi
- Les méthodes et capacités exactement exposées : référence ACP
- Pourquoi le terminal et l'éditeur partagent une seule boucle : architecture
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 |
|