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. 官方資料

本頁目錄