通过 ClickClack bot token 将 OpenClaw 接入自托管 ClickClack 工作区。支持独立服务 bot 和用户拥有的 bot。

快速设置

  1. 创建 bot token:
clickclack admin bot create \
  --workspace <workspace_id_or_slug> \
  --name "OpenClaw" \
  --handle openclaw \
  --scopes bot:write \
  --plain
  1. 配置 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",
    },
  },
}
  1. 启动:
export CLICKCLACK_BOT_TOKEN="ccb_..."
openclaw gateway

投递目标

  • channel:<name-or-id>:工作区频道(裸目标默认为 channel:)
  • dm:<user_id>:与用户的私信
  • thread:<message_id>:在已有线程中回复
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"

权限范围

  • bot:read:读取工作区/频道/消息/DM/实时/个人资料数据
  • bot:write:bot:read + 发送消息、线程回复、DM、上传
  • bot:admin:bot:write + 创建频道

正常 agent 聊天只需 bot:write。

多 Bot 配置

{
  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",
          agentId: "service-bot",
          replyMode: "model",
        },
        peter: {
          token: { source: "env", provider: "default", id: "CLICKCLACK_PETER_BOT_TOKEN" },
          workspace: "default",
          agentId: "peter-bot",
          replyMode: "model",
        },
      },
    },
  },
}

设置 agentId 时需要 plugins.entries.clickclack.llm.allowAgentIdOverride: true。

故障排查

  • ClickClack is not configured:设置 channels.clickclack.token 或 CLICKCLACK_BOT_TOKEN
  • workspace not found:将 workspace 设为 ClickClack 返回的工作区 ID 或 slug
  • 无入站回复:确认 token 有实时读取权限,bot 不在回复自己的消息
  • 频道发送失败:验证 bot 是工作区成员且有 bot:write

相关链接