首页/Hermes Agent/Telegram Bot 接入
Hermes Gateway

Telegram Bot 接入 Hermes Agent 教程

从 BotFather 创建机器人,到 Gateway 配置、Long Polling、Webhook、群组隐私模式和生产部署排错,完整梳理 Telegram Agent 助手的接入路径。

Telegram BotGatewayPollingWebhook

1. Telegram 接入流程

Telegram Bot 接入 Hermes Agent 的本质,是让 Telegram Gateway 持续接收用户消息,把平台消息转换成 Agent 标准输入,再把 Agent 响应发送回聊天窗口。

  1. 在 BotFather 创建 Bot,拿到 Bot Token。
  2. 在 Hermes Agent 配置中启用 Telegram Gateway。
  3. 选择 Long Polling 或 Webhook 作为消息接收方式。
  4. 配置 Agent 的模型、记忆、工具和 Prompt 边界。
  5. 部署为长期运行进程,并配置日志和重启策略。
建议:个人助手和小团队 Bot 优先使用 Long Polling。它不需要公网 HTTPS 地址,部署简单,也更适合先验证 Agent 工作流。

2. 使用 BotFather 创建机器人

在 Telegram 中搜索 BotFather,依次执行 /newbot、输入机器人名称和 username。创建完成后,BotFather 会返回形如 123456:ABC... 的 Token。

/newbot
My Hermes Agent
my_hermes_agent_bot

Token 相当于机器人的登录凭证,应该写入环境变量,而不是直接提交到代码仓库。调试时可以先放在本机 shell,生产部署时建议放进进程管理器或服务器环境变量。

export TELEGRAM_BOT_TOKEN="123456:replace_with_your_token"

3. Gateway 配置示例

Telegram Gateway 的配置通常包含启用状态、Token、消息模式、允许的用户或群组。不同项目的字段名可能略有差异,但核心配置思路一致。

gateways:
  telegram:
    enabled: true
    token: "${TELEGRAM_BOT_TOKEN}"
    mode: "polling"
    allowed_users:
      - 123456789
    allowed_chats:
      - -1001234567890

如果 Bot 面向公开群组,务必增加权限边界:限制群组 ID、限制危险工具、在系统 Prompt 中声明不能泄露密钥和内部文件。

接入时常用工具

配置 Gateway 时经常需要检查 JSON、YAML、Token 和时间戳,建议边配置边校验。

4. 群组消息与隐私模式

Telegram Bot 在群组里默认启用 Privacy Mode,只能看到命令和被提及的消息。如果你希望 Agent 能读取普通群消息,需要在 BotFather 中关闭隐私模式。

/mybots
选择 Bot
Bot Settings
Group Privacy
Turn off
注意:关闭隐私模式后,Bot 可能接收群内大量消息。建议只在可信群组使用,并在 Gateway 层过滤 allowed_chats,避免无关消息消耗模型额度。

5. 生产部署建议

生产环境需要保证 Gateway 进程持续运行。可以使用 systemd、Docker Compose 或进程管理器,并把日志、环境变量和重启策略明确下来。

[Service]
Environment=TELEGRAM_BOT_TOKEN=123456:replace
ExecStart=/usr/bin/hermes-agent --gateway telegram
Restart=always
RestartSec=5
场景推荐模式原因
个人助手Long Polling不需要公网地址,部署最简单
小团队群组Long Polling + 群组白名单控制风险和模型费用
高并发公开服务Webhook延迟更低,便于水平扩展

6. 常见排错

  • Bot 不响应:检查 Token 是否正确,确认没有同时运行 Webhook 和 Polling。
  • 群组里无响应:检查是否关闭 Privacy Mode,是否给 Bot 管理员权限。
  • 响应很慢:检查 Agent 是否正在调用外部工具,可以先回复“处理中”。
  • 额度消耗异常:检查 allowed_users 和 allowed_chats,避免公开群消息全量进模型。

Telegram Bot 接入 FAQ

Telegram Bot 接入 Hermes Agent 必须有服务器吗?

需要一个能长期运行 Gateway 的环境,可以是本机、云服务器或容器。Long Polling 模式不需要公网 HTTPS 地址。

Polling 和 Webhook 可以同时开吗?

不建议同时开启。同一个 Bot 同时启用两种接收方式会造成消息重复或无法接收,切换模式前应清理旧 Webhook。

群组 Bot 是否应该关闭隐私模式?

只有当你明确希望 Agent 读取普通群消息时才关闭。关闭后必须配合群组白名单和权限限制。