bots-garden/mini-mepublic Fork
⑂ v0.4.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
🛟 Updated. 8734926Unverified · on v0.4.0 · k33g · 17d ago
confirm-tool-calls.md · 57 lines · 4.0 KBmarkdown
Blame HistoryOpen raw

Confirmer les appels d'outils avant leur exécution

Par défaut, mini-me tourne en mode yolo : bash, les écritures et les modifications de fichiers s'exécutent dès que le modèle les demande. Ce guide montre comment faire en sorte que l'agent vous demande d'abord, dans le terminal, dans la fenêtre et dans un éditeur. Il suppose que vous lancez déjà mm avec un fichier de configuration YAML.

Étapes

  1. Désactivez yolo dans votre fichier de configuration :

    yolo: false
    bashTool: true
    

    bashTool (et editTools, fetchContentTool) décident toujours quels outils existent ; yolo décide si ceux qui existent demandent avant de s'exécuter.

  2. Lancez mm comme d'habitude. La bannière se termine par yolo: off (tools ask) :

    mm v0.2.6 | config: agent.yaml | provider: dmr | model: … | tools: bash, read_file, write_file, edit_file | skills: 3 | yolo: off (tools ask)
    
  3. Demandez quelque chose qui lance une commande. En mode ligne, la ligne de l'outil est suivie d'une question :

    🛠️  bash: ls -la
    
    🔐 bash: ls -la
       [a] allow once · [s] allow bash for this session · [r] reject · [n] never bash
       ?
    
  4. Tapez une lettre puis Entrée :

    Touche Effet
    a Exécute cet appel. Le prochain appel à bash demandera de nouveau.
    s Exécute cet appel et tous les appels à bash suivants de la session, sans demander.
    r N'exécute pas cet appel. Le modèle reçoit [command rejected by the user] et peut proposer autre chose. Le prochain appel demandera de nouveau.
    n N'exécute pas cet appel, et refuse sans demander tous les appels à bash suivants de la session.

    Toute autre réponse réaffiche la légende. /abort ou Ctrl+C refuse l'appel et arrête le tour.

