1220 字
6 分鐘
OpenClaw Telegram Group Topics 設定:讓不同話題有獨立 AI 提示詞

更新(2026-03-08):本文已依 OpenClaw v2026.3.7 更新。此版本新增 per-topic agentId 支援,讓不同話題可以路由到不同 agent,原本「topics 無法切換 agent」的限制已不再成立。

Telegram 的 Forum Topics 可以讓群組裡不同話題有獨立的討論區。想讓 OpenClaw 在各話題有不同的 AI 行為,直覺上會想到「用 bindings 把不同話題導向不同 agent」——但這條路走不通。

💡 如果是想了解基本的模型切換設定,可以先看 OpenClaw 模型設定全解

先釐清概念:bindings vs topics#

bindings:根據來源決定 agent#

bindings 的作用是根據訊息來源,把整個群組導向指定的 agent:

"bindings": [
{
"agentId": "my-seo-agent",
"match": {
"channel": "telegram",
"accountId": "-100xxxxxxxxxx"
}
}
]

這樣這個群組的所有訊息都會由 my-seo-agent 處理。

限制bindings.match 不支援 threadId,沒辦法細分到話題層級。硬設的話 gateway 會直接報 config invalid

topics:設定各話題的提示詞與行為#

Topics 是 channels.telegram.groups 底下的設定,針對每個話題指定提示詞、回應條件、以及(v2026.3.7 起)專屬的 agent。

機制可以做什麼不能做什麼
bindings群組層級的 agent 路由指定到特定話題
topics各話題的提示詞、回應行為、指定 agent切換不同模型

從 v2026.3.7 起,topics 支援 agentId 欄位,可以讓不同話題路由到不同的 agent,並擁有完全隔離的 session。


channels.telegram 完整設定說明#

"channels": {
"telegram": {
"enabled": true,
"botToken": "你的 Bot Token",
"dmPolicy": "allowlist",
"groupPolicy": "open",
"streaming": "partial",
"allowFrom": [
"123456789",
"987654321"
],
"groups": {
"-100xxxxxxxxxx": {
"topics": {
"1": {
"requireMention": false
},
"14": {
"requireMention": false,
"systemPrompt": "你是這個話題的專屬助手,專注回答 XXX 相關問題..."
}
}
}
}
}
}

根層級欄位說明:

欄位說明
enabled是否啟用 Telegram channel
botTokenTelegram Bot Token
dmPolicy私訊政策:open(所有人)或 allowlist(僅 allowFrom 清單)
groupPolicy群組政策:openallowlist(僅 groups 裡的群組)
streaming串流模式:partial(邊生成邊發送)
allowFrom允許使用的 user ID 清單

Topics 設定格式#

Key 是群組 ID(帶負號),topics 底下再用話題 ID 作為 Key:

"groups": {
"-100xxxxxxxxxx": {
"topics": {
"14": {
"requireMention": false,
"systemPrompt": "你是這個話題的專屬助手,專注回答 XXX 相關問題..."
}
}
}
}

TelegramTopicSchema 支援的欄位#

欄位說明
requireMention是否需要 @bot 才回應
systemPrompt自訂提示詞
agentId指定此話題使用的 agent(v2026.3.7+)
enabled是否啟用此話題
allowFrom允許的 user ID 清單
groupPolicy話題層級的群組政策
skills啟用的 skills 清單
disableAudioPreflight停用音訊預檢

不支援model——無法為個別話題指定專用模型。

如何取得 Topic ID#

從 Telegram Web 的 URL 直接讀取:

https://web.telegram.org/a/#-100xxxxxxxxxx_14
↑ 群組ID ↑ 話題ID

底線後面的數字就是話題 ID,填入設定時用字串格式(帶引號)。


Session 隔離行為#

話題之間的對話上下文自動隔離,不需要任何設定。OpenClaw 會把 :topic:<ID> 附加到 session key:

telegram:group:-100xxxxxxxxxx:topic:4

同一個群組的不同話題,AI 的對話記憶完全不互串。


Cron 推送到指定話題#

Cron 排程通知可以指定發到特定話題:

"delivery": {
"mode": "announce",
"to": "-100xxxxxxxxxx:topic:29"
}

錯誤警報也可以獨立設定發到不同話題:

"failureAlert": {
"mode": "announce",
"to": "-100xxxxxxxxxx:topic:29"
}

to 格式:<群組ID>:topic:<話題ID>mode 支援 noneannouncewebhook



常見問題#

Q: 為什麼設定 bindings 指定話題層級的 agent 後,gateway 回報 config invalid?#

A: bindings.match 目前不支援 threadId 欄位,只能匹配到 channelaccountId(群組 ID)層級。如果你在 match 裡加了 threadId,gateway 在驗證設定時就會直接報錯。v2026.3.7 起,要讓特定話題路由到不同 agent,請改用 channels.telegram.groups.<群組ID>.topics.<話題ID>.agentId

Q: topics 可以指定不同話題使用不同 agent 或模型嗎?#

A: v2026.3.7 起,agentId 欄位已原生支援,可以讓不同話題路由到不同的 agent。但 model 欄位仍不支援,無法為個別話題直接指定模型——如果需要不同模型,需透過設定不同 agent 來達成。

Q: 每個話題的對話記憶是獨立的嗎?需要額外設定嗎?#

A: 是獨立的,不需要任何設定。OpenClaw 會自動把 :topic:<話題ID> 附加到 session key(例如 telegram:group:-100xxxxxxxxxx:topic:14),話題之間的對話上下文完全不互串。同一個群組裡的不同話題,AI 不會記得彼此的對話內容。


參考來源:

OpenClaw 官方文件 - Cron Jobs Telegram Delivery

OpenClaw v2026.3.7 Release Notes

總結#

  • bindings 只能做群組層級的 agent 路由,不支援 threadId
  • topics 是設定各話題的提示詞和行為,v2026.3.7 起支援 agentId 指定不同 agent
  • Topics 設定在 channels.telegram.groups.<群組ID>.topics,Key 為話題 ID
  • Topic ID 從 Telegram Web URL 的底線後取得
  • 話題 session 自動隔離,不需要額外設定
  • Cron 推送格式:"to": "<群組ID>:topic:<話題ID>"
  • 設定後若發生工具失效或記憶遺失,可參考 OpenClaw 2026.3.2 workspaceOnly 修復
  • 如果想接更多模型,可以參考 Zeabur AI Hub 自訂 provider 設定
OpenClaw Telegram Group Topics 設定:讓不同話題有獨立 AI 提示詞
https://laplusda.com/posts/openclaw-telegram-group-topics/
作者
Zero
發佈於
2026-03-07
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。