Get started
ClickClack
ClickClack connecte OpenClaw à un espace de travail ClickClack auto-hébergé via des jetons de bot ClickClack de première classe.
Utilisez ceci lorsque vous voulez qu’un agent OpenClaw apparaisse comme un utilisateur bot ClickClack. ClickClack prend en charge les bots de service indépendants et les bots détenus par des utilisateurs ; les bots détenus par des utilisateurs conservent un owner_user_id et ne reçoivent que les portées de jeton que vous accordez.
Configuration rapide
Créez un jeton de bot dans ClickClack :
clickclack admin bot create \ --workspace <workspace_id_or_slug> \ --name "OpenClaw" \ --handle openclaw \ --scopes bot:write \ --plainPour un bot détenu par un utilisateur, ajoutez --owner <user_id>.
Configurez OpenClaw :
{ plugins: { entries: { clickclack: { llm: { allowAgentIdOverride: true, }, }, }, }, channels: { clickclack: { enabled: true, baseUrl: "https://app.clickclack.chat", token: { source: "env", provider: "default", id: "CLICKCLACK_BOT_TOKEN" }, workspace: "default", defaultTo: "channel:general", agentId: "clickclack-bot", replyMode: "model", }, },}Exécutez ensuite :
export CLICKCLACK_BOT_TOKEN="ccb_..."openclaw gatewaySi plugins.allow est une liste restrictive non vide, sélectionner explicitement
ClickClack dans la configuration du canal ou exécuter openclaw plugins enable clickclack
ajoute clickclack à cette liste. L’installation lors de l’intégration utilise le même
comportement de sélection explicite. Ces chemins ne remplacent pas plugins.deny ni un
paramètre global plugins.enabled: false. La commande directe
openclaw plugins install @openclaw/clickclack suit la politique normale
d’installation de plugin et enregistre également ClickClack dans une liste d’autorisation existante.
Plusieurs bots
Chaque compte ouvre sa propre connexion temps réel ClickClack et utilise son propre jeton de bot.
{ plugins: { entries: { clickclack: { llm: { allowAgentIdOverride: true, }, }, }, }, channels: { clickclack: { enabled: true, baseUrl: "https://app.clickclack.chat", defaultAccount: "service", accounts: { service: { token: { source: "env", provider: "default", id: "CLICKCLACK_SERVICE_BOT_TOKEN" }, workspace: "default", defaultTo: "channel:general", agentId: "service-bot", replyMode: "model", }, peter: { token: { source: "env", provider: "default", id: "CLICKCLACK_PETER_BOT_TOKEN" }, workspace: "default", defaultTo: "dm:usr_...", agentId: "peter-bot", replyMode: "model", }, }, }, },}replyMode: "model" utilise directement api.runtime.llm.complete pour les réponses courtes du bot.
Lorsqu’un compte définit agentId, OpenClaw exige le bit de confiance explicite
plugins.entries.clickclack.llm.allowAgentIdOverride afin que le plugin
puisse exécuter des complétions pour cet agent bot. Laissez-le désactivé si vous utilisez uniquement la route
d’agent par défaut.
Cibles
channel:<name-or-id>envoie vers un canal d’espace de travail. Les cibles nues utilisentchannel:par défaut.dm:<user_id>crée ou réutilise une conversation directe avec cet utilisateur.thread:<message_id>répond dans un fil existant.
Exemples :
openclaw message send --channel clickclack --target channel:general --message "hello"openclaw message send --channel clickclack --target dm:usr_123 --message "hello"openclaw message send --channel clickclack --target thread:msg_123 --message "following up"Autorisations
Les portées de jeton ClickClack sont appliquées par l’API ClickClack.
bot:read: lire les données d’espace de travail, de canal, de message, de fil, de DM, de temps réel et de profil.bot:write:bot:readplus les messages de canal, les réponses de fil, les DM et les téléversements.bot:admin:bot:writeplus la création de canaux.
OpenClaw n’a besoin que de bot:write pour les conversations d’agent normales.
Dépannage
ClickClack is not configured: définissezchannels.clickclack.tokenouCLICKCLACK_BOT_TOKEN.workspace not found: définissezworkspacesur l’identifiant ou le slug d’espace de travail renvoyé par ClickClack.- Aucune réponse entrante : confirmez que le jeton dispose d’un accès en lecture temps réel et que le bot ne répond pas à ses propres messages.
- Les envois au canal échouent : vérifiez que le bot est membre de l’espace de travail et dispose de
bot:write.