跳到內容

搞定 OpenClaw 的頻道與路由:讓訊息精準對接你的 Agent

當你在開發跨平台的機器人時,最頭痛的通常不是串接 API,而是如何管理訊息的「去向」。想像一下,如果你同時在 Telegram、Discord 和 WhatsApp 上跑好幾個不同的 Agent,要怎麼確保某個群組的對話不會跑去干擾另一個專案的 context?或是當用戶在 Thread 裡發言時,你的機器人能不能精準地接住話茬?

OpenClaw 的路由機制就是為了自動化處理這些麻煩事而設計的,它會根據你設定的規則,確定地將回覆送回訊息來源。

  • 已安裝好的 OpenClaw 環境
  • 至少一個配置好的 Channel(例如 Telegram, Discord 或 WhatsApp)
  • 你的 config.json5 配置文件

要在 5 分鐘內讓你的 Agent 上線並正確接聽訊息,你只需要在設定檔中定義好 agents 和 bindings。

  1. 定義 Agent:在 agents.list 中建立你的機器人身份。
  2. 綁定規則:在 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 會自動處理回覆路徑,模型本身不參與路由決策,一切都由你的配置文件掌控。

  • Channel: 訊息來源,例如 whatsapp, telegram, discord, slack, signal, imessage, webchat。
  • AccountId: 每個頻道的帳號實例(視頻道支援情況而定)。
  • AgentId: 獨立的工作區與 Session 儲存區(你可以把它當作機器人的「大腦」)。
  • SessionKey: 用來儲存上下文(context)並控制併發處理的 key。

當一則訊息進來時,OpenClaw 會依序按照以下規則挑選 一個 Agent:

  1. 精確對等匹配 (Exact peer match):檢查 bindings 中的 peer.kind 與 peer.id。
  2. 伺服器匹配 (Guild match):適用於 Discord 的 guildId。
  3. 團隊匹配 (Team match):適用於 Slack 的 teamId。
  4. 帳號匹配 (Account match):匹配頻道上的 accountId。
  5. 頻道匹配 (Channel match):匹配該頻道上的任何帳號。
  6. 預設 Agent:使用 agents.list[].default,若未設定則取列表第一個,最後退回 main。

所有的對話都會被歸類到特定的 Session 中。直接訊息(DM)通常會進入 Agent 的 main session,而群組或頻道則會保持隔離:

  • 群組: agent:<agentId>:<channel>:group:<id>
  • 討論串 (Threads):在 Slack 或 Discord 中,會在 key 後方加上 :thread:<threadId>。
  • 論壇主題 (Forum topics):Telegram 的主題會嵌入在群組 key 中,例如 :topic:42。

如果你希望在同一個群組裡讓多個 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} 模板。

請檢查訊息的 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

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。