AI 编程教程中文版
官方教程中文版Gateway 运行时

配置 Channel

配置 OpenClaw Channel:DM policy、group policy、mention gating、pairing、access groups、多账号、model override 和 Agent binding。

Channel 是 OpenClaw 接入外部消息平台的边界。你可以把它理解成“谁能把消息送进 Agent”。新手配置 Channel 时,优先考虑访问控制,不要先追求接入的平台数量。

这一章用 14 分钟换什么:你会知道私信、群聊、mention、多账号、model override 和 channel binding 分别解决什么问题,并且能避免“为了跑通先 open”的危险配置。

1. 先理解 Channel 管什么

每个消息平台都有自己的账号、token、群组、thread 和身份格式,但 OpenClaw 把几个核心问题统一了:

  • 这个渠道要不要启动。
  • 哪些私信可以进来。
  • 哪些群组可以进来。
  • 群组消息是否必须 mention 才触发回复。
  • 多账号时如何区分个人账号、工作账号和支持账号。
  • 某个频道是否固定使用特定模型。
  • 这个入口最终路由到哪个 Agent。

这些都是入口边界。入口边界配置错了,后面的 Agent、tools、workspace 配得再好也会被错误输入影响。

flowchart TD
    Sender["外部发送者"]
    Channel["Channel"]
    Access["DM / group access"]
    Mention["mention gating"]
    Binding["binding 选择 Agent"]
    Session["session key"]
    Agent["Agent"]

    Sender --> Channel
    Channel --> Access
    Access --> Mention
    Mention --> Binding
    Binding --> Session
    Session --> Agent

    style Channel fill:#e0f2fe,stroke:#0284c7,stroke-width:2px
    style Access fill:#fee2e2,stroke:#ef4444,stroke-width:2px
    style Agent fill:#dcfce7,stroke:#22c55e,stroke-width:2px

入口安全先于 Agent 能力:一个陌生入口能触发完整 tools,比一个模型答错更危险。

2. 私信策略怎么选

官方 DM policy 有四类:

DM policy行为新手建议
pairing默认;未知发送者收到一次性配对码,owner 批准后才能继续首选
allowlist只允许 allowFrom 或已配对 allow store 里的发送者适合固定联系人
open允许所有私信,但必须显式 allowFrom: ["*"]公开入口才考虑
disabled忽略所有私信只做群组或只做系统入口时用

新手默认选 pairingallowlist。个人助手、家庭助手、工作助手都不应该默认 open

pairing 有几个关键事实:

  • pairing code 8 位、全大写、避开易混淆字符。
  • pairing code 1 小时过期。
  • 每个 channel 的 pending DM pairing request 默认最多 3 个。
  • 批准 DM pairing code 只允许这个发送者私信访问,不会自动允许群组控制。
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>

open 不是“先跑通”的捷径open 只适合你明确在做公开入口,并且已经配好更窄的 tools、sandbox、session 隔离和审计。

3. 群组策略怎么选

群组比私信更容易出问题,因为群里每个人都可能说话,消息里还会夹杂转发、引用、链接和玩笑。

官方 group policy 的基本含义是:

Group policy行为新手建议
allowlist默认;只允许配置过的群组或 sender首选
open绕过群组 allowlist,但 mention gating 仍可生效谨慎
disabled阻止所有群组或房间消息不接群时用

新手建议:群组先保持 allowlist,再开启 mention gating。只有当你能解释“这个群为什么可以触发 Agent”时,才把它放进允许列表。

如果 provider block 完全缺失,runtime group policy 会 fail-closed 回到 allowlist 并给启动 warning。这是好事:没配置清楚就不要让群消息进来。

4. Mention gating 为什么重要

群聊里不应该让 Agent 响应每一句话。Mention gating 的作用是:Agent 可以看到上下文,但只有被点名时才回复。

官方文档也强调,群组消息默认应该依赖 mention 或显式激活方式。新手配置时,先把 mention pattern 设得简单、明确,避免常用词误触发。

一个好规则是:群里的人需要有意识地叫它,它才行动。

WhatsApp 例子里,群组可以这样要求 mention:

{
  channels: {
    whatsapp: {
      groups: {
        "*": { requireMention: true },
      },
    },
  },
  agents: {
    list: [
      {
        id: "main",
        groupChat: {
          historyLimit: 50,
          mentionPatterns: ["@?openclaw"],
        },
      },
    ],
  },
}

