Anatomie d'une config
station: {...} # STATION — qui elle est : id, kind (product | process), guidance, délégation,
# et ses fournisseurs d'identité (`station.identity.providers`)
global: {...} # ce qui vaut partout : langue, devise, fuseau
texts: {...} # les phrases de refus et de retenue de Convoy, réécrites par langue
apis: [...] # SOURCES — les outils, et pour chaque opération : lecture ou écriture, risque
# CONTEXTE — les rooms et les sessions : la plateforme les tient, sans clé
profiles: {...} # AUTH — QUI agit : visiteur, client vérifié, agent d'entreprise, manager
policies: {...} # POLITIQUES — réutilisables : rule (déterministes, budgets compris)
# ou smart (un modèle et un seuil), citées partout
inboxes: {...} # où une PERSONNE est appelée à décider, dans quel délai
skills: [...] # CAPACITÉS — les compétences : invoke, kinds, present, select, submit
playbooks: [...] # les parcours : des tâches, leur ordre, leur submit
events: {...} # inbound (les faits reçus), emits (ceux qu'elle publie), outbound
automations: [...] # quand un événement arrive, si une condition tient, alors démarrer
tests: [...] # VÉRIFIER — TESTER LA STATION : les comportements promis, sans modèle,
# rejoués avant chaque mise en production
agent: {...} # AGENT — l'agent que Convoy déploie, un client de la station comme un autre,
# et ses portails (web, Teams, Slack, WhatsApp)
evals: [...] # TESTER L'AGENT : ce qu'il fait d'une demande, mesuré sur plusieurs essais
Le plan du guide
| page | ce qu'on y règle | |
|---|---|---|
| 1 | Anatomie | la forme du fichier |
| 2 | Station | station, global, texts |
| 3 | Sources | apis : les APIs et les intégrations |
| 4 | Contexte | ce que la plateforme tient pour vous : rooms, sessions, sélection, historique |
| 5 | Auth | l'identité, les profils |
| 6 | Politiques | policies, les gardes, les permissions, inboxes, les données, les budgets |
| 7 | Capacités | skills, playbooks, events, automations, et les politiques possibles sur chacune |
| 8 | Agent et portails | agent |
| 9 | Vérifier et publier | tests, evals, la mise en production |
Trois portées dans un fichier
globals'applique partout : la devise deglobalest celle de tous les champs de typeprice, la langue celle de toutes les réponses.- La station — de
stationàtests— vaut pour tout agent : Claude, ChatGPT, l'agent d'une entreprise, et le nôtre. Une règle que tout agent doit respecter s'écrit ici : c'est une politique. agentdécrit notre agent : sa voix, ses consignes, ses portails. Il consomme la station par la même porte et sous les mêmes règles que les autres. Sesevalsle suivent : ils testent notre agent, pas la station. Voir L'agent et ses portails et Vérifier et publier.
Il n'y a pas de bloc storefront : la station n'est pas une boutique, et le site d'un tenant
n'est qu'un des portails de son agent.
Tout est facultatif sauf station, global, apis et skills. Sans agent, la station
n'est joignable que par les agents des autres, par MCP. Une station qui ne déclare ni profils,
ni politiques, ni playbooks se comporte comme aujourd'hui : un humain soumet, pas de modèle.
Les règles du fichier
- Chaque clé est lue, chaque référence vérifiée au chargement. Voir Vérifier et publier.
- Tout est fermé par défaut : une opération du tenant n'est appelée que pour les profils qui l'ont reçue dans
grants. - Ce qui est en dessous de la station ne peut que resserrer : une skill, un playbook, une tâche,
un profil, une sous-identité ajoutent des règles ; ils n'en retirent jamais. Seuls les
grantsouvrent. - Les références nomment des choses de la config, jamais les opérations du tenant :
$read[facture](une tâche),$submitted[geste.pay](une tâche et l'appel nommé de sa skill),$submitted[order](un appel du playbook). Un renommage chez le tenant ne casse rien.
L'ordre d'écriture
station et global → apis → skills → playbooks → profiles et policies → events et
automations → tests → agent. On écrit d'abord ce que la station sait faire, puis qui a le
droit de le faire.