bots-garden/mini-mepublic Fork
⑂ v0.2.0
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
📦 Mini Me 460cf23 · on v0.2.0 · k33g · 27d ago
use-from-an-editor.md · 55 lines · 4.0 KBmarkdown
Blame HistoryOpen raw

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

  1. Déclarez mm comme 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" }
        }
      }
    }
    
  2. Donnez à AGENT_CONFIG un chemin absolu. L'éditeur lance mm avec le répertoire du projet comme répertoire de travail, donc un ./agent.yaml relatif ne serait pas trouvé. En mode ACP, un skillsDir relatif dans ce fichier est résolu à côté du fichier, pas à côté du répertoire de travail de l'éditeur.

  3. Ouvrez le panneau d'agent et démarrez une conversation. Chaque appel à bash, read_file, write_file et edit_file apparaît comme un appel d'outil ; l'éditeur vous demande de l'autoriser avant exécution. read_skill s'exécute sans dialogue.

  4. 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 via dev: open acp logs.

Variantes

  • Autoriser un outil pour toute la session. Choisissez « Allow bash for this session » dans le dialogue de permission ; le choix est mémorisé par nom d'outil jusqu'à la fin de la session.

  • 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 cancelled et conserve dans l'historique les commandes déjà exécutées. Il n'y a pas de /abort en ACP.

  • Compresser ou recommencer la conversation. Envoyez /compact ou /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 un resource_link, transmis au modèle sous la forme [attached file: <chemin>] ; un chemin tapé à la main comme @chemin est 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: true dans le fichier de configuration, le Reload Agent de l'éditeur (Zed) appelle session/load et toute la conversation, appels d'outils compris, est rejouée dans le fil. Voir Conserver les sessions et les reprendre.

  • Changer le nom que voit l'éditeur. Ajoutez un bloc acp: au fichier de configuration ; name est l'identifiant que l'éditeur journalise, title le nom qu'il peut afficher (laissez title vide pour n'en envoyer aucun). La version envoyée est toujours celle du binaire, celle qu'affiche mm --version — vérifiez-la avec la requête initialize ci-dessous. Voir les clés de acp.

    acp:
      name: mini-me
      title: Mini Me
    
  • Lancer depuis un terminal pour déboguer le protocole. mm -acp lit 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 -1
    

    Avec 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
# 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

1. Déclarez `mm` comme serveur d'agent dans l'éditeur, avec l'option `-acp`. Dans Zed, ajoutez à `settings.json` :

   ```json
   {
     "agent_servers": {
       "mini-me": {
         "type": "custom",
         "command": "mm",
         "args": ["-acp"],
         "env": { "AGENT_CONFIG": "/chemin/absolu/vers/agent.yaml" }
       }
     }
   }
   ```

2. Donnez à `AGENT_CONFIG` un chemin absolu. L'éditeur lance `mm` avec le répertoire du projet comme répertoire de travail, donc un `./agent.yaml` relatif ne serait pas trouvé. En mode ACP, un `skillsDir` relatif dans ce fichier est résolu à côté du fichier, pas à côté du répertoire de travail de l'éditeur.

3. Ouvrez le panneau d'agent et démarrez une conversation. Chaque appel à `bash`, `read_file`, `write_file` et `edit_file` apparaît comme un appel d'outil ; l'éditeur vous demande de l'autoriser avant exécution. `read_skill` s'exécute sans dialogue.

4. 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 via `dev: open acp logs`.

## Variantes

- **Autoriser un outil pour toute la session.** Choisissez « Allow bash for this session » dans le dialogue de permission ; le choix est mémorisé par nom d'outil jusqu'à la fin de la session.
- **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 `cancelled` et conserve dans l'historique les commandes déjà exécutées. Il n'y a pas de `/abort` en ACP.
- **Compresser ou recommencer la conversation.** Envoyez `/compact` ou `/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](../reference/slash-commands.md#mode-acp).
- **Attacher un fichier avec `@`.** Le sélecteur de l'éditeur envoie un `resource_link`, transmis au modèle sous la forme `[attached file: <chemin>]` ; un chemin tapé à la main comme `@chemin` est compris de la même façon (voir [`@chemin`](attach-a-file.md)). Le modèle lit le fichier avec ses outils.
- **Recharger l'agent sans perdre le fil.** Avec `sessions.enabled: true` dans le fichier de configuration, le Reload Agent de l'éditeur (Zed) appelle `session/load` et toute la conversation, appels d'outils compris, est rejouée dans le fil. Voir [Conserver les sessions et les reprendre](keep-sessions.md).
- **Changer le nom que voit l'éditeur.** Ajoutez un bloc `acp:` au fichier de configuration ; `name` est l'identifiant que l'éditeur journalise, `title` le nom qu'il peut afficher (laissez `title` vide pour n'en envoyer aucun). La version envoyée est toujours celle du binaire, celle qu'affiche `mm --version` — vérifiez-la avec la requête `initialize` ci-dessous. Voir les [clés de `acp`](../reference/configuration.md#clés-de-acp).

  ```yaml
  acp:
    name: mini-me
    title: Mini Me
  ```

- **Lancer depuis un terminal pour déboguer le protocole.** `mm -acp` lit du JSON-RPC sur stdin et l'écrit sur stdout, un message par ligne. Par exemple, pour voir comment l'agent se présente :

  ```bash
  (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 -1
  ```

  Avec 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](../reference/acp.md)
- Pourquoi le terminal et l'éditeur partagent une seule boucle : [architecture](../explanation/architecture.md)