Un bot, plusieurs tâches : guide complet Workspace x Telegram

4 min read

Vous avez déjà demandé à votre assistant « organise le journal d'aujourd'hui » et le voir toucher aux fichiers de votre projet pro ?

C'est ce qui se passe quand les espaces de travail ne sont pas bien configurés. Ce guide corrige ça en une fois.

Ce que vous allez apprendre

  • Comprendre le flux complet : groupe → assistant → espace de travail
  • Initialiser plusieurs espaces de travail
  • Configurer Agents + Bindings de bout en bout
  • Vérifier que la configuration fonctionne vraiment

L'idée d'ensemble

L'architecture cible est simple :

Groupe Telegram A  →  Assistant A  →  Espace A (touche uniquement ces fichiers)
Groupe Telegram B  →  Assistant B  →  Espace B (touche uniquement ces fichiers)
Messages directs   →  Assistant principal → Espace principal

Pour y arriver, trois étapes : créer les espaces → définir les agents → définir les bindings.


Étape 1 : Créer les espaces de travail

Chaque assistant a besoin de son propre répertoire. Initialisez-les avec :

openclaw setup --workspace "~/.openclaw/workspace-main"
openclaw setup --workspace "~/.openclaw/workspace-project-a"
openclaw setup --workspace "~/.openclaw/workspace-project-b"

Chaque espace reçoit automatiquement les fichiers nécessaires (AGENTS.md, SOUL.md, IDENTITY.md, etc.).

💡 Si le répertoire n'existe pas encore, la commande le crée. Si vous avez cloné un espace existant depuis Git, vous pouvez sauter l'initialisation et pointer directement le chemin dans la Config.


Étape 2 : Configurer Agents et Bindings

Ouvrez l'interface de contrôle → Config → Raw JSON et ajoutez la structure suivante.

Scénario A : Même bot, groupes différents, espaces différents

{
  "agents": {
    "list": [
      { "id": "main",      "name": "Principal",      "workspace": "~/.openclaw/workspace-main",      "default": true },
      { "id": "project-a", "name": "Projet A", "workspace": "~/.openclaw/workspace-project-a" },
      { "id": "project-b", "name": "Projet B", "workspace": "~/.openclaw/workspace-project-b" }
    ]
  },
  "bindings": [
    { "agentId": "project-a", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-1001234567890" } } },
    { "agentId": "project-b", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-1009876543210" } } },
    { "agentId": "main",      "match": { "channel": "telegram" } }
  ],
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "votre token de bot",
      "dmPolicy": "pairing",
      "groups": { "*": { "requireMention": true } }
    }
  }
}

Comment trouver l'ID du groupe ?

  1. Envoyez un message dans le groupe
  2. Exécutez openclaw logs --follow et cherchez chat.id
  3. Ou transférez le message à @userinfobot

Scénario B : Comptes bot différents, espaces différents

Avec plusieurs tokens de bot, chaque bot peut correspondre à son propre assistant et espace :

{
  "agents": {
    "list": [
      { "id": "main",   "name": "Bot principal",   "workspace": "~/.openclaw/workspace-main",   "default": true },
      { "id": "alerts", "name": "Bot alertes", "workspace": "~/.openclaw/workspace-alerts" }
    ]
  },
  "bindings": [
    { "agentId": "main",   "match": { "channel": "telegram", "accountId": "default" } },
    { "agentId": "alerts", "match": { "channel": "telegram", "accountId": "alerts" } }
  ],
  "channels": {
    "telegram": {
      "enabled": true,
      "accounts": {
        "default": { "botToken": "123456:ABC...", "dmPolicy": "pairing" },
        "alerts":  { "botToken": "987654:XYZ...", "dmPolicy": "allowlist", "allowFrom": ["tg:votreTelegramId"] }
      }
    }
  }
}

⚠️ Avec plusieurs comptes, ne gardez pas de botToken au niveau racine. Tout doit être dans accounts.


Étape 3 : Enregistrer et vérifier

Depuis l'interface web : cliquez sur Save / Apply sur la page Config.

Si vous éditez le fichier directement : enregistrez ~/.openclaw/openclaw.json. La Gateway recharge en général à chaud, mais en cas de doute, redémarrez-la :

openclaw gateway

Vérification

  • Envoyez un message dans chaque groupe Telegram et confirmez que le bon assistant répond
  • Exécutez openclaw doctor pour un contrôle de santé rapide

Points à retenir

Objectif Comment
Créer un nouvel espace openclaw setup --workspace "chemin"
Groupe différent → espace différent Faire correspondre peer: { kind: "group", id: "groupId" } dans bindings
Bot différent → espace différent Utiliser channels.telegram.accounts avec accountId dans bindings
Les Bindings semblent ignorés Mettre les règles spécifiques en premier ; c'est premier match gagnant

Lectures complémentaires