搞定 OpenClaw 的頻道與路由:讓訊息精準對接你的 Agent
當你在開發跨平台的機器人時,最頭痛的通常不是串接 API,而是如何管理訊息的「去向」。想像一下,如果你同時在 Telegram、Discord 和 WhatsApp 上跑好幾個不同的 Agent,要怎麼確保某個群組的對話不會跑去干擾另一個專案的 context?或是當用戶在 Thread 裡發言時,你的機器人能不能精準地接住話茬?
OpenClaw 的路由機制就是為了自動化處理這些麻煩事而設計的,它會根據你設定的規則,確定地將回覆送回訊息來源。
需要準備的東西
Section titled “需要準備的東西”- 已安裝好的 OpenClaw 環境
- 至少一個配置好的 Channel(例如 Telegram, Discord 或 WhatsApp)
- 你的
config.json5配置文件
要在 5 分鐘內讓你的 Agent 上線並正確接聽訊息,你只需要在設定檔中定義好 agents 和 bindings。
- 定義 Agent:在
agents.list中建立你的機器人身份。 - 綁定規則:在
bindings中指定哪個頻道或群組該由哪個 Agent 負責。
{ agents: { list: [{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }], }, bindings: [ { match: { channel: "slack", teamId: "T123" }, agentId: "support" }, { match: { channel: "telegram", peer: { kind: "group", id: "-100123" } }, agentId: "support" }, ],}OpenClaw 會自動處理回覆路徑,模型本身不參與路由決策,一切都由你的配置文件掌控。
核心概念與路由規則
Section titled “核心概念與路由規則”- Channel: 訊息來源,例如
whatsapp,telegram,discord,slack,signal,imessage,webchat。 - AccountId: 每個頻道的帳號實例(視頻道支援情況而定)。
- AgentId: 獨立的工作區與 Session 儲存區(你可以把它當作機器人的「大腦」)。
- SessionKey: 用來儲存上下文(context)並控制併發處理的 key。
路由優先順序
Section titled “路由優先順序”當一則訊息進來時,OpenClaw 會依序按照以下規則挑選 一個 Agent:
- 精確對等匹配 (Exact peer match):檢查
bindings中的peer.kind與peer.id。 - 伺服器匹配 (Guild match):適用於 Discord 的
guildId。 - 團隊匹配 (Team match):適用於 Slack 的
teamId。 - 帳號匹配 (Account match):匹配頻道上的
accountId。 - 頻道匹配 (Channel match):匹配該頻道上的任何帳號。
- 預設 Agent:使用
agents.list[].default,若未設定則取列表第一個,最後退回main。
Session 的運作方式
Section titled “Session 的運作方式”所有的對話都會被歸類到特定的 Session 中。直接訊息(DM)通常會進入 Agent 的 main session,而群組或頻道則會保持隔離:
- 群組:
agent:<agentId>:<channel>:group:<id> - 討論串 (Threads):在 Slack 或 Discord 中,會在 key 後方加上
:thread:<threadId>。 - 論壇主題 (Forum topics):Telegram 的主題會嵌入在群組 key 中,例如
:topic:42。
Broadcast Groups (廣播群組)
Section titled “Broadcast Groups (廣播群組)”如果你希望在同一個群組裡讓多個 Agent 同時運作(例如在 WhatsApp 群組中被標記後),你可以設定廣播群組:
{ broadcast: { strategy: "parallel", "120363403215116621@g.us": ["alfred", "baerbel"], "+15555550123": ["support", "logger"], },}找不到對話紀錄或 Session 資料?
Section titled “找不到對話紀錄或 Session 資料?”預設情況下,Session 儲存於 ~/.openclaw 目錄下:
- 路徑:
~/.openclaw/agents/<agentId>/sessions/sessions.json - JSONL 格式的對話逐字稿(transcripts)也會存放在旁邊。
- 你可以透過
session.store配置來修改路徑,並使用{agentId}模板。
回覆內容混亂或上下文遺失?
Section titled “回覆內容混亂或上下文遺失?”請檢查訊息的 ReplyToId 和 ReplyToBody。OpenClaw 會將引用的上下文以 [Replying to ...] 區塊的形式附加到 Body 中。這在所有 Channel 都是一致的,確保你的 Agent 能理解它在回覆誰。
WebChat 看到的是哪個 Agent 的內容?
Section titled “WebChat 看到的是哪個 Agent 的內容?”WebChat 會連結到你選定的 Agent,並預設顯示該 Agent 的 main session。這讓你可以從一個地方查看該 Agent 的跨頻道上下文。
如果你在配置路由或綁定 Agent 時遇到問題,可以直接詢問 AI Setup Assistant 獲取即時協助。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。