2026 OpenClaw 通道侧排障:群聊 @mention、pairing 审批与 Slack/Discord 机器人权限清单(对照「已连接但不回」)
网关与通道已装通,Dashboard 与 18789 也正常,但私聊能回、群聊像断线,或通道绿灯却永远无人应答——这往往不在模型层,而在IM 策略与机器人权限。本文与 heartbeat/thinking 静默、Matrix 插件 错层:专注 requireMention、pairing 新发件人审批、Slack/Discord 最小权限集;给出对照表、六步联用命令与可写进 Runbook 的参数,帮你在 Mac 云 7×24 场景快速定性「通道侧」而非误重装。读完你应能独立判断:该改平台 Bot 设置、网关 pairing,还是回到模型与定时任务层。
本文要点
1. 三类痛点:已连接不回常见根因
网关日志可能出现「已处理」而用户侧空白,多数与通道策略有关,而非 API Key 立刻失效。许多团队第一反应是换模型或重装 npm 包,结果问题仍在,只因未区分「平台是否把消息交给 Bot」与「网关是否把消息交给模型」。
- 群聊 @mention 与 requireMention:默认要求群里
@Bot才触发时,未 mention 的消息会被策略层直接丢弃,看起来像「挂了」。私聊无此约束故表现正常。需在配置中显式关闭或改为白名单房间,并在文档里写清「群内必须 @」的运营规则。若同一 Bot 在多个群表现不一致,还要核对是否按频道/房间单独覆盖了策略,避免只改了全局却漏了某群的遗留配置。 - pairing 与新发件人审批:安全策略下,新用户或新会话可能进入待审批队列;未执行
pairing approve或等效操作前,网关不会向模型投递。表现为连接测试通过、历史用户正常、新成员永远无回。与 网关策略与 Token 联读可区分「策略拦截」与「鉴权失败」。升级 OpenClaw 或合并多份配置文件时,pairing 默认值可能被重置,建议在变更说明里写明「升级后必跑 pairing list」。 - Slack/Discord 权限与 intents:Slack 缺
chat:write、频道未邀请 Bot、或 Discord 未开Message Content Intent/ 历史消息权限时,入站可见但出站失败或消息被平台静默丢弃。Webhook 与 Socket 模式所需权限集合不同,混用文档会导致「本地 curl 成功、正式群不行」。Slack 多 Workspace 场景下,还要确认 App 安装在当前 Workspace 且事件订阅指向当前网关公网地址,否则 Dashboard 仍可能显示「已连接」而实际收不到该 Workspace 的 payload。
先对照下一节表定性,再动模型参数或重装依赖。
工程上建议把「通道侧」与「会话/模型侧」写在两张 Runbook 里:前者只含 probe、pairing、mention、平台权限与回调 URL;后者才含 models status、thinking、heartbeat 与 Cron 通道。混在一张表里会导致每次事故都从换 Key 开始,浪费数小时。
若你同时接了 Matrix 与 Slack,症状可能是「Matrix 房间正常、IM 群不行」——这几乎直接指向 IM 专属策略或 Bot 安装范围,而不是 Homeserver 故障。
排障时建议单变量:一次只改 mention、或只改 pairing、或只改 Slack 重授权,并在变更窗口记录前后探针结果,方便次日对照。
2. 现象对照表
| 现象 | 优先怀疑 | 首选验证 | 可先排除 |
|---|---|---|---|
| 仅群聊无回,私聊正常 | requireMention、房间策略 | 群内发带 @ 的短句对比 | 整站模型 Key |
| 新成员无回,老成员正常 | pairing 待审批 | pairing list 看 pending | 端口 18789 |
| 全通道无回,doctor 黄项 | 通道 Token 失效 | channels status --probe | CPU 满载 |
| Discord 私聊正常、服务器频道无声 | intents、Bot 角色、频道可见性 | 开发者门户 intents 与频道权限矩阵 | 模型 temperature |
| Slack 线程外无回 | 事件订阅范围、app 安装范围 | 重授权与事件 URL 对齐网关 | 随机「不稳定」 |
openclaw pairing list(按通道加 --channel),再决定是否批量放行或收紧策略;勿与 Cron 空输出 混查。
表中的「可先排除」列刻意列出团队最常误判的方向:例如端口 18789若真的不可达,通常私聊也会挂;若只有新成员异常,先不要花时间改防火墙。同理,模型 temperature 只影响生成风格,不会让 Bot 在 Discord 频道里完全收不到事件——把力气花在 intents 上回报更高。
3. 六步排查:probe、pairing、doctor、logs
以下顺序尽量「由外到内」:先证明通道握手与权限,再看策略与模型。每一步只解决一类假设,避免同时改三处导致无法回归。
- 通道探测:执行
openclaw channels status --probe,记录各通道 OK/失败与延迟;失败项对照平台侧 App 配置与回调 URL。若 probe 间歇性失败,优先查反代超时、TLS 证书链与防火墙仅放行 443 但未放行健康检查路径等基础设施问题,而不是先怀疑 Discord intent。 - pairing 队列:对 Slack/Discord/Telegram 等执行
openclaw pairing list --channel <name>,按 Runbook 审批或拒绝;确认无积压后再测群聊。批量导入成员或开放邀请链接后,最容易出现「一夜之间全员 pending」。 - mention 策略:在配置中查找
requireMention(或等价键),对测试群暂时关闭或仅对白名单房间开启;复测「无 @」与「有 @」两种输入。验收时务必用真实最终用户账号发消息,管理员账号有时会被列入例外名单,造成「我测可以、用户不行」。 - doctor 与健康:
openclaw doctor修常见配置漂移;与 Docker 环境 联查时确认容器内与宿主配置一致。doctor 通过仅表示配置语法与常见项合理,不代替平台侧 Bot 权限矩阵。 - 日志跟读:
openclaw logs --follow同时在群内发探针消息,看是否有「policy drop」「mention required」「pairing pending」类关键字;无则再怀疑模型路由。建议给探针消息加固定前缀(如[OC-PROBE]),便于在日志里 grep。 - Mac 云持久化:确认 plist 或守护进程下工作目录与配置路径一致,重启后仍读同一
openclaw.json,避免「人工 SSH 下正常、launchd 下又变回旧策略」。这与 launchd 环境变量 同类:交互式 shell 与守护进程读到的 cwd、HOME 可能不同。
4. 可引用参数与清单
① Discord:生产环境常见需启用 Message Content Intent;是否额外打开 Server Members、Presence 等取决于你是否依赖成员列表或在线状态,最小权限原则下只开刚需。② Slack:Bot 至少具备发消息与读频道历史(具体 scope 按事件 API 与 Socket 模式裁剪);频道内需 /invite Bot,否则部分事件根本不会投递。
③ 回调与域名:网关对外 URL 与 Slack/Discord 填写的回调必须 HTTPS 一致,避免混用 http 内网地址与公网域名;反代若剥离路径前缀,要与应用内 basePath 对齐。④ 缓存与验收节奏:群策略或 App 重授权后,平台侧缓存可达数分钟,验收时等待双周期再判失败,减少「刚改完立刻否定」的噪声。⑤ 运营文档:将「群内必须 @ 机器人」写进用户可见文档,比反复改配置更能减少误报工单;对内则保留 pairing 审批责任人列表。
⑥ 审计留痕:对每次 pairing 批量放行记录 ticket 编号与操作者,满足后续安全复查;与 生产加固 中的 Token 轮换记录同理,避免「谁放的行」无从追溯。
5. 从反复改 Token 到稳定 Mac 云 Agent 底座
每次「不回」就轮换 Bot Token 或重装包,会掩盖真正的 mention/pairing 策略问题,也让审计无法复现。把 probe、pairing、doctor、logs 四步固定进 Runbook,比堆密钥更有效。
在个人笔记本或临时隧道上调试 IM 权限,往往受本地防火墙、睡眠策略与「合盖断网」影响:今天通、明天不通,很难判断是 OpenClaw 还是操作系统省电。把网关长期放在不关盖、不断电的节点上,才能稳定复现 Slack/Discord 的事件流与重连行为。
这类节点若继续借用 Windows 或杂牌 Linux VPS,又要兼容 Apple 工具链与 launchd 习惯时,兼容层与远程图形/签名环境往往更折腾。租赁 VPSMAC M4 Mac 云主机作为 7×24 网关宿主机,可与 launchd 定时任务 同机共存,通道与系统行为更可预测,排障也更容易对齐生产;需要快速上线时仍可先读 五分钟极速部署 把骨架搭好,再按本文补 IM 侧清单。
6. 常见问题
私聊正常、群聊必失败,最先查什么?
先查 requireMention 与群策略,再用带 @ 的短消息对照。若加 @ 后立即正常,应在文档中固化规则或评估是否对内部群关闭 mention 限制。
pairing list 为空仍无回?
回到 channels probe 与 Bot 权限矩阵;并跟读 logs 是否 policy 丢弃。另查是否误用测试 Workspace 的 Token 而用户在正式 Workspace 发消息。
与 heartbeat 静默如何区分?
heartbeat 多影响定时/空输出;若仅群聊且与 mention 强相关,优先本文通道侧。若全通道、含私聊都无回,再并行打开 heartbeat 文 对照。
Discord 已开 intent 仍收不到频道消息?
核对 Bot 是否具备该频道的 View Channel、Read Message History;部分私有频道需单独授权角色。开发者门户保存后需等待数分钟再测。
Slack 显示 App 在线但不触发?
检查事件订阅 URL 是否指向当前环境、是否完成重授权;多 Workspace 时每个空间需单独安装。可用平台自带「事件投递日志」与网关 access log 对齐时间戳。