☰
OpenClaw 接入 Telegram 群组实战指南:TaoToken 统一 Key 配置与 Bot 联调
2026/9/27 22:08:03 网站建设 项目流程

1. 为什么群组接入总是卡在“收不到消息”

OpenClaw 接入 Telegram 群组这件事,表面看只是填几个 ID,实际踩坑的人非常多。核心检索词就三个:OpenClaw、Telegram 群组、Bot 配置。它要做的事情很明确——让跑在 OpenClaw 框架里的 AI 助手,能在指定 Telegram 群里接收消息并回复。适合谁?适合已经能把 OpenClaw 跑起来、想把它塞进团队群或兴趣群做助手的开发者,尤其是用 Windows 计划任务或 Linux 常驻进程部署的那批人。

我见过最多的现象是:Bot 能往群里发消息,说明它确实在群里、网络也通,但群里 @ 它却毫无反应,OpenClaw 的会话列表里也生不出agent:xxx:telegram:group:xxx这样的会话。于是大家开始怀疑网络、怀疑 Token、怀疑版本,来回折腾。真正的原因往往有两个:一是把群组 ID 错填进了只对私聊生效的allowFrom;二是 Telegram Bot 的隐私模式没关,或者关了但没让 Bot 重新入群导致设置没生效。这篇就按“创建 Bot → 群组权限 → TaoToken 统一 Key 配置 → 消息回环验证”的完整链路走一遍,把可复制的config.toml骨架和settings.json片段都给出来,让你一次跑通。

2. 前置准备:TaoToken 统一 Key 与通道配置

在动 Telegram 之前,先把模型通道这块理顺,否则后面消息回环验证时你分不清是群组没通还是模型没通。TaoToken 在这里的角色是统一 Key 和 API 通道:你只需要一个 Key,就能在 OpenClaw 里调用不同模型,不用为每个模型单独维护一套凭证。对群组场景来说这点很实用,因为群里可能有人问代码、有人问文案,模型切换频繁。

先拿 Key。打开官网https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,注册后在控制台里创建 API Key。控制台地址是https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite,Key 管理页在https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite。创建完先复制保存,页面刷新后一般不再完整显示。

API 基地址用https://taotoken.net/api,注意这个地址不带任何查询参数。OpenClaw 里配置模型通道时,把 base_url 指向它,Key 填进去即可。如果你后面要长期跑编码类 Agent,可以了解下 Coding Plan(https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite);只是想先验证模型通不通,用模型对话页(https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite)发一句话最快。接入细节和字段说明看文档https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite。

注意:Key 只放在服务端配置文件或环境变量里,别写进会提交到仓库的示例文件。群组场景下 Bot Token 和模型 Key 是两套东西,别混。

3. 创建 Bot 并处理群组权限

3.1 用 BotFather 建 Bot 拿 Token

在 Telegram 里找 @BotFather,发/newbot,按提示给 Bot 起名和用户名(用户名必须以 bot 结尾)。完成后它会返回一串 Bot Token,形如123456:ABC-DEF...。这串 Token 就是 OpenClaw 配置里botToken字段的值,先存好。

3.2 关闭隐私模式并重新入群

Telegram Bot 默认开启隐私模式,这个模式下 Bot 看不到群里的普通消息,只能看到 @ 它、回复它,或者它被设为管理员时的消息。操作路径:@BotFather →/mybots→ 选你的 Bot →Bot Settings→Group Privacy→ 设为 Disabled。

关键一步很多人漏掉:改完隐私模式后,必须把 Bot 移出群组再重新拉进来,否则设置不生效。我试过只改设置不重拉,群里 @ 它依旧没反应,重拉之后立刻正常。

3.3 获取群组 ID

群组 ID 是负数。普通群组形如-51xxxx,超级群组通常以-100开头,形如-10051xxxx。获取方式有三种:在群里发消息后看 OpenClaw 日志里的chat.id;用 @getidsbot 这类工具 Bot 查询;或者调 Telegram API 的getUpdates接口。建议把短 ID 和带-100的完整 ID 都记下来,配置时两个都填,兼容性最好。

4. 可复制配置:config.toml 骨架与 settings.json 片段

OpenClaw 的配置分两块:模型通道走config.toml,Telegram 渠道走settings.json(或等价的 JSON 配置)。下面给的是骨架,字段值替换成你自己的。

4.1 config.toml 模型通道骨架