Variantes

  • Dans la fenêtre (mm -tui). La zone de saisie est remplacée par ? bash: ls -la et les mêmes quatre touches y répondent ; Échap équivaut à r.
  • Dans un éditeur (mm -acp, Zed). Le dialogue de permission de l'éditeur propose Allow once, Allow bash for this session, Reject et Never allow bash in this session. Avec yolo: true, aucun dialogue n'est affiché.
  • Pour une seule exécution, sans modifier le fichier. AGENT_YOLO=false mm agent.yaml (ou AGENT_YOLO=true pour sauter les questions une fois). Dans un éditeur, mettez la variable dans les réglages env de l'agent, à côté d'AGENT_CONFIG.
  • Avec d'autres agents (mmConfigs). L'agent que vous avez lancé décide pour les agents qu'il interroge. Avec yolo: false dans votre configuration principale, un appel à bash fait par /ask-jan vous est demandé, intitulé jan · bash: …, et s mémorise jan/bash, pas votre propre bash. Le yolo écrit dans le fichier de Jan est ignoré tant qu'il répond à un /ask.
  • Dans un script (mm -p, mm --ask). Personne ne peut y répondre : avec yolo: false, les appels qui demanderaient sont refusés, et stderr le dit une fois : [yolo is off and this mode cannot ask: …]. Gardez yolo: true pour les exécutions scriptées, ou retirez les outils que vous ne voulez pas avec bashTool: false / editTools: false.
  • Outils MCP. Avec yolo: false, chaque outil MCP demande aussi. Avec yolo: true, chaque serveur MCP garde ses propres permissions (ask par défaut, auto pour s'exécuter sans demander).
  • Une ancienne configuration avec permissions: ask. Elle fonctionne encore et signifie yolo: false ; la bannière avertit que la clé est obsolète. Remplacez-la par yolo: false.

Voir aussi

 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
# Confirmer les appels d'outils avant leur exécution

Par défaut, mini-me tourne en **mode yolo** : `bash`, les écritures et les modifications de fichiers s'exécutent dès que le modèle les demande. Ce guide montre comment faire en sorte que l'agent vous demande d'abord, dans le terminal, dans la fenêtre et dans un éditeur. Il suppose que vous lancez déjà `mm` avec un fichier de configuration YAML.

## Étapes

1. Désactivez yolo dans votre fichier de configuration :

   ```yaml
   yolo: false
   bashTool: true
   ```

   `bashTool` (et `editTools`, `fetchContentTool`) décident toujours quels outils **existent** ; `yolo` décide si ceux qui existent demandent avant de s'exécuter.

2. Lancez `mm` comme d'habitude. La bannière se termine par `yolo: off (tools ask)` :

   ```
   mm v0.2.6 | config: agent.yaml | provider: dmr | model: … | tools: bash, read_file, write_file, edit_file | skills: 3 | yolo: off (tools ask)
   ```

3. Demandez quelque chose qui lance une commande. En mode ligne, la ligne de l'outil est suivie d'une question :

   ```
   🛠️  bash: ls -la

   🔐 bash: ls -la
      [a] allow once · [s] allow bash for this session · [r] reject · [n] never bash
      ?
   ```

4. Tapez une lettre puis Entrée :

   | Touche | Effet |
   |--------|-------|
   | `a` | Exécute cet appel. Le prochain appel à `bash` demandera de nouveau. |
   | `s` | Exécute cet appel et tous les appels à `bash` suivants de la session, sans demander. |
   | `r` | N'exécute pas cet appel. Le modèle reçoit `[command rejected by the user]` et peut proposer autre chose. Le prochain appel demandera de nouveau. |
   | `n` | N'exécute pas cet appel, et refuse sans demander tous les appels à `bash` suivants de la session. |

   Toute autre réponse réaffiche la légende. `/abort` ou **Ctrl+C** refuse l'appel et arrête le tour.

## Variantes

- **Dans la fenêtre (`mm -tui`).** La zone de saisie est remplacée par `? bash: ls -la` et les mêmes quatre touches y répondent ; **Échap** équivaut à `r`.
- **Dans un éditeur (`mm -acp`, Zed).** Le dialogue de permission de l'éditeur propose *Allow once*, *Allow bash for this session*, *Reject* et *Never allow bash in this session*. Avec `yolo: true`, aucun dialogue n'est affiché.
- **Pour une seule exécution, sans modifier le fichier.** `AGENT_YOLO=false mm agent.yaml` (ou `AGENT_YOLO=true` pour sauter les questions une fois). Dans un éditeur, mettez la variable dans les réglages `env` de l'agent, à côté d'`AGENT_CONFIG`.
- **Avec d'autres agents (`mmConfigs`).** L'agent que vous avez lancé décide pour les agents qu'il interroge. Avec `yolo: false` dans votre configuration principale, un appel à `bash` fait par `/ask-jan` vous est demandé, intitulé `jan · bash: …`, et `s` mémorise `jan/bash`, pas votre propre `bash`. Le `yolo` écrit dans le fichier de Jan est ignoré tant qu'il répond à un `/ask`.
- **Dans un script (`mm -p`, `mm --ask`).** Personne ne peut y répondre : avec `yolo: false`, les appels qui demanderaient sont refusés, et stderr le dit une fois : `[yolo is off and this mode cannot ask: …]`. Gardez `yolo: true` pour les exécutions scriptées, ou retirez les outils que vous ne voulez pas avec `bashTool: false` / `editTools: false`.
- **Outils MCP.** Avec `yolo: false`, chaque outil MCP demande aussi. Avec `yolo: true`, chaque serveur MCP garde ses propres `permissions` (`ask` par défaut, `auto` pour s'exécuter sans demander).
- **Une ancienne configuration avec `permissions: ask`.** Elle fonctionne encore et signifie `yolo: false` ; la bannière avertit que la clé est obsolète. Remplacez-la par `yolo: false`.

## Voir aussi

- Chaque clé et sa valeur par défaut : [référence de la configuration](../reference/configuration.md) (`yolo`, `permissions`).
- Ce que montre chaque façade : [référence de la CLI](../reference/cli.md), [référence ACP](../reference/acp.md#requêtes-sessionrequest_permission-envoyées).
- Pourquoi yolo est la valeur par défaut et pourquoi l'agent qui interroge l'emporte : [Le mode yolo et les permissions](../explanation/yolo-and-permissions.md).