Canaux sociaux
Intégrations de diffusion / flux sociaux. Ces dernières diffèrent des canaux de chat en deux points : les messages sont généralement publics et l’agent agit souvent comme un diffuseur plutôt que comme un répondant bidirectionnel.
Note de compilation : Les canaux sociaux ne sont pas inclus dans la version allégée par défaut. Pour les utiliser, compilez avec
--features channels-full(tous les canaux) ou avec l’indicateur de fonctionnalité spécifique (par ex.--features channel-twitter). Les binaires précompilés n’incluent pas ces canaux par défaut. Consultez Channels → Overview pour le tableau complet des options de compilation.
Twitch
Le chat Twitch est un adaptateur léger au-dessus d’IRC. Compilez-le avec --features channel-twitch ou incluez-le via --features channels-full ; la compilation légère par défaut ne l’inclut pas.
Configurez enabled, bot_username, oauth_token et les canaux à rejoindre sous un alias Twitch. mention_only est facultatif et vaut false par défaut. Une instance minimale se présente ainsi :
[channels.twitch.default]
enabled = true
bot_username = "zeroclaw_bot"
oauth_token = "replace-with-twitch-token"
channels = ["zeroclaw_channel"]
mention_only = true
[peer_groups.twitch_default]
channel = "twitch.default"
external_peers = ["zeroclaw_user"]
- Authentification : utilisez un jeton d’accès utilisateur Twitch pour le compte du bot avec les autorisations
chat:readetchat:edit. Après avoir configuré la Twitch CLI, générez-le en étant connecté à ce compte avectwitch token -u -s 'chat:read chat:edit', puis stockez-le via un mécanisme de configuration protégé. ZeroClaw supprime les espaces superflus de la valeur et ajoute le préfixeoauth:requis lorsqu’il est omis. - Canaux : les entrées de
channelspeuvent inclure le#en tête ; ZeroClaw l’ajoute s’il est absent et normalise les noms de canal en minuscules. - Entrants et sortants : les messages de canal reçoivent une réponse dans le même canal.
mention_only = trueignore les messages de canal qui ne mentionnent pasbot_username. Si Twitch transmet unPRIVMSGIRC hors canal à l’identifiant de connexion du bot, ZeroClaw répond à cet expéditeur ; l’adaptateur ne configure pas de transport distinct pour les messages privés. - Mise en forme : Les réponses Twitch utilisent du texte brut et sont découpées pour tenir dans les trames IRC. La mise en forme Markdown n’est pas conservée.
- Limites de débit : l’adaptateur écrit directement des trames IRC
PRIVMSGet ne dispose d’aucun limiteur de débit spécifique à Twitch ni de mécanisme de temporisation après un HTTP429. Maintenez la cadence de publication de l’agent dans les limites de Twitch Chat et limitez à la source les flux de travail générant des rafales.
Bluesky (protocole AT)
- Auth : mot de passe d’application Bluesky (pas votre vrai mot de passe). Créez-en un dans les paramètres.
- Sortant : publications de 300 caractères ; les réponses plus longues sont automatiquement divisées en plusieurs fils.
- Protocole : AT Protocol via le crate
atrium-api.
Nostr
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 nostr définit channel à nostr, liste les expéditeurs autorisés dans external_peers (pour nostr, la clé publique hexadécimale de l’expéditeur ; ["*"] accepte tout le monde), nomme éventuellement des agents pairs pour la répartition inter-agents, une liste de blocage ignore, et un 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.
- Auth : clé privée brute (
nsecbech32 ou hexadécimal). - Entrant : kind-1 (texte), kind-4 (DM, NIP-04) et kind-1059 (cadeau-emballé, NIP-17).
- Sortant : mêmes types. La gestion des Zap est expérimentale.
- Relais : l’agent se connecte à tous les relais répertoriés ; utilisez-en 3 à 5 pour plus de fiabilité. Si
relaysest omis, ZeroClaw se connecte à un ensemble intégré de relais publics populaires.
Twitter / X
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 twitter définit channel à twitter, liste les expéditeurs autorisés dans external_peers (pour twitter, le @username Twitter/X ; ["*"] accepte n’importe qui), 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.
- Auth : Twitter API v2 OAuth 2.0 Bearer Token uniquement.
- Entrant : mentions via le point de terminaison du flux filtré.
- Sortant : publications, réponses, fils de discussion.
- Avertissement : le plan gratuit est soumis à des limites de débit qui le rendent presque inutilisable. Prévoyez votre budget en conséquence.
- Auth : OAuth 2.0 avec un jeton de rafraîchissement. Générez-en un avec une application Reddit de type script et le flux
passwordoucode. - Entrants : nouvelles publications et nouveaux commentaires dans les subreddits configurés (ou tous les subreddits auxquels le bot a accès lorsque
subredditsest vide), ainsi que les réponses aux propres publications de l’agent. - Sortant : publications, commentaires, messages privés.
Gérer les canaux sociaux en toute sécurité
Les bots sur les réseaux sociaux publics attirent des entrées malveillantes. Deux précautions :
- Restreignez les personnes auxquelles l’agent répondra. Filtrez les expéditeurs entrants avec un groupe de pairs (par canal, ci-dessus) : un ensemble de pairs vide refuse tout le monde,
["*"]accepte tout le monde. Bluesky n’a pas de champ d’expéditeur pour les groupes de pairs ; filtrez plutôt au niveau de la couche d’autonomie / des outils. - Maintenez le niveau d’autonomie à
Supervisedou inférieur. Un agent exposé publiquement en autonomieFullest en pratique un shell public. Pour les canaux exposés publiquement, restreignez la surface d’outils dans la configuration globale tool-policy plutôt que de compter sur untools_allowpar canal (aucun champ de ce type par canal n’existe).
Limites de débit
La gestion de la limitation de débit varie selon le canal. Twitch écrit directement les trames IRC PRIVMSG et ne dispose d’aucun limiteur propre à l’adaptateur. Si vous rencontrez une limitation de débit persistante, réduisez la cadence de publication de l’agent à la source plutôt que de vous fier aux paramètres de diffusion propres à chaque canal (aucun de ces canaux n’expose d’intervalles de mise à jour des brouillons ; leur schéma est volontairement minimal).