mention pattern 越短越危险:用产品名、bot 名或明确别名,不要用“助手”“帮我”这种高频词。

5. 多账号时先隔离 session

多账号不是多填几个 token。它会影响身份、审计、路由和上下文隔离。

如果同一个 Gateway 里有个人账号和工作账号,至少要想清楚:

  • accountId 怎么命名,方便日志和路由区分。
  • DM session 是否按 channel、account、peer 隔离。
  • 不同账号是否路由到不同 Agent。
  • 不同 Agent 是否使用不同 workspace 和 tools。

如果两个账号共享同一个 main session,个人上下文、工作上下文和权限暗示可能混在一起。

Session key 常见形状:

场景Session key 形状
默认直接消息agent:<agentId>:<mainKey>
群组agent:<agentId>:<channel>:group:<id>
频道 / 房间agent:<agentId>:<channel>:channel:<id>
Slack / Discord thread在基础 key 后追加 :thread:{threadId}
Telegram forum topic在 group key 里包含 :topic:<topicId>

6. Channel binding 怎么选 Agent

OpenClaw 路由 inbound message 时会选择一个 Agent。大致顺序是:精确 peer、thread parent、Discord guild / roles、Slack team、account、channel、default agent。

这意味着 routing 是确定性的,不是模型临时选择。

你要实现配置重点
Slack 工作区进 support Agentbindings 匹配 teamId
Telegram 某个群进 docs Agentbindings 匹配 group peer
WhatsApp 工作账号进 work Agent匹配 channel + accountId
默认入口进 main Agent设置 default agent 或让 main 兜底

模型不决定回复去哪:回复回到消息来的 channel。Agent 选择由 host config 和 bindings 决定。

7. 按频道指定模型

channels.modelByChannel 适合把具体频道固定到某个模型。它只应服务明确场景:

  • 高价值支持频道用强模型。
  • 低风险通知频道用低成本模型。
  • 截图或长上下文多的频道用更合适的模型。

不要把模型覆盖当成权限控制。模型更强不等于更安全;入口安全仍然靠 allowlist、mention、session 和 tools。

{
  channels: {
    modelByChannel: {
      telegram: {
        "-1000000000000": "openai/gpt-4.1-mini",
        "-1000000000000:topic:99": "anthropic/claude-sonnet-4-6",
      },
    },
  },
}

8. 支持哪些渠道

OpenClaw 支持多个消息平台同时接入。官方当前列出的入口包括 Discord、Feishu、Google Chat、IRC、LINE、Matrix、Mattermost、Microsoft Teams、Nextcloud Talk、QQ Bot、Signal、Slack、Telegram、Twitch、WebChat、WhatsApp、Zalo 等。

新手不要同时接十个平台。最快跑通通常是 Telegram;WhatsApp 需要 QR pairing,并且在磁盘上保留更多状态。

9. 新手常见坑

  • 为了“先跑通”把 DM 设成 open
  • 群组开了 open,但 mention pattern 太宽。
  • 多账号共用一个 workspace 和 session。
  • 只配置 token,不配置 allowlist。
  • 公开入口仍然加载完整 tools。
  • 频道模型覆盖后,以为风险也被解决了。
  • DM pairing 批准后,以为自动获得群组权限。
  • bindings 没写清,导致工作入口落到 main Agent。

10. 怎么判断 Channel 配置健康

健康标准:

  • 只接入当前真正要用的渠道。
  • DM 默认是 pairingallowlist
  • 群组默认是 allowlist,并要求 mention。
  • 多账号能从日志里区分来源。
  • 不同角色入口能路由到不同 Agent 或不同 workspace。
  • openclaw doctor 没有访问控制相关警告。

新手先把一个渠道跑稳,再接第二个。不要同时接十个平台排错。

Channel 验收看四件事:谁能私信、哪个群能触发、消息落到哪个 Agent、session 是否隔离;这四件说不清,就不要继续加新平台。

11. 本章自检

  1. pairingallowlistopendisabled 的差异是什么?
  2. 群聊为什么要先 allowlist,再做 mention gating?
  3. Channel binding 和 model override 分别解决什么问题?

过关标准:你能用一句话说清 —— “Channel 配置的核心不是接入更多平台,而是控制谁能进来、何时触发、落到哪个 Agent、使用哪个 session。”

12. 接下来去哪

13. 官方资料

本页目录