ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw ClickClack 通道插件实战:自托管工作区机器人接入、会话讨论与权限配置全指南

OpenClaw ClickClack 通道插件实战:自托管工作区机器人接入、会话讨论与权限配置全指南 OpenClaw ClickClack 通道插件实战自托管工作区机器人接入、会话讨论与权限配置全指南【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclawClickClack 是 OpenClaw 的官方通道插件让 OpenClaw Agent 以 ClickClack 机器人Bot身份接入自托管的 ClickClack 工作区。本文以 docs/plugins/reference/clickclack.md 为核心骨架结合 docs/channels/clickclack.md 的完整配置说明与 extensions/clickclack 的源码实现系统讲解插件分发与安装、三种凭据接入方式、账号配置键、多机器人、Session discussions 会话讨论通道、回复模式、命令菜单、持久化媒体投递、原生进度与活动行、群组提及门控、目标语法、令牌权限与故障排查读完即可完成从接入到生产环境的全套配置。一、插件概述与分发ClickClack 通道插件使 OpenClaw 以 ClickClack Bot 用户身份出现在工作区中。ClickClack 支持独立服务机器人independent service bots与用户自有机器人user-owned bots两类用户自有机器人保留owner_user_id且只接收你授予的令牌范围token scopes。分发信息Distribution包名openclaw/clickclack安装途径npm 或 ClawHubclawhub:openclaw/clickclack能力表面Surface通道Channelsclickclack契约Contractstools具体提供只读discussion工具从 extensions/clickclack/package.json 可以确认这些元数据运行时依赖仅有ws实时 WebSocket与zod配置校验保持轻量插件清单 extensions/clickclack/openclaw.plugin.json 声明channels: [clickclack]与contracts.tools: [discussion]与文档 Surface 一致安装规格install.clawhubSpec clawhub:openclaw/clickclack、install.npmSpec openclaw/clickclack默认选择 npm 途径defaultChoice: npm兼容约束compat.pluginApi 2026.9.3peer 依赖要求 OpenClaw2026.9.3最小宿主版本2026.6.9install.minHostVersion声明doctorContract.configRepair true意味着openclaw doctor可以修复该通道的配置激活策略activation.onStartup false插件不随网关启动而强制激活。安装命令openclaw plugins install openclaw/clickclack插件安装还遵循 OpenClaw 的插件允许列表策略如果网关配置了非空的限制性plugins.allow列表在通道设置中显式选择 ClickClack或运行openclaw plugins enable clickclack会把clickclack追加进该列表openclaw onboard引导安装走同样的显式选择逻辑。这些路径不会覆盖plugins.deny或全局plugins.enabled: false直接openclaw plugins install openclaw/clickclack则遵循常规插件安装策略同时也会把 ClickClack 记录进已有的允许列表。二、快速接入三种凭据方式ClickClack 支持三种凭据接入方式推荐的一次性设置码setup code、手动令牌manual token与环境变量令牌env-based token。方式一设置码推荐在 ClickClack 中打开工作区设置 → 集成Integrations→ OpenClaw选择Setup code推荐创建机器人并复制生成的命令openclaw channels add clickclack --code https://clickclack.example.com/#XXXX-XXXX-XXXX对于前端与 API 分离不同源或 API 挂在路径下的部署ClickClack 会给出精确声明端点exact claim endpointopenclaw channels add clickclack --code https://api.example.com/services/clickclack/api/bot-setup-codes/claim#XXXX-XXXX-XXXX设置码的关键行为一次性使用自生成起10 分钟内有效OpenClaw 声明claim后收到新铸造的机器人令牌与工作区设置保存账号、验证连接并报告运行中的网关是否拾取pick up了它对版本化精确端点OpenClaw 会校验并保存 ClickClack 返回的规范 API 基址含路径前缀设置码本身不会存入 OpenClaw 配置。设置码声明对公网服务器使用 HTTPS本地环回地址localhost、127.0.0.1的本地安装也支持纯 HTTP。如果 OpenClaw 网关已在运行ClickClack 会自动连接无需第二条命令否则先启动网关openclaw gateway也可以把设置码与服务器 URL 分开传递openclaw channels add clickclack --code XXXX-XXXX-XXXX --base-url https://clickclack.example.com需要引导式安装时运行openclaw onboard选择 ClickClack 后按提示输入服务器 URL、机器人令牌与工作区。引导式安装会在保存后校验服务器、令牌与工作区校验失败不会丢弃已保存的配置。方式二手动令牌当配置非 OpenClaw 客户端或需要自行管理令牌时在 ClickClack 中选择Manual tokenopenclaw channels add clickclack --base-url https://clickclack.example.com --token ccb_... --workspace defaultworkspace接受工作区 idwsp_...、slug 或显示名称--code不能与--token、--token-file或--use-env组合使用。方式三基于环境变量的令牌默认账号可以从环境变量CLICKCLACK_BOT_TOKEN读取令牌无需把令牌写入配置export CLICKCLACK_BOT_TOKENccb_... openclaw channels add clickclack --base-url https://clickclack.example.com --workspace default --use-env openclaw gateway注意命名账号named accounts必须使用配置的令牌或令牌文件共享环境变量有意限定于默认账号使用。从 extensions/clickclack/src/accounts.ts 的源码可以看到账号已配置的判定逻辑hasImplicitDefaultAccount仅当baseUrl非空、且令牌来源有效配置了token、tokenFile或环境变量CLICKCLACK_BOT_TOKEN三者之一并且workspace非空时该账号才算配置完成——与文档baseUrl、令牌来源与workspace三者齐备才算 configured的表述完全对应。JSON5 配置参考命令行的等价配置形状{ channels: { clickclack: { enabled: true, baseUrl: https://clickclack.example.com, token: { source: env, provider: default, id: CLICKCLACK_BOT_TOKEN }, workspace: default, defaultTo: channel:general, }, }, }一个账号只有在baseUrl、令牌来源与workspace都设置后才算 configured令牌来源可以是token、tokenFile或默认账号的CLICKCLACK_BOT_TOKENworkspace接受 id、slug 或名称网关在启动时将其解析为工作区 id。三、账号配置键全解以下是 docs/channels/clickclack.md 的完整账号配置键表全量收录并补充说明Key默认值说明baseUrl无必填面向浏览器的公开 ClickClack URL用于生成浏览器打开的链接。apiBaseUrlbaseUrl可选的服务端到服务端端点用于 REST 与实时 WebSocket 流量。token无机器人令牌可为明文串或密钥引用source: env \| file \| exec \| store。tokenFile无机器人令牌文件路径优先级高于token。workspace无必填工作区 id、slug 或名称。replyModeagentagent走完整 Agent 管线model发送短模型直答。defaultTochannel:general出站路径未给出目标时使用的默认目标。allowFrom[*]入站 DM 与频道消息的用户 id 允许列表。allowBotsfalse是否接纳其他 ClickClack 机器人消息true放行所有机器人消息mentions仅群组中提及本机时放行。botLoopProtection内置默认应用于已接纳机器人消息的滑动窗口机器人对循环防护。botUserId自动探测启动时从机器人令牌身份解析。agentId路由默认将该账号的入站消息固定路由到一个 Agent。toolsAllow无该账号 Agent 回复的工具允许列表。model、systemPrompt无replyMode: model直答使用的模型与系统提示。commandMenutrue是否向 ClickClack 输入框自动补全发布原生命令。reconnectMs1500实时重连延迟10060000。discussions禁用托管式按会话通道设置详见下文「Session discussions」。requireMentionfalse群组消息是否需要被直接提及才分发。mentionPatterns[]该账号在群组通道中的提及模式。groups{}按 ClickClack 通道 id 键控的群组策略覆盖。这些键的取值约束在 extensions/clickclack/src/config-schema.ts 中有严格定义例如reconnectMs为整数且取值范围min(100).max(60_000)默认1500见 accounts.ts 中的DEFAULT_RECONNECT_MSreplyMode枚举为[agent, model]groups记录中的每个子对象为.strict()模式未知键会导致校验失败discussions子对象enabled/workspace/controlUrlBase/section同样为严格模式。openclaw doctor与配置校验正是使用这份导出的 Zod schemaclickClackConfigSchema识别默认与命名账号的。保持鉴权保护的公开主机名当 ClickClack 与 OpenClaw 网关运行在同一主机、但公开 ClickClack 主机名受 Cloudflare Access 等认证网关保护时使用apiBaseUrl分流服务端流量{ channels: { clickclack: { baseUrl: https://clack.openclaw.ai, apiBaseUrl: http://127.0.0.1:8484, token: { source: env, provider: default, id: CLICKCLACK_BOT_TOKEN }, workspace: default, }, }, }公开主机名可以继续对浏览器用户保持完全鉴权保护OpenClaw 使用环回端点进行 REST 请求、设置验证与实时 WebSocket而讨论的embedUrl与openUrl链接仍使用公开baseUrl省略apiBaseUrl时所有流量都走baseUrl保持既有行为不变。四、多机器人Multiple bots每个账号各自建立自己的 ClickClack 实时连接并使用各自的机器人令牌{ channels: { clickclack: { enabled: true, baseUrl: https://clickclack.example.com, defaultAccount: service, accounts: { service: { token: { source: env, provider: default, id: CLICKCLACK_SERVICE_BOT_TOKEN }, workspace: default, defaultTo: channel:general, agentId: service-bot, }, support: { token: { source: env, provider: default, id: CLICKCLACK_SUPPORT_BOT_TOKEN }, workspace: default, defaultTo: dm:usr_..., agentId: support-bot, }, }, }, }, }从源码看账号解析accounts.ts通过createAccountListHelpersClickClackAccountConfig(clickclack, ...)实现根级通道配置与命名账号覆盖的合并nestedObjectKeys: [botLoopProtection, discussions]表明这两个子对象在合并时按嵌套键深度合并groups则经mergeClickClackGroups合并通道级与账号级的群组策略账号级优先。密钥引用统一走resolveSecretInputString解析支持 env/file/exec/store 四类来源令牌文件的优先级高于token配置。五、Session discussions为每个会话创建托管讨论通道启用某个 ClickClack 账号的讨论功能后每个 OpenClaw 会话都会获得一个专属的 ClickClack 通道。注意账号令牌必须包含channels:write权限bot:admin权限包包含普通bot:write设置令牌无法创建或同步通道。{ channels: { clickclack: { enabled: true, baseUrl: https://clickclack.example.com, token: { source: env, provider: default, id: CLICKCLACK_BOT_TOKEN }, workspace: default, discussions: { enabled: true, workspace: default, controlUrlBase: https://team.openclaw.ai, section: Sessions, }, }, }, }discussions.workspace接受与账号级workspace相同的 id、slug 或显示名默认取账号级值section控制 ClickClack 侧边栏分组默认Sessions设置controlUrlBase时托管通道会回链到规范的 Control UI 会话路径形如/chat/agent/session-ref保留基路径主会话用/chat/agent只能在恰好一个 ClickClack 账号上启用讨论。因为网关的讨论提供方没有账号选择器多个账号启用讨论会被直接拒绝而不是按配置顺序挑选一个。通道生命周期与绑定语义打开讨论会创建一个标记为外部托管externally managed的公开ClickClack 通道。插件保持会话标签与分类同步但通道生命周期完全独立清除会话分类会把通道移回配置的默认分组归档、重置或删除 OpenClaw 会话绝不会归档或替换 ClickClack 通道——通道的归档与恢复由 ClickClack 独立掌管插件在使用讨论 RPC 时以及存在绑定时大约每分钟执行一次绑定对账reconcile。绑定binding把持久化的房间身份与可替换的会话附着session attachment分离副会话side session的 peer 身份与作用域授权包含精确的具体 OpenClaw 会话 id重置可复用会话键会轮换附着关系且无法复用旧的副会话记录。ClickClack 通道 id、URL、历史与所有权引用保持不变通过不活跃、已禁用或被重新定向的附着到达的消息会被丢弃而不是回退到该账号的正常通道路由释放的绑定会留下持久的撤销通道标记revoked-channel marker使延迟的实时事件保持失败关闭fail-closed远端所有权以 ClickClack 服务器 通道 id 键控因此重命名本地账号不会把托管通道变成普通通道。会话访问收窄与授权边界如需更窄的会话访问可把tools.sessions.visibility显式设为tree而不是默认的all。插件只在每个副会话与其附着的主会话之间安装主机级授权host-scoped grant并安装一个工具策略钩子阻止会话发现与跨会话目标仅允许对附着主会话使用sessions_history、session_status与sessions_send并阻止 status 调用改变该会话的模型这些工具仍必须出现在 Agent 的有效工具允许列表中系统提示只是指导主机授权与钩子才是真正的授权边界。服务端契约与故障恢复ClickClack 服务器必须在通道创建与更新时支持并返回托管通道字段external_managed、external_ref、external_url、sidebar_section。OpenClaw 在持久化绑定前会验证该契约若创建响应丢失下一次打开会按服务器强制的external_ref收养adopt该通道而不是再创建一个在对账完成前未决预留pending reservation会把目标工作区中未绑定的事件临时隔离quarantine粗粒度对账器coarse reconciler在逻辑会话活跃时收养通道包括具体会话 id 改变后未创建远端通道时清除预留该引用包含持久化的每安装命名空间加上会话键、ClickClack 目标与持久化绑定代的哈希——不同网关无法互相收养对方的通道而具体会话重置仍保持同一通道账号或工作区往返无法重新收养旧通道绑定还固定到配置的 ClickClack 服务器 URL账号被重新定向时绑定失效修改或移除controlUrlBase会在下一次对账时更新或清除托管通道链接修改discussions.workspace会先释放旧附着再到新工作区打开通道且永不归档旧房间如果令牌被替换为无法访问旧工作区的工作区级凭据OpenClaw 会把旧通道记录为已撤销并释放绑定而不会用替换令牌去尝试。从 extensions/clickclack/src/discussions/binding-generation.ts 可以看到绑定预留的实现细节预留记录存放在插件 SQLite 状态键值存储中命名空间discussion-binding-generations上限10_000条且溢出策略为reject-new——因为一条未决记录可能是响应丢失但远端已提交通道的唯一证据拒绝新预留比逐出该证据更安全。这正是文档所述丢失的创建响应可被收养的底层支撑。主会话的只读 discussion 工具附着的主会话还会收到一个只拉取pull-only的discussion工具它读取最新消息与近期线程回复每条消息作为一条转义、带归属的记录返回没有任何写入或生命周期副作用。通道根与线程查询有固定的请求预算当该安全边界可能遗漏更早的活跃线程时结果会显式警告。从 extensions/clickclack/src/discussions/tool.ts 的实现可见该工具名为discussion参数仅一个可选limit默认30上限200执行时调用service.readLatestMessages(sessionKey, limit)并返回bound、channelId等元数据未绑定会话时返回No discussion is bound to this session.。这印证了只读、有界、无副作用的文档描述。六、回复模式Reply modesreplyMode: agent默认入站消息走正常 Agent 管线包括会话记录与工具策略replyMode: model跳过 Agent 管线使用插件运行时的llm.complete直接生成机器人回复可选model与systemPrompt塑形。所选提供方与模型负责补全预算。两种模式都遵循通道级或账号级的responsePrefix。账号级取值优先包括用关闭继承的前缀auto表示路由 Agent 的身份名[{model}]表示所选模型。显式的message工具与 CLI 文本发送遵循共享前缀行为含未解析的模型相关前缀省略规则。Model 模式对解析出的机器人 Agent id 运行补全这需要显式信任位plugins.entries.clickclack.llm.allowAgentIdOverride: true{ plugins: { entries: { clickclack: { llm: { allowAgentIdOverride: true, }, }, }, }, }若只使用默认的agent回复模式请保持该信任位关闭——那里并不需要它。七、命令菜单Command menu网关启动时每个已配置账号会把 OpenClaw 的原生命令发布到 ClickClack以机器人句柄handle标注出现在输入框自动补全中。发布集合在每次启动时整体替换——包括原生命令目录为空时清除过期菜单。命令菜单同步默认开启。在账号上设置commandMenu: false即可退出{ channels: { clickclack: { enabled: true, token: { source: env, provider: default, id: CLICKCLACK_BOT_TOKEN }, workspace: default, commandMenu: false, }, }, }令牌需要commands:write权限。当前 ClickClack 的bot:write与bot:admin权限包都包含该权限也可单独授予。在命令菜单功能引入前创建的令牌可能需要补充该权限或更换令牌。同步是尽力而为的且每次网关启动只运行一次缺少权限或网络失败仅记录警告不支持该端点的旧版 ClickClack 服务器按 debug 级别记录这些失败都不会阻塞实时连接启动菜单在 Agent 离线时仍可用机器人离开工作区时菜单被移除。本次发布只发布原生命令规范。别名以及技能、插件或自定义命令目录不会加入菜单。如果某名字同时注册为 HTTP 斜杠命令ClickClack 会优先分发该注册其余菜单命令继续走正常消息投递。关联追踪证据correlation evidence如需跨服务关联证据请使用agent模式。要获得规范形态msg_ulid的 ClickClack 消息 id通道会推导出确定性的 OpenClaw 运行 idclickclack:message-id。随后每次模型调用在诊断中可见为clickclack:message-id:model:n当该轮使用 ClawRouter 时同一模型调用 id 会作为X-Request-ID发送。model模式绕过正常的 Agent 运行/会话诊断因此不适合此证据路径。当实时事件包含经验证的payload.correlation_id时通道会在权威消息抓取与产生的 ClickClack 回复请求中把它作为X-Correlation-ID携带。取值使用 ClickClack 的安全 128 字符集A-Z、a-z、0-9、.、_、:、-非法值会被省略。这些关联只包含标识符绝不包含消息正文、提示、补全、凭据或工具输出。八、持久化媒体投递Durable media delivery包含媒体的 Agent 回复使用必需持久化投递。OpenClaw 在第一次 ClickClack 写入前为每个消息部分与上传分配稳定的 nonce因此重试会复用相同的上传与消息而不会消耗存储配额或产生重复发布。重启后若上传已存在OpenClaw 不会重新读取原始本地路径或远端媒体 URL。该恢复契约要求 ClickClack 服务器支持GET /api/uploads/by-nonce在命中与未命中结果上都带X-ClickClack-Upload-Nonce: supportedGET /api/messages/by-nonce在命中与未命中结果上都带X-ClickClack-Message-Nonce: supported对同一所有者作用域 nonce 与上传的幂等消息创建与附件关联。旧服务器返回的通用 404 不被视为发送不存在的证据。OpenClaw 会让投递保持未解决状态而不是冒重复风险请在启用产生媒体的 Agent 回复前升级 ClickClack。出站媒体使用 ClickClack 的上传 API然后把持久化上传附加到创建的通道消息、线程回复或 DM。本地文件与受支持的远端媒体 URL 遵循 OpenClaw 常规媒体访问策略。channels.clickclack.mediaMaxMb限制每个出站附件MiBaccounts.id.mediaMaxMb覆盖根值agents.defaults.mediaMaxMb作为兜底。64 MiB 上传上限始终适用。图片发送前可能被优化。持久化排队发送为每个上传与消息部分使用独立的所有者作用域 nonce然后用同一批对象重试附件关联。九、原生进度与 Agent 活动行Native progress agent activity原生进度为按账号可选。设置nativeProgress: true可在 Agent 轮次运行时显示瞬态agent name is responding状态与进度行。Agent 名来自配置的账号名、ClickClack 机器人句柄或 Agent id。这些使用临时agent.progress事件轮次结束时清除——只有最终回复是持久的。单独设置agentActivity: true可在轮次进行中发布持久的agent_commentary与agent_tool消息行{ channels: { clickclack: { enabled: true, token: { source: env, provider: default, id: CLICKCLACK_BOT_TOKEN }, workspace: default, nativeProgress: true, agentActivity: true, }, }, }要求与行为原生进度默认关闭。仅在支持临时实时端点的 ClickClack 部署上设置nativeProgress: true持久活动默认单独关闭。设置agentActivity: true持久化活动行但它本身不会启用原生进度原生进度尽力而为。进度发布使用临时实时端点与有界请求超时失败或停滞的进度请求只记日志不能阻塞最终文本投递持久活动需要agent_activity:write令牌权限。该权限独立于bot:write不被其继承启用agentActivity前请用--scopes bot:write,agent_activity:write创建机器人令牌尽力降级。若令牌缺少agent_activity:write或服务器拒绝活动写入失败只记日志最终回复仍正常投递只是不出现活动行行按轮次turn_id分组、合并一个逻辑步骤一行工具行使用与 Discord/Slack/Telegram 相同的进度格式工具名加命令详情归属元数据。Agent 创作的内容活动行与最终回复携带author_model与author_thinking字段取自该轮实际使用的模型含故障回退之后。未定义这些列的服务器会忽略未知 JSON 字段支持持久化的服务器可以按消息回答这一行是哪个模型、什么思考级别说的。十、群组提及门控Group mention gating默认情况下ClickClack 中每条群组消息都会分发给同一工作区中所有已启用的 ClickClack 账号——该行为向后兼容。在账号上添加requireMention: true可要求先被直接提及才运行 Agent 管线。有效策略按以下顺序解析groups中的精确通道条目按 ClickClack 通道 id 键控groups中的通配符*条目账号级requireMention/mentionPatterns向后兼容默认值{ requireMention: false, mentionPatterns: [] }。DM 永不受requireMention门控。DM 到达时提及门完全跳过。提及检测满足以下任一条件即检测为提及消息正文匹配mentionPatterns中的任意模式每个模式为正则表达式消息包含机器人的 ClickClackhandle网关在启动时从已验证的机器人身份读取句柄。纯显示名称如Blackbird不算提及除非被显式配置为模式。机器人之间的消息ClickClack 默认忽略机器人创作的消息。要接入在账号上设置allowBots: true设置allowBots: mentions则仅在群组通道中提及本机时接纳机器人消息DM 无需提及仍可接纳。机器人消息仍经过allowFrom但机器人作者必须按 id 显式列出默认的通配符allowFrom: [*]不授权机器人消息通配符仍供人类流量使用。自身消息始终被忽略。被接纳的机器人消息还通过 OpenClaw 共享的机器人对循环防护。用账号级botLoopProtection或channels.defaults.botLoopProtection调整窗口、预算、冷却或启用状态。群组级allowBots与botLoopProtection遵循与前述相同策略的精确通道→通配符→账号级优先级。顶层通道消息共享一个通道预算而不同 ClickClack 线程中的回复使用独立的线程根预算。ClickClack 的agent_commentary与agent_tool活动行永不触发OpenClaw 入站轮次即使其作者机器人被显式允许。旧版 ClickClack 响应可能省略author.kind。这类消息故意留在旧的allowFrom路径上allowFrom: [*]可以接纳它们而机器人专属的allowBots与机器人对循环防护检查不适用因为服务器没有对作者分类。因此机器人专属限制要求 ClickClack 服务器响应包含作者分类。配置示例{ channels: { clickclack: { enabled: true, token: { source: env, provider: default, id: CLICKCLACK_BOT_TOKEN }, workspace: default, requireMention: true, mentionPatterns: [\\bBlackbird\\b], allowBots: mentions, allowFrom: [usr_trusted_bot], botLoopProtection: { maxEventsPerWindow: 12, windowSeconds: 60 }, groups: { *: { requireMention: true, allowBots: mentions }, chn_command_and_control: { requireMention: false }, }, }, }, }同一工作区中的多个账号独立评估同一条消息requireMention: true的账号拒绝未提及消息而requireMention: false的账号可能处理它。迁移警告ClickClack 通道 id如chn_...不是Discord 通道 id。配置按通道规则需要使用真实的 ClickClack 通道标识符。除非 ClickClack 服务器显式将其存储为external_ref且适配器有文档化的转换层否则不要复用 Discord id添加requireMention: true而不收紧allowFrom不会悄悄改变群组消息现有的发送者允许列表行为——提及门只是现有发送者策略之上的额外防护。十一、目标语法Targetschannel:name-or-id发送到工作区通道。裸目标默认视为channel:dm:user_id创建或复用与该用户的直接会话thread:message_id在该消息根线程中回复。显式出站目标还可携带clickclack:或cc:提供方前缀。从 extensions/clickclack/src/target.ts 的解析器实现可见parseClickClackTarget把channel:/thread:/dm:前缀分别映射为{ chatType: group, kind: channel }、{ chatType: group, kind: thread }、{ chatType: direct, kind: dm }无前缀的裸值回退为channel:无法识别的前缀抛出Unsupported ClickClack target错误。这与文档裸目标默认 channel:完全一致。出站媒体先上传到 ClickClack 再附加到通道消息、线程回复或 DM。示例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十二、权限ClickClack 令牌范围ClickClack 令牌范围由 ClickClack API 强制执行bot:read读取工作区/通道/消息/线程/DM/实时/资料数据bot:writebot:read加通道消息、线程回复、DM、上传与命令菜单发布bot:adminbot:write加通道创建commands:write发布机器人命令菜单。包含在当前bot:write与bot:admin权限包中也可单独授予agent_activity:write持久 Agent 活动行agent_commentary/agent_tool。不被bot:write或bot:admin继承仅当设置agentActivity: true时需要。OpenClaw 常规 Agent 聊天与命令菜单同步只需当前bot:write。启用原生进度与活动行时再加agent_activity:write。启用 Session discussions 时则需bot:admin含channels:write。十三、故障排查ClickClack is not configured for account id为该账号设置baseUrl、token例如通过CLICKCLACK_BOT_TOKEN与workspaceClickClack workspace not found: value把workspace设为 ClickClack 返回的工作区 id、slug 或名称无入站回复确认令牌有实时读取权限。机器人总是忽略自己的消息其他机器人消息默认被拒启用allowBots时发送方机器人 id 还必须显式列入allowFrom通道发送失败验证机器人是工作区成员且拥有bot:write无命令菜单确认commandMenu不是false、ClickClack 服务器支持PUT /api/bots/self/commands、且令牌有commands:write。十四、进一步阅读ClickClack 通道完整文档设置码、账号键、讨论、提及门控的权威说明插件参考页自动生成的插件表面与契约总览扩展源码src/channel.ts通道实现、src/gateway.ts实时网关、src/inbound.ts入站处理、src/outbound.ts出站与媒体、src/accounts.ts账号解析、src/config-schema.tsZod 配置校验、src/discussions/会话讨论服务与工具以及配套测试扩展 README安装与快速配置摘要消息前缀/线程/回复概念responsePrefix与显式发送行为Control UI 会话 URLcontrolUrlBase生成的规范会话路径。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表