我的 Hermes Agent 深度部署踩坑全记录:从装环境到生产上线
说实话,我最开始接触 Hermes Agent 的时候,压根没想到这玩意儿能这么折腾。从本地跑起来到最终部署到服务器上给团队用,前前后后踩了不少坑,今天把整个过程捋一遍,希望能帮后来的人少走点弯路。
我为什么要用 Hermes Agent
市面上 AI Agent 框架一堆,我之前也用过 OpenClaw,用了一阵子感觉有个问题——每次重启对话它就"失忆"了,之前教它的东西全白费。后来在 GitHub 上刷到 Hermes Agent,这玩意儿的卖点就是会自己记住东西,而且不是简单的存个文件,是用 SQLite FTS5 做全文搜索,还能接 Hindsight、Mem0 这些外部记忆插件。
我自己实测下来,用了两周之后它确实记住了我常用的命令、项目结构、甚至我代码风格的偏好。这点是真香。
先把环境搞起来
我踩的第一个坑:sudo 问题
我第一次装的时候习惯性加了 sudo,结果后面各种权限报错,折腾了半小时才反应过来。千万别用 sudo 跑安装脚本!
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
如果你装完发现 hermes 命令找不到,先跑 source ~/.bashrc,再查一下 ~/.local/bin 在不在 PATH 里。我在这卡过两次了。
Docker 部署才是正经用法
本地玩玩一行脚本就够了,但真要上服务器,我强烈推荐 Docker Compose。我最开始直接裸跑 Docker,后来发现 compose 文件管理起来方便太多:
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
踩坑警告:volumes 那行不挂的话,容器一重建,你之前攒的记忆和技能全没了。我第一次部署的时候就没挂,白跑了三天的对话记录全丢了,心疼死。
| 1 | |
| 2 | |
模型接入这块我走了不少弯路
最容易搞混的地方:两个 API Key
这是新手最容易被搞晕的地方,我一开始也分不清:
- OPENAI_API_KEY:这是 Hermes 调大模型用的密钥(比如你接 OpenRouter、Kimi 等)
- API_SERVER_KEY:这是外部应用调 Hermes 用的密钥
两个完全不是一个东西,别搞反了。
.env 配置
| 1 | |
| 2 | |
注意:OPENAI_BASE_URL 写到 /v1 就行,别写成完整路径。我第一次写成了 /v1/chat/completions,结果报错 404,排查了半天。
快速设置也可以用命令行:
| 1 | |
| 2 | |
| 3 | |
config.yaml 生产配置
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
飞书接入:我折腾最久的部分
飞书接入是我花了最多时间调的,主要是 websocket 模式那块文档当时还不太清楚。
第一步:去飞书开放平台创建应用,开 Bot 能力,拿到 App ID 和 App Secret。
第二步:编辑 ~/.hermes/.env:
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
第三步:config.yaml 里加上:
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
第四步:hermes gateway start,然后去飞书私聊发条消息试试。
我踩的坑:一开始用的是 webhook 模式,需要公网 IP 和回调地址,各种配 SSL 证书折腾半天。后来发现 websocket 模式根本不需要这些,直接长连接就好了,省了一大堆事。
验证连接状态:
| 1 | |
| 2 | |
| 3 | |
API Server 的用法
Hermes 可以对外提供 OpenAI 兼容接口,这意味着你可以把它当一个"有记忆的中间层"来用:
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
我自己把它接到了内部的运维系统上,效果还不错,它能记住之前的分析上下文。
定时任务和技能沉淀
Cron 调度器
这功能挺有意思,用自然语言就能设定时任务:
| 1 | |
| 2 | |
技能系统
这是我最喜欢的功能。跟 OpenClaw 不一样,Hermes 的技能是它自己"悟"出来的——处理完一个复杂任务之后,它会自动生成一个 SKILL.md 存到 ~/.hermes/skills/ 下面,下次遇到类似任务直接复用。
我跑了大概一个月,它自动沉淀了十几个技能,包括我那个复杂的 Git 工作流、服务器巡检脚本、甚至还有个分析日志的完整流程。
从 OpenClaw 迁移
一行命令的事:
| 1 | |
SOUL.md、记忆、技能、API Key 都能迁过来。我建议先迁移试几天,没问题了再把 OpenClaw 停掉,两个可以并存。
生产环境要注意的事
- 执行后端选 docker:别让 Agent 直接操作宿主机,出事了不好收场
- allow_private_urls 保持 false:防止 SSRF,这是安全底线
- approvals.mode 用 smart:别为了方便直接关掉审批
- 定期备份:
tar -czf hermes-backup-$(date +%F).tar.gz ~/.hermes - API_SERVER_KEY 用长随机串:别用 123456 那种
| 1 | |
| 2 | |
| 3 | |
| 4 | |
最后说几句
Hermes Agent 我用下来最大的感受就是——它真的是越用越好用。刚开始那几天感觉跟普通 Agent 差别不大,但跑了一两周之后,它记住的东西越来越多,很多重复的活它自己就会了。
不过也别指望它一步到位,先把本地环境跑通,再上 Docker,最后接消息平台。一步步来,别急。
学习路径我建议:一行脚本本地跑通 → Docker Compose 部署 → 接飞书/Telegram → 开启 API Server → 调优记忆和技能系统。按这个顺序来,踩坑最少。