DocumentationConfiguration
Configuration
Les surfaces externes sont éteintes par défaut. Vous les activez en écrivant leur fichier dans le répertoire d’état privé du daemon.
Le principe
- Les fichiers sont écrits à la main par l’opérateur, dans le répertoire d’état privé du daemon.
- Fichier absent : le daemon ne construit aucun client pour cette surface et le dit.
- Fichier présent mais invalide ou mal protégé : le daemon refuse de démarrer, au lieu de se dégrader en silence. Deux exceptions : un
egress-destinationsinvalide vaut une liste vide (toute exécution passant par le broker est alors refusée), etprovidern’est lu qu’au lancement de chaque exécution. - Quelques portes sont des valeurs par défaut plutôt que des interrupteurs : la mémoire durable, la politique d’approbation et le mode shadow fonctionnent sans fichier.
Les surfaces
| Surface | Fichier | Ce qu’elle fait |
|---|---|---|
| Telegram | telegram/bot.conf | Interroge l’API en long polling et répond aux commandes opérateur. Sans ligne allow= ni admin=, le jeton est validé puis abandonné et aucun client n’est construit. |
| Slack | slack/slack.conf | Un worker Socket Mode qui lit les canaux, publie des messages, ouvre des modales et publie une vue App Home. |
| GitHub | github/github.conf | Crée des issues, commente, édite des checklists et applique des mutations de gestion du travail, chacune activée séparément par une ligne action=, avec un marqueur d’idempotence vérifié avant création. Le schéma v1 est en lecture seule. |
| Intake support | support/fleet.conf | Récupère les tickets dans un stock durable et rédige des brouillons. L’intake n’envoie rien : un email ou un job ne part que sur intention explicite de l’opérateur. |
| Exécution fournisseur | provider | Compose un document de lancement borné et exécute un vrai processus fournisseur à travers tout le sandbox. Lu au lancement de chaque exécution. |
| Sortie réseau | egress-destinations | Ouvre un broker CONNECT en loopback par exécution, sur un port éphémère attribué par le noyau, limité aux couples hôte et port listés. |
| Auto-amélioration | improvement-lab.json | Exécute un agent épinglé et les vérifications standard dans un worktree, puis ouvre une pull request ; une approbation administrateur liée par HMAC autorise la fusion et l’activation. Sans ce fichier, seule l’implémentation est désactivée : la rédaction et la revue du plan restent possibles. |
| Mémoire durable | memory/memory.conf | Fonctionne sans fichier, sous le tenant par défaut primary. Ne migre jamais des lignes écrites sous un autre tenant. |
Autres fichiers lus par le daemon
| Fichier | Rôle |
|---|---|
approvals/approvals.conf | Politique d’approbation, rechargée à chaud par SIGHUP. Sans fichier, l’exigence par défaut s’applique. |
mcp/servers.json | Serveurs MCP disponibles pour les actions (voir docs/operations/mcp-servers.md). |
manage/manage.conf, manage/platform.conf | Connexion à l’instance Manage pour le worker de jobs. |
shadow/shadow.conf | Mode shadow par scope. Sans fichier, tous les scopes sont en mode principal. |
share/share.conf, purge/purge.conf | Commandes share et purge. |
knowledge/catalog.json | Catalogue de connaissances locales. |
platform-v2-policy.json et registres platform-v2-* | Hôte de la plateforme v2. |
L’identité de charge subordonnée n’est pas un fichier : c’est une option par plan du document de lancement (identity=subordinate).
Telegram
telegram/bot.conf est encadré par un en-tête et un terminateur, doit être un fichier régulier réservé au propriétaire et de taille bornée, et le jeton est validé contre son bot_id. Une ligne allow= nomme les utilisateurs autorisés, une ligne admin= les administrateurs ; l’une ou l’autre suffit à activer le bot.
| Statut | Situation |
|---|---|
disabled_no_client | Aucun fichier de configuration. |
lease_owned_no_client | Le bail du bot est détenu, mais sans ligne allow= ni admin= : le jeton est abandonné. |
polling_live | Un worker interroge l’API sous ce bail. |
Un expéditeur hors liste est refusé sans que son message soit lu. /help, /status et /runs sont ouverts aux utilisateurs autorisés. /run, /work, /cancel, /approve et /deny sont réservés aux administrateurs : /cancel annule réellement une exécution, /approve et /deny tranchent une décision en attente. Le bot propose aussi /agents, /job, /tickets, /ticket, /slack, /say, les verbes de mémoire (/remember, /forget, /memory), /new, /mute, /archive et /admin. Les boutons inline sont acquittés.
Destinations réseau
egress-destinations se lit comme une liste d’autorisation de sécurité, et c’en est une. C’est aussi la seule chose qui relie une exécution au fournisseur qu’elle doit joindre. Chaque ligne nomme un hôte, un port et une portée, public ou loopback, dans la limite de 16 lignes et 8 Kio :
chatgpt.com 443 public
developers.openai.com 443 publicLa politique est chargée une seule fois, au démarrage du daemon : une modification s’applique à la génération suivante, pas à la prochaine exécution (voir Exploitation pour reload). Sans fichier valide, tout document passant par le broker est refusé. automonique doctor signale une route manquante avec le constat provider.route-unavailable.