Hermes Agent 不是普通的聊天 Bot,而是一个能够真正接管 Linux 终端、驱动浏览器、调度定时任务并具备持久记忆的工程助手。

把这样一个具备高权限的 Agent 部署到生产服务器上,核心在于建立严格的权限边界与稳定的守护进程。

这篇笔记记录在 Linux 服务器上从零安装官方 Hermes、接入模型 Provider、绑定 Telegram 网关与安全白名单、配置 systemd 后台守护服务,以及正确设置 Cron 定时任务的完整流程。


认识 Hermes Agent 的定位与权限边界

普通聊天机器人只能“动嘴”,而 Hermes Agent 拥有完整的“手脚与大脑”:

┌─────────────────────────────────────────────────────────────┐
│ 🧠 决策中枢 (Model):负责推理、生成与决定下一步调用什么工具; │
│ 🛠️ 工具引擎 (Tools):拥有终端执行、文件读写、浏览器与抓取能力;│
│ 📡 网关中枢 (Gateway):接收 Telegram / QQ 消息并双向回传;    │
│ ⏰ 定时调度 (Cron):到点在全新独立会话中自动巡检、生成早报;   │
│ 📜 记忆与技能 (Soul):跨会话记住服务器拓扑与专属排障技能;    │
│ 🛡️ 安全底线 (Security):拦截高危危险命令,等待人工确认审批。   │
└─────────────────────────────────────────────────────────────┘

准备工作

  • [ ] 一台云服务器(VPS):拥有 root 权限,网络可正常访问模型 Provider 端点与消息平台;
  • [ ] 至少一个模型 API Key:OpenRouter、DeepSeek、Anthropic 或自定义 OpenAI 兼容接口;
  • [ ] 一个 Telegram Bot Token:在 Telegram 找 @BotFather 申请(若接入 QQ 则准备 QQ 开放平台凭据);
  • [ ] 明确自己的数字 ID:通过 @userinfobot 确认自己的 Telegram User ID(用于白名单访问控制)。

安装 Hermes 核心引擎与环境检查

💻 【你本地的电脑】 打开终端连入服务器,进入 服务器端:。

粘贴执行官方一键全自动安装脚本:

# 1. 运行官方一键安装
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

# 2. 检查命令与版本就位情况
command -v hermes
hermes --version

# 3. 运行环境依赖与健康静态体检
hermes doctor
  • ✅ 成功标志:终端正确返回版本号(如 hermes version v0.x.x),hermes doctor 诊断无阻断性红色报错。

配置模型 Provider 与调用验证

Hermes 的配置文件遵循“凭据放密文、行为放配置”的绝对铁律:
* 🔑 API Key、Bot Token、密码:统一保存在 ~/.hermes/.env;
* ⚙️ 模型选择、工具开关、Fallback 策略:保存在 ~/.hermes/config.yaml。

服务器端: 推荐使用官方向导或一键命令安全注入凭据:

# 1. 注入你的模型 API 密钥(以 DeepSeek 或自定义 Provider 为例)
hermes config set DEEPSEEK_API_KEY "你的真实API密钥"

# 2. 交互式选择并确认默认模型
hermes model

接着,执行第一层真实通信点火测试(拒绝推测,真实发包):

hermes chat -Q -q "只回复 OK"
  • ✅ 成功标志:终端在 2 秒内准确返回了一个单词 OK!证明底层请求链路、Token 鉴权与模型推理 100% 满血打通。

配置 Telegram 消息网关与用户白名单

模型打通后,配置外部消息接收网关。

服务器端: 运行 Gateway 配置向导:

hermes gateway setup

按照终端交互提示选择:
1. 平台选择 Telegram;
2. 填入你的 Bot Token;
3. ⚠️ 核心安全配置:当询问 Allowed Users / Chats 时,务必填入你自己的数字 User ID!
– 🗣️ 大白话:千万不要留空!留空等于向全网任何人开放你的服务器控制权限,别人发一条指令就能远程操控你的终端,极其危险!


配置 Systemd 守护进程保证常驻后台

配置好网关后,必须将其交由 Linux 系统级守护进程托管,保证断开 SSH 后持续在线,服务器重启后自动自愈:

# 1. 生成并安装系统级服务
hermes gateway install --system

# 2. 启动服务并检查实时状态
systemctl restart hermes-gateway
systemctl is-active hermes-gateway
  • ✅ 成功标志:最后一行返回 active。

此时拿起你的手机打开 Telegram,找到你的 Bot,发送一条最简单的消息:

只回复 TG-OK
  • ✅ 大功告成标志:手机端瞬间收到 Bot 秒回的 TG-OK!消息网关双向链路已全部跑通!🚀

配置 Cron 定时任务与执行环境

很多新手在 Hermes 里配置定时任务时会犯一个严重错误:
写出类似“继续检查刚才那台机器”的 Prompt。

  • 🚨 核心机制铁律:Hermes Cron 不是当前聊天的延续!
    每个定时任务触发时,都会在全新的独立会话中运行,完全没有你当前窗口的上下文。因此,Prompt 必须是完全自包含的!

服务器端: 创建一条标准的每日巡检定时任务:

hermes cron create "0 9 * * *" \
  "检查本机 CPU、内存、磁盘水位与核心服务运行状态;按严重程度列出异常,若全正常输出健康表格,完成后推送到 Telegram" \
  --name "每日服务器健康巡检"

查看已注册的任务列表:

hermes cron list
  • ✅ 成功标志:列表中清晰列出任务名称、下次触发时间与执行指令。

常见部署问题与排查

异常现场 真实根因 对应一秒救命招式
手机发消息,Bot 完全已读不回 用户 ID 未加入白名单,或网关服务未启动 1. 检查日志:journalctl -u hermes-gateway -n 50;
2. 检查 ~/.hermes/config.yaml 确认你的数字 ID 在 allowed_chats 列表中。
模型调用报 401 / 403 Forbidden Provider 凭据失效,或余额耗尽 检查 ~/.hermes/.env 中的 Key 是否正确,或进入服务商官网检查账户余额。
改了配置(config.yaml),Bot 行为无变化 修改配置后未重载 Gateway 进程 终端执行 systemctl restart hermes-gateway,重启后新配置瞬间生效。
危险命令被拦截,提示等待审批 正常安全机制生效(Tirith 审批拦截) 这是预期的安全保护!在 Telegram 点击「Approve」按钮放行,绝不要为了省事彻底关闭安全层。