Skip to content

Slack 多工作区配置下第二个工作区入站 DM 无法到达 OpenClaw

问题

配置了两个 Slack 工作区时,主工作区(Workspace A)入站和出站均正常,但第二个工作区(Workspace B)仅出站正常,入站 DM 回复永远无法到达 OpenClaw,agent 没有任何响应。

已确认不是权限问题

  • message.im 已启用
  • im:history 权限存在
  • App Home 已开启
  • 将第二个工作区临时设为 channels.slack.defaultAccount 后,入站依然不工作

受影响版本:OpenClaw 2026.4.14 及以上

解决方案

可靠临时方案:将第二个工作区独立部署

社区测试确认:在独立 Linux 用户下运行独立的 OpenClaw 实例,只配置第二个 Slack 工作区(单工作区配置),入站 DM 可以正常工作。

bash
# 创建独立用户
sudo useradd -m openclaw-ws2
sudo -u openclaw-ws2 bash

# 在独立用户环境安装 OpenClaw
npm install -g openclaw

# 仅配置第二个工作区
# ~/.openclaw/config.yaml
channels:
  slack:
    accounts:
      - name: workspace-b
        ...

根本原因分析(社区):

多工作区实例中,次要 Slack 账户的 webhook 事件接收或路由存在冲突。可能是 socket mode 或事件订阅注册只绑定了主账户,次要账户的入站事件被丢弃。

等待官方修复:该问题已报告,为已知 open bug(#58523)。

诊断步骤

bash
# 检查是否有入站事件到达但被丢弃
openclaw logs gateway --follow | grep -i "slack.*event\|inbound\|workspace-b"

# 验证两个工作区的 socket 连接状态
openclaw status | grep slack

常见问题

Q: 两个工作区用同一个 OpenClaw 实例行不行?

A: 目前不稳定,多工作区的入站路由有 bug。临时方案是分实例部署(每个工作区一个独立实例),代价是资源消耗加倍。

Q: 将 Workspace B 设为 defaultAccount 也不行,是为什么?

A: defaultAccount 只影响出站的默认路由,不影响入站的事件订阅绑定。所以换 defaultAccount 对入站问题无效。