Discord
Exécutez votre agent ZeroClaw en tant que bot Discord. Ce guide vous accompagne clic par clic, aucune expérience préalable avec les bots n’est nécessaire. À la fin, vous aurez un bot installé sur votre serveur qui répond lorsque les gens lui parlent.
Qui peut parler à l’agent
Les expéditeurs entrants sont filtrés par rapport au peer set résolu pour l’agent lié, issu de la configuration peer_groups à laquelle l’agent appartient. La correspondance supprime le @ initial et est insensible à la casse par rapport à l’identifiant d’expéditeur natif du canal. Un ensemble vide refuse tout le monde ; un ensemble contenant "*" accepte n’importe qui ; sinon, seuls les pairs externes listés (et les agents pairs) sont acceptés. Ceci est distinct de l’appairage de la passerelle (gateway.require_pairing), qui authentifie les clients HTTP/WebSocket, et non les expéditeurs des canaux de discussion.
Un groupe de pairs pour discord définit channel sur discord, liste les expéditeurs autorisés dans external_peers (pour discord, l’identifiant utilisateur Discord (snowflake) ; ["*"] accepte tout le monde), nomme éventuellement des agents pairs pour la répartition inter-agents, une liste de blocage ignore, et une output_modality (mirror, voice ou text). Consultez Peer Groups pour la référence des champs.
Où définir ce paramètre :
Tableau de bord de la passerelle
Ouvrez /config/peer_groups dans le tableau de bord web.
zerocode
Dans le volet Config, sous Peer groups.
Démarrage rapide
Cinq étapes : créez le bot, copiez son token, activez deux interrupteurs, invitez-le et démarrez ZeroClaw.
1. Créer le bot
- Accédez au Portail des développeurs Discord.
- Cliquez sur New Application, donnez-lui un nom, puis cliquez sur Create.
- Dans la barre latérale gauche, cliquez sur Bot.
- Cliquez sur Reset Token, puis sur Copy. Cette longue chaîne de caractères est votre
bot_token. Conservez-la en lieu sûr pour l’étape 3, vous ne pourrez plus la consulter par la suite (seulement la réinitialiser).
Le jeton du bot est un mot de passe pour votre bot. Toute personne qui le possède peut contrôler votre bot. Ne le collez jamais dans une discussion publique, ne le partagez jamais dans une capture d’écran et ne le validez jamais dans git.
2. Activez les deux interrupteurs dont le bot a besoin
Toujours sur la page Bot, faites défiler jusqu’à Privileged Gateway Intents et activez les deux options suivantes :
- Message Content Intent pour que le bot puisse lire ce que les utilisateurs écrivent.
- Intention Membres du Serveur (Server Members Intent) afin qu’il puisse voir qui se trouve sur le serveur.
Cliquez sur Save Changes. Si vous sautez cette étape, le bot se connecte mais ne voit jamais aucun message, ce qui est la cause la plus fréquente du problème « mon bot ne fait rien ».
3. Informez ZeroClaw de l’existence du bot
Placez le jeton de l’étape 1 dans votre configuration. Le jeton est un secret, vous devez donc le définir via une interface qui le chiffre plutôt que de le saisir directement dans config.toml :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord dans le tableau de bord web.
zerocode
Dans le volet Config, sous Channels.
channels.discord.<alias>.bot_tokenest un secret. Stocké chiffré, jamais en clair dansconfig.toml. Définissez-le via l’une de ces méthodes, qui chiffrent à l’écriture :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez-y le champ channels.discord.<alias>.bot_token.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.bot_token (la saisie est masquée).
zeroclaw config
zeroclaw config set channels.discord.<alias>.bot_token # demande une saisie masquée, stocke de manière chiffrée
4. Invitez le bot sur votre serveur
- De retour dans le Developer Portal, ouvrez OAuth2 -> URL Generator.
- Sous Scopes, cochez bot.
- Sous Bot Permissions, cochez au moins Send Messages, Read Message History et View Channels.
- Copiez l’URL en bas, ouvrez-la dans votre navigateur, choisissez votre serveur, puis cliquez sur Authorize.
Le bot apparaît maintenant dans votre liste de membres (hors ligne jusqu’à ce que vous démarriez ZeroClaw).
5. Démarrer et tester
Démarrez ZeroClaw (zeroclaw service restart ou zeroclaw daemon), puis envoyez un message dans un canal visible par le bot. Il devrait répondre. Si ce n’est pas le cas, passez à la section Dépannage.
Configuration
La liste complète des champs, dérivée du schéma en production. La plupart ont des valeurs par défaut raisonnables ; pour un bot basique, vous ne définissez jamais que bot_token.
approval_timeout_secs
Nombre de secondes d’attente pour l’approbation de l’opérateur sur les outils always_ask avant le refus automatique.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.approval_timeout_secs.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.approval_timeout_secs.
zeroclaw config
zeroclaw config set channels.discord.<alias>.approval_timeout_secs <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__approval_timeout_secs=
archive
Lorsque la valeur est true, le canal ouvre un backend de mémoire SQLite annexe discord.db, archive chaque message non-bot qu’il voit, et enregistre l’outil discord_search auprès de celui-ci. Valeur par défaut : false. Intégré depuis l’ancien bloc [channels.discord-history].
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.archive.
zerocode
Dans le panneau Config, définissez le champ channels.discord.<alias>.archive.
zeroclaw config
zeroclaw config set channels.discord.<alias>.archive <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__archive=
bot_token 🔑
Jeton bot Discord (depuis le Portail Développeur Discord). #[serde(default)] pour la même raison que TelegramConfig::bot_token : un jeton manquant doit être désérialisé en chaîne vide plutôt que de provoquer la suppression de l’alias par récupération ; validate_bot_token exige toujours un jeton réel dès que enabled = true.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.bot_token.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.bot_token.
zeroclaw config
zeroclaw config set channels.discord.<alias>.bot_token # entrée masquée, stockée chiffrée
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__bot_token=
channel_ids
IDs des canaux à surveiller. Vide = surveiller tous les canaux visibles par le bot. Utilisé par le sidecar d’archivage (lorsque archive = true) et par le filtre intra-canal lorsqu’il est défini.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.channel_ids.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.channel_ids.
zeroclaw config
zeroclaw config set channels.discord.<alias>.channel_ids <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__channel_ids=
draft_update_interval_ms
Intervalle minimal (ms) entre les modifications du message brouillon afin d’éviter les limites de débit. Utilisé uniquement lorsque stream_mode = "partial".
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.draft_update_interval_ms.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.draft_update_interval_ms.
zeroclaw config
zeroclaw config set channels.discord.<alias>.draft_update_interval_ms <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__draft_update_interval_ms=
excluded_tools
Outils exclus de la spécification d’outils de ce canal. Lorsque ce paramètre est défini, ces outils ne sont pas exposés au modèle lors des réponses via ce canal.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.excluded_tools.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.excluded_tools.
zeroclaw config
zeroclaw config set channels.discord.<alias>.excluded_tools <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__excluded_tools=
guild_ids
IDs de guildes (serveurs) auxquelles restreindre le bot. Vide = écoute sur toutes les guildes auxquelles le bot a été invité. Migré depuis l’ancien champ singulier guild_id.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.guild_ids.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.guild_ids.
zeroclaw config
zeroclaw config set channels.discord.<alias>.guild_ids <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__guild_ids=
intents_mask
Substitution du masque d’intention brut de la passerelle. Lorsqu’elle est définie, cette valeur exacte est envoyée dans IDENTIFY au lieu du masque dérivé : une échappatoire pour les opérateurs des déploiements en aval qui consomment les événements de la passerelle via des builds ou des forks personnalisés. L’opérateur en assume les conséquences : les bits privilégiés nécessitent toujours leurs bascules dans le Developer Portal, et la suppression des bits de base désactive la gestion des messages (un avertissement est journalisé). Non définie (par défaut) = dérive le masque à partir de la configuration des fonctionnalités du canal.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.intents_mask.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.intents_mask.
zeroclaw config
zeroclaw config set channels.discord.<alias>.intents_mask <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__intents_mask=
interrupt_on_new_message
Lorsque cette option est définie sur true, un message Discord plus récent du même expéditeur dans le même canal annule la requête en cours et démarre une nouvelle réponse en conservant l’historique.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.interrupt_on_new_message.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.interrupt_on_new_message.
zeroclaw config
zeroclaw config set channels.discord.<alias>.interrupt_on_new_message <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__interrupt_on_new_message=
listen_to_bots
Lorsque la valeur est true, traite les messages provenant d’autres bots (et pas seulement des humains). Le bot ignore toujours ses propres messages afin d’éviter les boucles de rétroaction.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.listen_to_bots.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.listen_to_bots.
zeroclaw config
zeroclaw config set channels.discord.<alias>.listen_to_bots <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__listen_to_bots=
mention_only
Lorsque la valeur est true, ne répond qu’aux messages qui @-mentionnent le bot. Les autres messages du serveur sont silencieusement ignorés.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.mention_only.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.mention_only.
zeroclaw config
zeroclaw config set channels.discord.<alias>.mention_only <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__mention_only=
multi_message_delay_ms
Délai (ms) entre l’envoi de chaque fragment de message en mode multi-message. Utilisé uniquement lorsque stream_mode = "multi_message".
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.multi_message_delay_ms.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.multi_message_delay_ms.
zeroclaw config
zeroclaw config set channels.discord.<alias>.multi_message_delay_ms <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__multi_message_delay_ms=
proxy_url
URL de proxy par canal (http, https, socks5, socks5h). Remplace le paramètre global [proxy] pour ce canal uniquement.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.proxy_url.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.proxy_url.
zeroclaw config
zeroclaw config set channels.discord.<alias>.proxy_url <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__proxy_url=
reaction_notifications
Quelles réactions entrantes enregistrer : off (par défaut : les événements de réaction ne sont même pas demandés à la passerelle), own (réactions aux messages du bot) ou all (réactions à tout message passant les filtres du canal). Les réactions enregistrées sont archivées dans discord.db lorsque archive est activé, et supprimées à nouveau lorsqu’un utilisateur retire sa réaction (les purges groupées, remove-all / remove-emoji, ne sont pas encore balayées). Un intents_mask défini remplace le masque dérivé : s’il omet les intents de réaction, rien n’est enregistré.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.reaction_notifications.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.reaction_notifications.
zeroclaw config
zeroclaw config set channels.discord.<alias>.reaction_notifications <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__reaction_notifications=
reply_min_interval_secs
Plancher de cadencement sortant par (canal, destinataire) en secondes. Plage : 0..=REPLY_MIN_INTERVAL_MAX_SECS (0 désactive).
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.reply_min_interval_secs.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.reply_min_interval_secs.
zeroclaw config
zeroclaw config set channels.discord.<alias>.reply_min_interval_secs <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__reply_min_interval_secs=
reply_queue_depth_max
Profondeur de la file d’attente de régulation sortante par (canal, destinataire). Plage : 0..=REPLY_QUEUE_DEPTH_CEILING. Lorsque reply_min_interval_secs > 0 et que cette valeur est 0, le wrapper de régulation substitue DEFAULT_REPLY_QUEUE_DEPTH (16). Lorsque la file d’attente est pleine, l’envoi le plus récent est abandonné et un WARN est journalisé.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.reply_queue_depth_max.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.reply_queue_depth_max.
zeroclaw config
zeroclaw config set channels.discord.<alias>.reply_queue_depth_max <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__reply_queue_depth_max=
slash_command_scope
Portée des commandes slash enregistrées : global (par défaut, à l’échelle de l’application, propagation ~1h) ou guild (enregistrées pour chaque entrée de guild_ids, instantané). N’a de sens que lorsque slash_commands = true ; guild avec un guild_ids vide avertit et bascule vers global. Changer de portée supprime les commandes possédées de la portée désormais inactive ; notez que retirer une guilde de guild_ids (sans changer de portée) ne supprime pas les commandes de cette guilde - retirez le bot de la guilde, ou changez de portée, pour les effacer.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.slash_command_scope.
zerocode
Dans le volet Configuration, définissez le champ channels.discord.<alias>.slash_command_scope.
zeroclaw config
zeroclaw config set channels.discord.<alias>.slash_command_scope <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__slash_command_scope=
slash_commands
Lorsque cette option est activée (true), enregistre et traite les commandes slash Discord (par ex. /ask) via le WebSocket de la Gateway, en plus de la gestion des messages. Désactivée par défaut (false). (Prototype : enregistre actuellement une seule commande /ask <prompt>.)
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.slash_commands.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.slash_commands.
zeroclaw config
zeroclaw config set channels.discord.<alias>.slash_commands <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__slash_commands=
stall_timeout_secs
Délai d’expiration du chien de garde anti-blocage en secondes. Lorsqu’il est différent de zéro, le bot abandonne et réessaie si aucune progression n’est constatée pendant cette durée. 0 = désactivé.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.stall_timeout_secs.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.stall_timeout_secs.
zeroclaw config
zeroclaw config set channels.discord.<alias>.stall_timeout_secs <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__stall_timeout_secs=
stream_mode
Mode streaming pour la livraison progressive des réponses. off (par défaut) : message unique. partial : mises à jour de brouillon modifiables. multi_message : division de la réponse en messages séparés aux limites de paragraphes.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.stream_mode.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.stream_mode.
zeroclaw config
zeroclaw config set channels.discord.<alias>.stream_mode <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__discord__<alias>__stream_mode=
Restreindre les endroits où le bot écoute
Par défaut, le bot écoute dans chaque serveur où il est invité et chaque canal qu’il peut voir. Pour restreindre sa portée :
guild_ids: limite le bot à des serveurs spécifiques (guilds). Vide signifie tous.channel_ids: limiter à des canaux spécifiques. Vide signifie tous les canaux visibles.
Pour trouver un ID, activez le Mode développeur dans Discord (Paramètres utilisateur -> Avancés), puis faites un clic droit sur un serveur ou un salon et sélectionnez Copier l’identifiant.
Threads et contexte
Lorsqu’une conversation Discord se déroule dans un fil de discussion, ce fil constitue sa propre conversation. ZeroClaw dérive une clé de session distincte par fil, de sorte que chaque fil dispose d’une fenêtre de contexte et d’un historique indépendants : les messages d’un fil ne débordent jamais dans un autre, et l’agent ne voit pas les tours précédents d’un fil voisin. Pour Discord, les fils sont des canaux natifs, donc chaque fil est déjà une conversation distincte : aucune option à configurer.
- L’isolation est l’objectif. Le contexte de chaque thread est autonome : il ne fuit pas en dehors du thread, et rien de l’extérieur du thread ne s’y infiltre. Les threads parallèles conservent des états conversationnels distincts, de sorte que des tâches sans rapport ne se contaminent jamais entre elles.
- Les threads longs font croître le contexte. Un thread accumule l’historique tant qu’il reste actif, donc un thread très long finit par remplir la fenêtre de contexte du modèle comme toute autre conversation longue. Démarrez un nouveau thread pour réinitialiser.
- Le travail en cours est limité à chaque fil de discussion. Un nouveau message dans un fil n’annule pas une réponse en cours dans un autre ; la tâche de chaque fil est indépendante.
Archiver et rechercher
Définissez archive = true et le canal ouvre un magasin de mémoire annexe discord.db, enregistre chaque message qu’il voit, et inscrit un outil discord_search que l’agent peut utiliser pour rechercher dans les conversations passées. Laissez-le désactivé si vous n’avez pas besoin de la recherche dans l’historique ; le bot répond normalement dans les deux cas.
Diffusion en continu
Discord diffuse les réponses en continu via le paramètre stream_mode :
off(par défaut) : la réponse entière est publiée en un seul message une fois que l’agent a terminé. C’est l’option la plus simple, et elle n’affiche jamais de réponse partiellement rédigée.partial: le bot publie un brouillon immédiatement et le modifie sur place au fur et à mesure que la réponse arrive en streaming.draft_update_interval_msrégule la fréquence des modifications ; augmentez-le si Discord les limite (rate-limit).multi_message: chaque paragraphe est publié comme un message distinct, séparé parmulti_message_delay_ms. Idéal pour les réponses longues qui formeraient sinon un seul bloc de texte.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/discord et définissez le champ channels.discord.<alias>.stream_mode.
zerocode
Dans le volet Config, définissez le champ channels.discord.<alias>.stream_mode.
zeroclaw config
zeroclaw config set channels.discord.<alias>.stream_mode <value>
Des réponses qui semblent naturelles
mention_only: lorsque la valeur esttrue, le bot répond uniquement aux messages qui le mentionnent avec @, afin de rester silencieux dans les canaux très actifs.reply_min_interval_secs: un intervalle minimum entre les réponses à une même personne, utile si les réponses instantanées semblent robotiques.
Dépannage
| Symptôme | Cause probable | Corriger |
|---|---|---|
| Le bot est en ligne mais ne répond jamais | L’intent Message Content est désactivé | Activez-la dans le Developer Portal (étape 2) et redémarrez |
| Le bot ne répond nulle part | Non invité, ou autorisations Voir les salons / Envoyer des messages manquantes | Relancez l’invitation (étape 4) avec les bonnes permissions |
| Le bot ignore la plupart des messages | mention_only = true | @-mentionnez le bot, ou définissez-le sur false |
| “Invalid token” au démarrage | Jeton mal saisi ou réinitialisé | Réinitialisez le jeton dans le portail, définissez-le à nouveau (étape 3) |
Voir aussi
- Qui peut parler à l’agent (groupes de pairs)
- Slack
- Vue d’ensemble des canaux