搭建团队 Telegram 助手#
本教程将引导你搭建一个由 Hermes Agent 驱动的 Telegram 机器人,供多名团队成员使用。完成后,你的团队将拥有一个共享 AI 助手,可以向它发消息寻求代码、研究、系统管理等方面的帮助——并通过按用户授权保障安全。我们要构建什么#
任何已授权的团队成员都可以私信寻求帮助——代码审查、研究、Shell 命令、调试
运行在你的服务器上,拥有完整工具访问权限——终端、文件编辑、网络搜索、代码执行
默认安全——只有经过审批的用户才能交互,支持两种授权方式
定时任务——每日站会、健康检查和提醒推送到团队频道
前提条件#
已在服务器或 VPS 上安装 Hermes Agent(不是你的笔记本——机器人需要持续运行)。如尚未安装,请参阅安装指南。 已配置 LLM 提供商——至少在 ~/.hermes/.env 中配置了 OpenAI、Anthropic 或其他受支持提供商的 API 密钥
一台 $5/月的 VPS 足以运行 gateway(网关)。Hermes 本身很轻量——花钱的是 LLM API 调用,而那些调用发生在远端。
第一步:创建 Telegram 机器人#
每个 Telegram 机器人都从 @BotFather 开始——这是 Telegram 官方用于创建机器人的机器人。2.
发送 /newbot——BotFather 会询问两件事:显示名称——用户看到的名字(例如 Team Hermes Assistant)
用户名——必须以 bot 结尾(例如 myteam_hermes_bot)
3.
复制机器人 token——BotFather 会回复类似内容:Use this token to access the HTTP API:
7123456789:AAH1bGciOiJSUzI1NiIsInR5cCI6Ikp...
4.
Team AI assistant powered by Hermes Agent. DM me for help with code, research, debugging, and more.
5.
new - Start a fresh conversation
model - Show or change the AI model
status - Show session info
help - Show available commands
stop - Stop the current task
请妥善保管你的机器人 token。任何持有该 token 的人都可以控制机器人。如果泄露,请在 BotFather 中使用 /revoke 生成新 token。
第二步:配置 Gateway#
方式 A:交互式设置(推荐)#
通过方向键选择完成所有配置。选择 Telegram,粘贴你的机器人 token,并在提示时输入你的用户 ID。方式 B:手动配置#
在 ~/.hermes/.env 中添加以下内容:查找你的用户 ID#
你的 Telegram 用户 ID 是一个数字值(不是你的用户名)。查找方式:3.
将该数字填入 TELEGRAM_ALLOWED_USERS
Telegram 用户 ID 是永久性数字,例如 123456789。它与可以更改的 @username 不同。白名单中请始终使用数字 ID。
第三步:启动 Gateway#
快速测试#
[Gateway] Starting Hermes Gateway...
[Gateway] Telegram adapter connected
[Gateway] Cron scheduler started (tick every 60s)
打开 Telegram,找到你的机器人,发送一条消息。如果它回复了,说明一切正常。按 Ctrl+C 停止。生产环境:安装为服务#
这会创建一个后台服务:Linux 上默认为用户级 systemd 服务,macOS 上为 launchd 服务,传入 --system 则创建开机启动的 Linux 系统服务。launchd plist 在安装时捕获你的 Shell PATH,以便 gateway 子进程能找到 Node.js 和 ffmpeg 等工具。如果之后安装了新工具,请重新运行 hermes gateway install 以更新 plist。
验证运行状态#
然后在 Telegram 上向你的机器人发送测试消息。几秒内应收到回复。
第四步:设置团队访问权限#
方式 A:静态白名单#
收集每位团队成员的 Telegram 用户 ID(让他们给 @userinfobot 发消息),然后以逗号分隔的列表形式添加:方式 B:私信配对(推荐用于团队)#
私信配对更灵活——无需提前收集用户 ID。工作流程如下:1.
队友私信机器人——由于不在白名单中,机器人会回复一次性配对码:🔐 Pairing code: XKGH5N7P
Send this code to the bot owner for approval.
2.
队友将配对码发给你(通过任何渠道——Slack、邮件或当面)
私信配对非常适合团队使用,因为添加新用户时无需重启 gateway。审批立即生效。
安全注意事项#
切勿在拥有终端访问权限的机器人上设置 GATEWAY_ALLOW_ALL_USERS=true——任何找到你机器人的人都可能在你的服务器上执行命令
速率限制防止暴力破解:每用户每 10 分钟 1 次请求,每平台最多 3 个待审批码
第五步:配置机器人#
设置主频道#
主频道是机器人投递 cron 任务结果和主动消息的地方。没有主频道,定时任务将无处发送输出。方式 1: 在机器人所在的任意 Telegram 群组或聊天中使用 /sethome 命令。方式 2: 在 ~/.hermes/.env 中手动设置:配置工具进度显示#
控制机器人在使用工具时显示的详细程度。在 ~/.hermes/config.yaml 中:| 模式 | 显示内容 |
|---|
off | 仅显示干净的回复——无工具活动 |
new | 每次新工具调用的简短状态(推荐用于消息场景) |
all | 每次工具调用及其详情 |
verbose | 完整工具输出,包括命令结果 |
用户也可以在聊天中使用 /verbose 命令按会话更改此设置。使用 SOUL.md 设置个性#
通过编辑 ~/.hermes/SOUL.md 自定义机器人的沟通方式:添加项目上下文#
如果你的团队在特定项目上工作,可以创建上下文文件,让机器人了解你们的技术栈:上下文文件会注入到每个会话的系统 prompt(提示词)中。请保持简洁——每个字符都会占用你的 token 预算。
第六步:设置定时任务#
gateway 运行后,你可以安排定期任务,将结果投递到团队频道。每日站会摘要#
Every weekday at 9am, check the GitHub repository at
github.com/myorg/myproject for:
1. Pull requests opened/merged in the last 24 hours
2. Issues created or closed
3. Any CI/CD failures on the main branch
Format as a brief standup-style summary.
Agent 会自动创建一个 cron 任务,并将结果投递到你提问的聊天(或主频道)。服务器健康检查#
Every 6 hours, check disk usage with 'df -h', memory with 'free -h',
and Docker container status with 'docker ps'. Report anything unusual —
partitions above 80%, containers that have restarted, or high memory usage.
管理定时任务#
Cron 任务的 prompt 在完全全新的会话中运行,不保留任何先前对话的记忆。请确保每个 prompt 包含 agent 所需的全部上下文——文件路径、URL、服务器地址以及清晰的指令。
生产环境建议#
使用 Docker 保障安全#
在共享团队机器人上,使用 Docker 作为终端后端,让 agent 命令在容器中运行,而非直接在宿主机上运行:或在 ~/.hermes/config.yaml 中:这样即使有人要求机器人执行破坏性操作,你的宿主系统也受到保护。监控 Gateway#
保持 Hermes 更新#
在 Telegram 中向机器人发送 /update——它会拉取最新版本并重启。或在服务器上执行:日志位置#
| 内容 | 位置 |
|---|
| Gateway 日志 | journalctl --user -u hermes-gateway(Linux)或 ~/.hermes/logs/gateway.log(macOS) |
| Cron 任务输出 | ~/.hermes/cron/output/{job_id}/{timestamp}.md |
| Cron 任务定义 | ~/.hermes/cron/jobs.json |
| 配对数据 | ~/.hermes/pairing/ |
| 会话历史 | ~/.hermes/sessions/ |
进一步探索#
你已经拥有一个可用的团队 Telegram 助手。以下是一些后续步骤:定时任务——高级 cron 调度,含投递选项和 cron 表达式 上下文文件——用于项目知识的 AGENTS.md、SOUL.md 和 .cursorrules
有问题或遇到问题?请在 GitHub 上提 issue——欢迎贡献。