bots-garden/sidekickspublic Fork
⑂ feature/clear-history
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 6713ff0 · on feature/clear-history · k33g · 4d ago
permissions-et-confiance.md · 31 lines · 3.0 KBmarkdown
Blame HistoryOpen raw

Permissions et confiance — explication

De quoi s'agit-il ?

Un agent comme Riker peut exécuter des commandes et modifier des fichiers sur votre ordinateur. ACP lui permet de demander d'abord : il décrit l'outil qu'il veut utiliser et propose des options (autoriser une fois, toujours, refuser une fois, jamais). Sidekicks transforme cette demande en carte dans la conversation. Cette page explique pourquoi la carte est faite ainsi ; les décisions sont dans l'ADR 0004 (en anglais).

Des mots simples avant les détails techniques

La demande de l'agent est technique : un type d'outil, un titre comme bash: rm -f *.tmp, une entrée JSON. Une personne qui n'est pas développeuse a besoin d'une phrase — « Riker veut exécuter une commande sur votre ordinateur » — et du seul détail qui compte : la commande, ou le fichier. Le JSON reste accessible sous « Détails techniques ». Les commandes qui peuvent détruire des données (supprimer, déplacer, écraser un fichier, réinitialiser un dépôt git) portent un avertissement rouge ; la liste est volontairement courte, car un avertissement partout est un avertissement que personne ne lit.

Pourquoi « jamais » passe avant « refuser une fois »

Les petits modèles locaux n'acceptent pas un refus. Pendant le spike ACP, Riker refusé une fois a réessayé quarante fois ; avec Sidekicks, refusé « jamais », il a cessé de demander mais a continué d'appeler l'outil, que mm refusait alors à chaque fois. D'où :

  • « Ne plus jamais proposer ici » est proposé avant « Refuser une fois » : il fait cesser les questions pour le reste de la conversation ;
  • la carte a toujours un bouton Arrêter, et la conversation aussi ;
  • quand trois appels d'outil d'affilée ont échoué, la conversation dit que l'agent tourne en rond et propose de l'arrêter.

La demande appartient à sa conversation

La carte apparaît dans la conversation de l'agent qui demande, pas dans une fenêtre par-dessus tout : les autres conversations continuent, et la question reste à côté de ce qui l'a amenée. Arrêter l'agent répond « annulé » à ses questions en attente, comme ACP l'exige.

Alternatives écartées

  • Une fenêtre modale : elle bloque toutes les conversations pour la question d'un seul agent.
  • Toujours autoriser en test et en démo : le réglage yolo des agents le fait côté agent ; Sidekicks montre ce qu'on lui demande, rien de plus.
  • Deviner le danger de chaque commande : une longue liste de motifs donne de fausses alertes (grep rm notes.txt) ; Sidekicks ne regarde que le programme en position de commande.

Lien avec le reste

La carte est dessinée dans la maquette 4. Les événements qui transportent les demandes sont dans la référence. Ce que l'agent a le droit de faire au départ relève de sa propre configuration (yolo, bashTool, editTools de mm), pas de Sidekicks.

 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
# Permissions et confiance — explication

## De quoi s'agit-il ?

Un agent comme Riker peut exécuter des commandes et modifier des fichiers sur votre ordinateur. ACP lui permet de demander d'abord : il décrit l'outil qu'il veut utiliser et propose des options (autoriser une fois, toujours, refuser une fois, jamais). Sidekicks transforme cette demande en carte dans la conversation. Cette page explique pourquoi la carte est faite ainsi ; les décisions sont dans l'[ADR 0004](../../adr/0004-conversations.md) (en anglais).

## Des mots simples avant les détails techniques

La demande de l'agent est technique : un type d'outil, un titre comme `bash: rm -f *.tmp`, une entrée JSON. Une personne qui n'est pas développeuse a besoin d'une phrase — « Riker veut exécuter une commande sur votre ordinateur » — et du seul détail qui compte : la commande, ou le fichier. Le JSON reste accessible sous « Détails techniques ». Les commandes qui peuvent détruire des données (supprimer, déplacer, écraser un fichier, réinitialiser un dépôt git) portent un avertissement rouge ; la liste est volontairement courte, car un avertissement partout est un avertissement que personne ne lit.

## Pourquoi « jamais » passe avant « refuser une fois »

Les petits modèles locaux n'acceptent pas un refus. Pendant le spike ACP, Riker refusé une fois a réessayé quarante fois ; avec Sidekicks, refusé « jamais », il a cessé de demander mais a continué d'appeler l'outil, que mm refusait alors à chaque fois. D'où :

- « Ne plus jamais proposer ici » est proposé avant « Refuser une fois » : il fait cesser les questions pour le reste de la conversation ;
- la carte a toujours un bouton **Arrêter**, et la conversation aussi ;
- quand trois appels d'outil d'affilée ont échoué, la conversation dit que l'agent tourne en rond et propose de l'arrêter.

## La demande appartient à sa conversation

La carte apparaît dans la conversation de l'agent qui demande, pas dans une fenêtre par-dessus tout : les autres conversations continuent, et la question reste à côté de ce qui l'a amenée. Arrêter l'agent répond « annulé » à ses questions en attente, comme ACP l'exige.

## Alternatives écartées

- **Une fenêtre modale** : elle bloque toutes les conversations pour la question d'un seul agent.
- **Toujours autoriser en test et en démo** : le réglage `yolo` des agents le fait côté agent ; Sidekicks montre ce qu'on lui demande, rien de plus.
- **Deviner le danger de chaque commande** : une longue liste de motifs donne de fausses alertes (`grep rm notes.txt`) ; Sidekicks ne regarde que le programme en position de commande.

## Lien avec le reste

La carte est dessinée dans la [maquette 4](../../design/04-permission.png). Les événements qui transportent les demandes sont dans la [référence](../reference/agents-et-evenements.md). Ce que l'agent a le droit de faire au départ relève de sa propre configuration (`yolo`, `bashTool`, `editTools` de mm), pas de Sidekicks.