配置 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 | 忽略所有私信 | 只做群組或只做系統入口時用 |
新手預設選 pairing 或 allowlist。個人助手、家庭助手、工作助手都不應該預設 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 Agent | bindings 匹配 teamId |
| Telegram 某個群進 docs Agent | bindings 匹配 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 預設是
pairing或allowlist。 - 群組預設是
allowlist,並要求 mention。 - 多賬號能從日誌裡區分來源。
- 不同角色入口能路由到不同 Agent 或不同 workspace。
openclaw doctor沒有訪問控制相關警告。
新手先把一個渠道跑穩,再接第二個。不要同時接十個平臺排錯。
Channel 驗收看四件事:誰能私信、哪個群能觸發、訊息落到哪個 Agent、session 是否隔離;這四件說不清,就不要繼續加新平臺。
11. 本章自檢
pairing、allowlist、open、disabled的差異是什麼?- 群聊為什麼要先 allowlist,再做 mention gating?
- Channel binding 和 model override 分別解決什麼問題?
過關標準:你能用一句話說清 —— “Channel 配置的核心不是接入更多平臺,而是控制誰能進來、何時觸發、落到哪個 Agent、使用哪個 session。”
12. 接下來去哪
安全與遠端訪問
Channel 入口清楚後,再看 Control UI、遠端訪問和共享入口風險。
Agent 配置
如果入口路由和 Agent 邊界還沒分清,先回到上一章。
理解:Channel 與安全
從原理篇繼續核對入口、路由、session、tool policy 和 sandbox。