Hermes Agent 从安装到生产:我的完整踩坑记录
Hermes Agent 从安装到生产:我的完整踩坑记录
事情是这样的。
前阵子我把 Hermes Agent 装到了树莓派上,配了六个 AI 分身跑在飞书群里,用了一个多月。中间踩了不少坑——安装、多智能体、记忆引擎、安全加固,每个环节都有「看起来简单,做起来全是细节」的时刻。
这篇文章把我所有的配置经验和踩坑记录整理在一起。从零开始到生产部署,看完直接抄作业。
一、安装
国内服务器直连 GitHub 太慢,用国内镜像。终端跑这一行:
curl -fsSL https://res1.hermesagent.org.cn/install.sh | bash
装完先别急着配,花半小时读文档。顺序建议:
- 先看官方文档:hermes-agent.nousresearch.com/docs
- 再看橙皮书(中文实战指南):github.com/alchaincyf/…
- 中文社区:hermesagent.org.cn
文档不厚,但关键概念必须先搞清楚——Profile、Skill、Memory、Toolset 这四个东西的关系,后面全靠它们。
二、Skills
Skills 是 Hermes 的核心机制。每个 Skill 就是一个可复用的能力模块——可以是一个写作风格、一个发布流水线、一个配图工具。
加载 Skill 之后 Agent 就自动拥有这个能力,不需要每次手动描述。
官方 Skills 市场:hermes-agent.nousresearch.com/docs/skills
三、多智能体
这是 Hermes 最打动我的功能——同一个框架下可以跑好几个不同人设的 Agent,各干各的。
hermes profile list # 查看智能体列表
hermes profile create editor # 创建
hermes --profile editor setup
hermes --profile editor chat
hermes --profile editor gateway start
我配了六个:
- default — 通用对话,群聊里的日常问答
- coder — 全栈开发,终端权限完整,能读写文件跑脚本
- editor — 公众号运营,写稿改稿排版配图推草稿
- point — 调研分析,规则设计、成本测算、数据复盘
- riji — 日记助手,马伯庸风格的日记记录
- sre — 安全运维,安全加固漏洞排查配置审计
![]()
设置角色 Soul
每个 Agent 的角色定义写在 ~/.hermes/profiles/{name}/SOUL.md 里。改了之后重启生效。
~/.hermes/profiles/editor/SOUL.md
~/.hermes/profiles/coder/SOUL.md
设置用户偏好
用户身份和偏好写在 ~/.hermes/profiles/{name}/memories/USER.md,同样改完重启。
Memory 记忆
Hermes 有三层记忆:
- memory — 持久记忆,注入每轮对话的系统提示
- fact_store — 结构化深度记忆,支持实体解析和语义搜索
- session_search — 全文检索所有历史会话
全局共享记忆在 ~/.hermes/memories/MEMORY.md,所有智能体共享。
记忆的保存触发:
- 每 5~10 轮对话自动精简写入
- 执行
/save、/sync、/memory命令立即整理 - 重启时自动保存一次
- 内容超阈值自动压缩
四、记忆引擎升级:从「隔天就忘」到「永远记得」
默认的 Holographic 引擎有一个致命问题——只在「会话结束时」保存记忆。
飞书群聊一直开着,同一条会话连跑好几天,永远不会「结束」。结果就是中间的内容一条都不存,隔天全忘。
换了 Hindsight 引擎,问题解决。
对比:
Holographic:手动触发保存、不自动召回、SQLite 存储、无去重 Hindsight:auto_retain 自动保留、auto_recall 自动召回、知识图谱+向量存储、实体解析去重
配置步骤:
pip install hindsight-client hindsight-embed
在 ~/.hermes/.env 里配置 LLM Key(DeepSeek 就行,成本极低):
HINDSIGHT_LLM_API_KEY=sk-your-deepseek-key
创建 ~/.hermes/hindsight/config.json:
{
"mode": "local_embedded",
"llm_provider": "openai_compatible",
"llm_model": "deepseek-chat",
"llm_base_url": "https://api.deepseek.com/v1",
"retain_every_n_turns": 3,
"recall_budget": "low",
"retain_async": true,
"auto_retain": true,
"auto_recall": true
}
切换并重启:
hermes config set memory.provider hindsight
systemctl --user restart hermes-gateway
hermes memory status # 验证:Provider: hindsight, Status: available
几个关键参数:
-
retain_every_n_turns: 3— 每 3 轮存一次,太频繁浪费 token -
recall_budget: low— 最低召回精度,够用 -
retain_async: true— 异步存储不阻塞回复
踩坑记录:
- systemd gateway 不加载 .env,Key 必须同时写入 .env 和 service 文件
- 用
systemctl --user restart替代hermes gateway restart,后者会重写 service 文件导致手动配置丢失
五、接飞书:六个 AI 在同一个群里
六个 Agent 对应六个飞书 App,全在同一个飞书群里。@谁谁干活。
串联流水线:比如写公众号文章——先在群里跟 point 说「帮我调研这个工具的技术原理」,point 出报告 → 丢给 editor「写成公众号文章」→ editor 写稿配图推草稿。整个过程就在飞书群里发几条消息,没开电脑。
权限分级:普通人只能用 default 聊天,coder 和 editor 只有我的账号能调。
跑在树莓派上:树莓派 4B,8GB 内存,不跑本地模型只做调度。内存占用稳定在 2.9GB。夏天加个小风扇。
踩过的坑:
- 飞书富文本 → Hermes Markdown 需要转换
- 飞书 Webhook 超时 3 秒,Hermes 做复杂任务可能一两分钟,必须改成异步:收到消息立刻回「正在处理」,跑完再推送结果
- 群聊消息做窗口管理,保留最近 20 条,防止上下文爆炸
六、安全加固:六层防御塔
把 Agent 接入生产环境,安全问题不能等到出事了再补。
Hermes 的安全是纵深防御体系。就算 LLM 被 Prompt 注入操控了,后面的层还能兜底。
![]()
第一层:Tirith 防火墙
独立于 LLM 的审计算子,在实际执行工具调用之前拦一道。
pip install tirith
默认策略建议:
-
rm -rf和chmod 777→ 直接阻断 -
sudo和su→ 直接阻断 -
curl和wget外网 → 走审批 -
git push和git commit→ 走审批 - 读取 /etc/passwd 和 .env → 告警但不阻断
第二、三层:密钥脱敏 + 隐私脱敏
hermes config set security.redact_secrets true
hermes config set privacy.redact_pii true
API Key、手机号、身份证、邮箱、IP 地址自动打码。
密钥放 .env 文件,绝不写进 config.yaml。每 90 天轮换。
第四层:网络控制
hermes config set security.website_blocklist.enabled true
hermes config set security.allow_private_urls false
域名黑名单至少加 pastebin.com 和 requestbin.net——数据外泄和 SSRF 最常用的目标。
第五层:审批门禁
approvals:
mode: manual
cron_mode: deny
每次工具调用需要人工确认。禁止 Agent 自己建定时任务。
第六层:隐私边界
禁止访问内网地址——192.168.x.x、10.x.x.x、127.0.0.1 全部被拦。
必须开的配置项:
| 配置 | 值 |
|---|---|
| security.tirith_enabled | true |
| security.redact_secrets | true |
| privacy.redact_pii | true |
| security.allow_private_urls | false |
| approvals.mode | manual |
| approvals.cron_mode | deny |
| checkpoints | true |
监控:日常关注网关日志和审计日志。Tirith 每小时阻断超 5 次 = 🚨 查是不是被攻击。
七、好与不好
用了两周,真实感受:
好的地方:上手快、轻量、自动创建和优化 Skill。多 Profile 的设计很实用,六个人设各司其职。
不好的地方:Skill 多了会有重复,需要定期清理。这算是成长的烦恼——用着用着就积累了一堆,得手动整理。不过新版本解决这个问题:给skill库打分,合并相关技能、清理已死技能
八、一句话总结
装 Hermes → 读文档 → 配 Skills → 建多个 Profile → 接飞书 → 切 Hindsight 记忆引擎 → 开六层安全防御。
整个过程不复杂,就是细节多。建议别一上来就搞六个 Agent,先跑通一个 Profile,能用起来再说。
搞 Agent 最大的坑不是技术,是高估了自己对自动化的需求。很多东西你以为需要 AI,其实只需要一个写得好点的脚本。
有问题留言聊,或者你有类似实践也欢迎交流。
下次见。