Telegram 接入——最流行的机器人平台
Hermes 消息平台接入第2篇:Telegram。创建机器人、配置网关、开始聊天。
这篇教程手把手教你,如何把 Hermes Agent 变成你 Telegram 里的私人 AI 助理,随时聊天、发语音、收文件。
第 1 步:找 BotFather 领“身份证”
每个 Telegram 机器人都有一个独一无二的 API 令牌,相当于它的身份证。你需要找 Telegram 官方机器人 @BotFather 申请。
- 打开 Telegram,搜索 @BotFather 并进入对话。
- 发送
/newbot命令。 - 给它起个显示名字(比如
Hermes Agent),随便起。 - 再起一个用户名,必须以
bot结尾(比如my_hermes_bot)。 - 完成后,BotFather 会发给你一串形如
123456789:ABCdef...的令牌。
⚠️ 这串令牌等于你机器人的控制权,千万别泄露! 万一泄露,立刻回 BotFather 发
/revoke吊销它。
第 2 步:给机器人“化妆”(可选)
想让机器人更好看、更好用?继续找 BotFather 用这些命令:
| 命令 | 作用 |
|---|---|
/setdescription |
设置机器人“能做什么”的介绍文字 |
/setabouttext |
设置机器人主页的简介 |
/setuserpic |
上传机器人头像 |
/setcommands |
设置聊天框里的 / 命令菜单 |
/setprivacy |
控制机器人能否看到群聊所有消息(见第 3 步) |
建议在 /setcommands 里设置这几个基础命令:
help - 显示帮助
new - 开启新对话
sethome - 将此聊天设为默认频道
第 3 步:群聊隐私模式(重点!)
Telegram 机器人默认开启隐私模式,这会导致它在群里“眼瞎”:
- 开着隐私模式:只能看到以
/开头的命令、直接回复它的消息、以及系统消息。 - 关掉隐私模式:能看到群里的所有消息。
关闭方法:找 BotFather → /mybots → 选择你的机器人 → Bot Settings → Group Privacy → Turn off。
⚠️ 改完设置后,必须把机器人移出群聊再重新拉回来,否则设置不生效。
💡 不想关隐私模式?把机器人设为群管理员,它也能看到所有消息。
只想“偷听”不插嘴? 配置以下参数,让机器人能看到群聊消息,但只在被 @ 时才回复:
telegram:
allowed_chats: ["-1001234567890"]
group_allowed_chats: ["-1001234567890"]
require_mention: true
observe_unmentioned_group_messages: true
第 4 步:找到你的数字 ID
Hermes 用数字 ID 来限制谁能用机器人,不是用户名。找 ID 最简单的方法:给 @userinfobot 发条消息,它会立刻回复你的数字 ID。记下它,下一步要用。
第 5 步:配置并启动 Hermes
推荐用交互式配置(跟着向导走就行):
hermes gateway setup
选择 Telegram,填入令牌和你的用户 ID,搞定。
也可以手动配置:编辑 ~/.hermes/.env 文件,加上:
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789
然后启动网关:
hermes gateway
几秒钟后,你的机器人就上线了!去 Telegram 给它发条消息试试吧。
小贴士:Docker 终端发送文件的坑
如果你用 Docker 作为终端后端,注意:文件是由网关进程发送的,不是容器内部。所以 MEDIA: 标签指向的路径必须能在宿主机上访问。建议把容器里的 /output 目录映射到宿主机:
terminal:
backend: docker
docker_volumes:
- "/home/user/.hermes/cache/documents:/output"
然后让模型输出宿主机路径,比如 MEDIA:/home/user/.hermes/cache/documents/report.txt。
总结一下:拿到 BotFather 的令牌 → 按需调整隐私设置 → 找到自己的数字 ID → 配置 Hermes 并启动,你的 Telegram 机器人就活了!
下篇预告:接入 Discord——为你的社区打造一个 AI 管理员。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/telegram