# config.toml —— 模型通道走 TaoToken 统一 Key [provider.taotoken] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" default_model = "claude-sonnet-4-5" [agent.default] provider = "taotoken" max_tokens = 2048 temperature = 0.7

base_url固定用https://taotoken.net/api,不要加斜杠后缀或查询参数。default_model按你实际可用的模型名填,不确定就先在模型对话页试一个能通的。

4.2 settings.json 群组配置片段

{ "channels": { "telegram": { "enabled": true, "groupPolicy": "allowlist", "groups": { "-51xxxx": { "requireMention": true }, "-10051xxxx": { "requireMention": true } }, "accounts": { "magic": { "enabled": true, "botToken": "123456:ABC-DEF...", "allowFrom": ["56xxxx"], "dmPolicy": "allowlist", "groupPolicy": "allowlist", "streaming": "partial" } } } } }

字段含义要分清,这是最容易错的地方:

字段作用域示例值说明
allowFrom私聊 DM"56xxxx"允许私聊触发 Bot 的用户 ID
groups群组"-51xxxx"允许 Bot 响应的群组 ID 列表
groupPolicy群组策略"allowlist"群组消息处理策略
groupAllowFrom群组内用户"56xxxx"可选,限制群内谁能触发
requireMention群组内true是否必须 @Bot 才响应

allowFrom只管私聊用户白名单,把群组 ID 填进去是无效的,OpenClaw 解析时会直接忽略群组消息。群组必须走groups对象。groupPolicy支持allowlist、open、disabled,填public或all会校验失败。

4.3 用 gateway 应用配置

改完配置后,用 gateway 工具打补丁并让 OpenClaw 重启 Gateway:

openclaw gateway config.patch --raw '{"channels":{"telegram":{"groupPolicy":"allowlist","groups":{"-51xxxx":{"requireMention":true},"-10051xxxx":{"requireMention":true}}}}}'

执行后 OpenClaw 会自动重启 Gateway 应用新配置。如果你改的是config.toml里的模型通道,重启后模型通道也会一起生效。

5. 验证请求与消息回环

配置应用后,按顺序做三步验证,别跳步。

第一步,确认 Bot 在群里。在群里发一条普通消息,看 Bot 是否能收到(日志里有没有chat.id)。如果这一步就没日志,说明隐私模式或入群状态有问题,回到 3.2。

第二步,触发指令。在群里发@你的bot 测试成功了吗?。如果requireMention是true,必须带 @;如果设成false,群里所有消息都会触发,慎用,容易刷屏。

第三步,看回环结果。正常的话 Bot 会在群里回复,同时 OpenClaw 会话列表里出现新会话,形如agent:magic:telegram:group:-51xxxx。这个会话名就是回环成功的标志。

如果你还想单独验证模型通道,可以在模型对话页发一句话,确认 TaoToken 的 Key 和 base_url 没问题,再回到群组里测。这样能把“群组没通”和“模型没通”两个问题分开定位。

6. 本篇常见错排查

收不到群消息,Bot 却能发消息。先查groupPolicy是不是allowlist或open,再查groups里有没有正确的群组 ID,最后确认隐私模式关了且 Bot 重新入群过。这三步覆盖九成情况。

配置校验失败,提示不支持的值。多半是groupPolicy填了public或all,或者自己造了allowGroups这种不存在的字段。只认allowlist、open、disabled,群组白名单走groups。

群里 @ 了但没反应。检查requireMention是否为true而你没带 @,或者群组 ID 只填了短 ID 没填-100完整 ID。建议两个都填。

会话列表里没有 group 会话。说明消息根本没进 OpenClaw,回到隐私模式和入群状态排查,跟模型通道无关。

模型报错但群组通了。这时去看config.toml的base_url和 Key,确认用的是https://taotoken.net/api,Key 没写错、没过期。接入文档里有字段对照,排障时对着看最快。

排障和接入相关的入口我放在这里:API Keys 在https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite,接入文档在https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite。如果你是要长期跑编码类 Agent,走 Coding Planhttps://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite;只是验证模型通不通,用模型对话https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite就行。ClaudeCode 相关接入看https://taotoken.net/claude-code?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite。

最后补一个实操细节:群组 ID 建议在groups里同时写短 ID 和-100完整 ID,我踩过的坑就是只填了一个,换群类型后失效。另外requireMention在测试阶段先设true,跑通后再按需放开,避免群里消息一多把 Bot 刷爆。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询