Hermes Telegram Bot 接入(macOS + 代理)

在带 HTTP 代理(Clash 127.0.0.1:7890)的 macOS 上把 Telegram 机器人接入 Hermes Agent。

环境

  • macOS 15.x
  • 代理:HTTP/HTTPS http://127.0.0.1:7890,SOCKS5 socks5://127.0.0.1:7890
  • Shell:zsh
  • Hermes home:~/.hermes/
  • Hermes venv:~/.hermes/hermes-agent/venv/(精简版,可能没 pip)

Step 1:创建 Bot

  1. Telegram 搜索 @BotFather
  2. /newbot,设置名称和用户名(以 bot 结尾)
  3. 拿到 token,格式:123456789:ABCdefGHIjklMNOpqrSTUvwxYZ

Step 2:安装 python-telegram-bot

Hermes 的 venv 可能没 pip,先装回来:

1
2
~/.hermes/hermes-agent/venv/bin/python3 -m ensurepip --upgrade
~/.hermes/hermes-agent/venv/bin/python3 -m pip install python-telegram-bot

Step 3:配置 ~/.hermes/.env

Token

直接写入即可——Hermes 的密钥脱敏只影响屏幕输出和日志,不会影响文件实际内容

1
echo 'TELEGRAM_BOT_TOKEN=你的TOKEN' >> ~/.hermes/.env

代理变量

Gateway 不会加载 .zshrc,代理必须写到 .env

1
2
3
echo 'HTTPS_PROXY=http://127.0.0.1:7890' >> ~/.hermes/.env
echo 'HTTP_PROXY=http://127.0.0.1:7890' >> ~/.hermes/.env
echo 'ALL_PROXY=socks5://127.0.0.1:7890' >> ~/.hermes/.env

权限控制

  • GATEWAY_ALLOW_ALL_USERS=true — 任何人找到你的 bot 都能用
  • TELEGRAM_ALLOWED_USERS=你的ID — 仅限特定用户(从 @userinfobot 获取 ID)
1
echo 'GATEWAY_ALLOW_ALL_USERS=true' >> ~/.hermes/.env

Step 4:验证 Token

1
curl -s --proxy http://127.0.0.1:7890 "https://api.telegram.org/bot你的TOKEN/getMe"

应返回 {"ok":true, "result":{...}}。404 “Not Found” 说明 token 写错了,去 BotFather 重新拿。

Step 5:启动 Gateway

1
2
3
4
5
6
7
8
9
10
# 前台测试
hermes gateway run

# 安装为后台服务
hermes gateway install
hermes gateway start

# 检查状态
hermes gateway status
tail -f ~/.hermes/logs/gateway.log | grep telegram

看到 ✓ telegram connectedConnected to Telegram (polling mode) 即成功。

Troubleshooting

症状 原因 解决
InvalidToken: Not Found Token 写错了或已吊销 BotFather 重新获取
No adapter could be created 缺 python-telegram-bot venv 里 pip install
No messaging platforms enabled Token 不在 .env 确认在 .env 而非 config.yaml
Connection timeout 代理没配 .env 里加 HTTPS_PROXY 等
Bot 在线但无视消息 权限没配 设 GATEWAY_ALLOW_ALL_USERS 或 TELEGRAM_ALLOWED_USERS

涉及文件

文件 内容
~/.hermes/.env TELEGRAM_BOT_TOKEN、代理变量、GATEWAY_ALLOW_ALL_USERS
~/.hermes/hermes-agent/venv/ python-telegram-bot
~/.hermes/logs/gateway.log 连接日志