一個 Gateway 養多個助理——Bindings 路由,讓對的訊息找到對的助理

4 min read

如果你的工作群組和私人群組都用同一個助理回話,那場面會有多混亂⋯

多 Agent + Bindings 就是解法:每個場景,讓對的那個助理出來說話。

本篇學習目標

  • 知道什麼情況需要多個 Agent
  • 學會在 Config 裡定義多個 Agent
  • 設定 Bindings 路由規則
  • 找到 Telegram 群組 ID

為什麼要多個 Agent?

場景 需求
工作群組 vs 私人對話 不同工作區,資料不混
需要快速回覆 vs 深度分析 用不同模型
多個專案各自獨立 各用一個工作區

怎麼設定?兩步搞定

第一步:在 agents.list 定義你的助理們

{
  "agents": {
    "list": [
      { "id": "main",      "name": "主站助理", "workspace": "~/.openclaw/workspace-main", "default": true },
      { "id": "project-a", "name": "專案 A",  "workspace": "~/.openclaw/workspace-project-a" },
      { "id": "project-b", "name": "專案 B",  "workspace": "~/.openclaw/workspace-project-b" }
    ]
  }
}

第二步:在 bindings 設定路由規則

就像門衛一樣:「從群組 A 進來的,去找助理 A;群組 B 的去找助理 B;其他的去找預設。」

{
  "bindings": [
    { "agentId": "project-a", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-1001234567890" } } },
    { "agentId": "project-b", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-1009876543210" } } },
    { "agentId": "main",      "match": { "channel": "telegram" } }
  ]
}

⚠️ Bindings 順序超重要! 愈具體的規則寫在愈前面,匹配時「先命中先贏」。上面的例子中,群組規則要在「其他 Telegram」規則的前面


怎麼找群組 ID?

方法一:在群組發一則訊息,然後:

openclaw logs --follow
# 找 log 裡的 chat.id,通常是負數如 -1001234567890

方法二:把群組的任意訊息轉發給 @userinfobot,它會直接告訴你。


進階:不同 Bot 帳號對應不同助理

如果你有多個 Bot Token(用多個 Bot 帳號):

{
  "channels": {
    "telegram": {
      "accounts": {
        "default": { "botToken": "Bot A 的 Token" },
        "alerts":  { "botToken": "Bot B 的 Token" }
      }
    }
  },
  "bindings": [
    { "agentId": "main",   "match": { "channel": "telegram", "accountId": "default" } },
    { "agentId": "alerts", "match": { "channel": "telegram", "accountId": "alerts" } }
  ]
}

改完記得 Save

修改 Config 後按 Save / Apply。如果出現「baseHash 衝突」,是設定被其他地方改過了——重新載入 Config 再改一次即可。


下一步

現在你有多個助理了,下一篇我們來把其中一個部署到 VPS,讓他 24 小時隨時待命。

← 上一篇:記憶與工作區 | 👉 把助理搬到 VPS,隨時隨地都能用