Bots Telegram — Guide utilisateur

Arc OS utilise une architecture de bots Telegram à deux niveaux : un Master Bot gère tous les projets, et chaque projet obtient son propre Child Bot avec des workers AI.

Vue d'ensemble de l'architecture

Le système repose sur deux niveaux :

Comment ça fonctionne

Canal Telegram :
  Utilisateur → Telegram → Child Bot → Claude CLI → Réponse → Telegram

CRM Dashboard :
  Utilisateur → CRM → crm_inbox.jsonl → Child Bot (polling 500ms) → Claude CLI → Réponse → Telegram + CRM

Le Child Bot interroge en permanence le fichier crm_inbox.jsonl toutes les 500ms, donc les messages du CRM Dashboard sont traités presque instantanément.


Commandes du Master Bot

Commande Description
/start Afficher la liste des commandes disponibles
/status Statut de tous les projets : threads actifs, uptime, utilisation des ressources
/list Liste de tous les child bots avec indicateurs de santé (🟢/🔴)
/health Matrice de santé : état Bot, Bridge, session tmux pour chaque projet
/deploy <name|all> Git pull + redémarrage pour un projet spécifique ou tous à la fois
/new_project <name> Lancer l'onboarding d'un nouveau projet (création du child bot, tmux, configuration)
/remove_project <name> Supprimer un projet avec confirmation (bouton inline "Oui, supprimer")
/emergency_stop Arrêt en cascade à 3 niveaux : SIGINT → /exit → SIGKILL. Arrête tout.
/watchdog Monitoring des child bots : redémarrage automatique si le bot ne répond pas
/cancel Annuler l'opération active en cours (déploiement, onboarding, etc.)

Commandes du Child Bot

Préfixes principaux

Préfixe Worker Modèle Accès
/c <message> Consultant Sonnet Read-only, conseiller stratégique
/d <message> Developer Opus Accès complet aux fichiers et au terminal
/w:<worker_id> <message> Worker personnalisé Selon la configuration Défini dans workers_registry.json
(sans préfixe) Worker actif Par défaut — Consultant

Exemple :

/c Analyse l'architecture du module auth
/d Corrige le bug dans le formulaire de login
/w:sentinel Effectue un audit de sécurité des derniers changements

Commandes d'information

Commande Description
/ping Vérification de santé du bot + uptime
/thread Taille de l'historique de conversation actuel (nombre de messages)
/quality Métriques de qualité : nombre d'appels, feedback (👍/👎), durée moyenne de réponse
/learnings Liste des règles de correction accumulées (learnings)
/specs Liste des spécifications avec statuts (draft / review / approved)
/approve <id> Approuver une spécification par ID
/reject <id> [reason] Rejeter une spécification avec une raison optionnelle

Boutons inline

Sous la réponse du worker

Après chaque réponse du worker AI, trois rangées de boutons apparaissent :

Rangée 1 — Contrôle du processus Claude :

Bouton Action
🛑 STOP Tue le processus Claude (SIGKILL). Utilise ça si la réponse part dans la mauvaise direction ou est bloquée.
⏸️ PAUSE Met en pause le processus Claude (SIGSTOP). Utile pour attendre quelque chose avant de continuer.
▶️ RESUME Reprend le processus mis en pause (SIGCONT).

Rangée 2 — Contexte et feedback :

Bouton Action
💡 BTW Mode collecte de contexte supplémentaire. Tes prochains messages rejoignent la file d'attente et seront injectés dans le prochain prompt GSD.
🛠️ Fix It Relance la tâche avec des corrections automatiques basées sur la réponse précédente.
👍 Feedback positif — enregistré dans les métriques de qualité.
👎 Feedback négatif — crée automatiquement une règle de learning qui sera injectée dans chaque prochain prompt du worker.

Rangée 3 — Navigation :

Bouton Action
🏷️ Skills Afficher la liste des skills utilisées pour cette réponse.
📊 View Log Ouvrir le log CRM de cette session.

Boutons du Master Bot

Sur la fiche de chaque projet dans le Master Bot, des boutons sont disponibles :


Contexte et mémoire


Changement de worker

Chaque Child Bot supporte plusieurs workers. Le worker actif est sauvegardé dans le fichier active_role.json.

Les messages sans préfixe vont au worker actif courant. Si tu as envoyé /d Corrige le bug, Developer devient actif — les prochains messages sans préfixe iront aussi à Developer.


Lien avec le CRM

Telegram et le CRM Dashboard sont deux canaux vers le même worker :

Cela signifie que tu peux démarrer une conversation dans Telegram, la continuer dans le CRM, et inversement — le contexte est conservé.


Dépannage

Problème Solution
Le bot ne répond pas Vérifie /health dans le Master Bot. Si le child bot est 🔴 — clique sur Restart ou utilise /deploy <name>. Vérifie /watchdog pour le monitoring automatique.
Temps de réponse long Bascule vers Consultant (/c) — il utilise Sonnet, plus rapide qu'Opus. Pour les questions simples, c'est suffisant.
Message tronqué Telegram a une limite de 4 096 caractères par message. Le bot divise automatiquement les longues réponses en parties : [1/3], [2/3], [3/3].
Le bot répond lentement via le CRM Vérifie que la session tmux du child bot est active : /health doit afficher tmux 🟢.
👎 ne crée pas de learning Assure-toi d'avoir appuyé sur 👎 directement sous la réponse du worker, pas sous un message système.