Telegram
Statut : prêt pour la production pour les DM de bot + groupes via grammY. Le long polling est le mode par défaut ; le mode webhook est optionnel.
Appairage
La politique DM par défaut pour Telegram est l'appairage.
Dépannage des canaux
Diagnostics et procédures de réparation inter-canaux.
Configuration de la passerelle
Modèles et exemples complets de configuration des canaux.
Configuration rapide
Étape 1 : Créer le token du bot dans BotFather
Ouvrez Telegram et discutez avec @BotFather (vérifiez que le pseudo est exactement @BotFather). Exécutez /newbot, suivez les invites et sauvegardez le token.
Étape 2 : Configurer le token et la politique DM
{
channels: {
telegram: {
enabled: true,
botToken: "123:abc",
dmPolicy: "pairing",
groups: { "*": { requireMention: true } },
},
},
}
Fallback d'environnement : TELEGRAM_BOT_TOKEN=... (compte par défaut uniquement). Telegram n'utilise pas openclaw channels login telegram ; configurez le token dans config/env, puis démarrez la passerelle.
Étape 3 : Démarrer la passerelle et approuver le premier DM
openclaw gateway
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Les codes d'appairage expirent après 1 heure.
Étape 4 : Ajouter le bot à un groupe
Ajoutez le bot à votre groupe, puis définissez channels.telegram.groups et groupPolicy pour correspondre à votre modèle d'accès.
ℹ️ L'ordre de résolution du token tient compte du compte. En pratique, les valeurs de configuration priment sur le fallback d'environnement, et
TELEGRAM_BOT_TOKENne s'applique qu'au compte par défaut.
Paramètres côté Telegram
Contrôle d'accès et activation
curl "https://api.telegram.org/bot<bot_token>/getUpdates"Comportement d'exécution
- Telegram est détenu par le processus de la passerelle.
- Le routage est déterministe : les réponses entrantes de Telegram reviennent vers Telegram (le modèle ne choisit pas les canaux).
- Les messages entrants sont normalisés dans l'enveloppe de canal partagée avec les métadonnées de réponse et les espaces réservés pour les médias.
- Les sessions de groupe sont isolées par ID de groupe. Les sujets de forum ajoutent
:topic:<threadId>pour garder les sujets isolés. - Les messages DM peuvent porter un
message_thread_id; OpenClaw les route avec des clés de session sensibles au fil de discussion et préserve l'ID du fil pour les réponses. - Le long polling utilise grammY runner avec un séquencement par chat/par fil de discussion. La concurrence globale du récepteur runner utilise
agents.defaults.maxConcurrent. - L'API Bot de Telegram ne prend pas en charge les accusés de lecture (
sendReadReceiptsne s'applique pas).
Référence des fonctionnalités
Dépannage
Plus d'aide : Dépannage des canaux.
Pointeurs de référence de configuration Telegram
Référence principale :
channels.telegram.enabled: activer/désactiver le démarrage du canal.channels.telegram.botToken: token du bot (BotFather).channels.telegram.tokenFile: lire le token depuis un chemin de fichier.channels.telegram.dmPolicy:pairing | allowlist | open | disabled(par défaut : pairing).channels.telegram.allowFrom: liste autorisée DM (ID utilisateur Telegram numériques).allowlistnécessite au moins un ID d'expéditeur.opennécessite"*".openclaw doctor --fixpeut résoudre les entrées héritées@usernameen ID et peut récupérer les entrées de liste autorisée à partir des fichiers de stockage d'appairage dans les flux de migration de liste autorisée.channels.telegram.actions.poll: activer ou désactiver la création de sondages Telegram (par défaut : activé ; nécessite toujourssendMessage).channels.telegram.defaultTo: cible Telegram par défaut utilisée par la CLI--deliverlorsqu'aucun--reply-toexplicite n'est fourni.channels.telegram.groupPolicy:open | allowlist | disabled(par défaut : allowlist).channels.telegram.groupAllowFrom: liste autorisée des expéditeurs de groupe (ID utilisateur Telegram numériques).openclaw doctor --fixpeut résoudre les entrées héritées@usernameen ID. Les entrées non numériques sont ignorées au moment de l'authentification. L'authentification de groupe n'utilise pas le fallback de stockage d'appairage DM (2026.2.25+).- Prépondérance multi-compte :
- Lorsque deux ID de compte ou plus sont configurés, définissez
channels.telegram.defaultAccount(ou incluezchannels.telegram.accounts.default) pour rendre le routage par défaut explicite. - Si aucun n'est défini, OpenClaw revient au premier ID de compte normalisé et
openclaw doctoravertit. channels.telegram.accounts.default.allowFrometchannels.telegram.accounts.default.groupAllowFroms'appliquent uniquement au comptedefault.- Les comptes nommés héritent de
channels.telegram.allowFrometchannels.telegram.groupAllowFromlorsque les valeurs au niveau du compte ne sont pas définies. - Les comptes nommés n'héritent pas de
channels.telegram.accounts.default.allowFrom/groupAllowFrom.
- Lorsque deux ID de compte ou plus sont configurés, définissez
channels.telegram.groups: valeurs par défaut par groupe + liste autorisée (utilisez"*"pour les valeurs par défaut globales).channels.telegram.groups.<id>.groupPolicy: remplacement par groupe pour groupPolicy (open | allowlist | disabled).channels.telegram.groups.<id>.requireMention: restriction de mention par défaut.channels.telegram.groups.<id>.skills: filtre de compétences (omis = toutes les compétences, vide = aucune).channels.telegram.groups.<id>.allowFrom: remplacement de liste autorisée des expéditeurs par groupe.channels.telegram.groups.<id>.systemPrompt: invite système supplémentaire pour le groupe.channels.telegram.groups.<id>.enabled: désactiver le groupe lorsquefalse.channels.telegram.groups.<id>.topics.<threadId>.*: remplacements par sujet (champs de groupe +agentIdspécifique au sujet).channels.telegram.groups.<id>.topics.<threadId>.agentId: router ce sujet vers un agent spécifique (remplace le routage au niveau du groupe et des liaisons).channels.telegram.groups.<id>.topics.<threadId>.groupPolicy: remplacement par sujet pour groupPolicy (open | allowlist | disabled).- `ch