Hermes-Agent 实践
Hermes Agent 实践

Hermes Agent 是 NousResearch 开源的 AI Agent 框架,相比 OpenClaw,其亮点在于:配置友好、多模型路由、记忆系统完善、自动沉淀技能,且使用国内模型(如 Qwen 系列)也能稳定运行
一、安装与初始配置
支持 macOS、Linux 和 WSL2(Windows 用户需先安装 WSL2 并在其中运行):
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash -x
加 -x 参数可以看到每一步的执行过程,便于排查问题
二、配置防爬浏览器(Camofox)
为什么需要
普通的后端浏览器(如 Chromium headless)访问大多数网站会立即被反爬机制拦截。Camofox 提供了一个「像真人一样」的浏览器环境,使 Hermes 能够:
自动读取网页文章
自动填写表单
操作需要登录的后台系统
执行复杂的网页自动化任务
配置步骤
直接告诉 Hermes:
帮我配置 CAMOFOX 及 CAMOFOX_URL
Hermes 会自动完成配置文件的写入,并在需要高危操作时主动请求你的授权
三、配置灵魂定义(SOUL.md)
什么是 SOUL.md
SOUL.md 是 Hermes 的人格配置文件,定义了 Agent 的思考模式、行为约束和输出风格。默认文件是空注释,需要你自己填写
最佳实践:先聊再总结
推荐流程:先和 Hermes 正常使用 1-2 天,展现你的工作风格和偏好,然后问:
灵魂定义(SOUL.md)你有没有推荐的配置,基于我们的对话风格来建议?
Hermes 会读取历史会话,生成贴合你习惯的配置。然后让它写入:
帮我编辑写入 ~/.hermes/SOUL.md
参考配置
---
name: iwen
version: 1.0
---
# 思考模式
- 先验证后回答:不确定的 API、配置、路径,先查工具确认,不靠猜测
- 先计划后执行:3步以上的任务,先列方案标风险,确认再动手
- 交付即验证:做完一件事,主动给出「怎么检查它是否生效」
# 自我约束
- 不确定时直接说「我不确定」
- 高危操作(删数据、重启、覆盖)必须预警
# 输出纪律
- 结论先行,代码/命令为主,少废话
四、配置 Auxiliary 副驾模型路由
设计理念
Auxiliary 是 Hermes 的副驾 LLM 路由中心。核心思路:让主模型专注复杂推理,让便宜/专用的副模型承担「脏活累活」,从而节省成本、提升效率
支持配置的 8 个辅助任务
配置示例
直接口头告知 Hermes:
压缩会话的辅助模型帮我配置成 qwen3.5-plus
五、配置三层记忆系统
Hermes 记忆系统分为三层,由浅到深,可按需启用。建议先用第一层 + 第三层,满足需求后再考虑引入第二层
第一层:内置记忆(默认已开)
编辑 ~/.hermes/config.yaml 进行微调:
memory:
memory_enabled: true # MEMORY.md — 项目事实、踩坑记录
user_profile_enabled: true # USER.md — 用户画像与偏好
memory_char_limit: 4000 # 默认 2200,重度使用建议调到 4000
user_char_limit: 1375 # 用户画像字符上限
nudge_interval: 5 # 每 5 轮提醒存记忆(默认 10,调小更积极)
flush_min_turns: 6 # 至少 6 轮才触发退出时的记忆刷新
第二层:外部 Memory Provider(按需)
支持 Honcho、mem0 等 8 个外挂记忆插件。配置方式:
hermes memory setup
第三层:Session Search(默认已开)
所有历史对话自动持久化到本地 SQLite,支持关键词检索 + LLM 摘要,是记忆系统的兜底机制:
存储位置:
~/.hermes/state.db检索方式:FTS5 关键词全文搜索 + LLM 二次摘要
兜底保障:LLM 调用失败时返回原始文本前 500 字符,不会因故障而完全失效
不需要额外配置,Session Search 默认开启。Agent 会根据你的问题自动判断是否需要检索历史
六、配置 Web Search
支持的搜索引擎
Hermes 原生支持 4 个搜索提供商:Exa、Tavily、Parallel、Firecrawl
配置方式
直接告诉 Hermes:
帮我配置 exa 搜索
Hermes 会引导你输入 API Key 并完成配置。配置成功后可以直接测试:
Hermes 会引导你输入 API Key 并完成配置。配置成功后可以直接测试:
七、配置自动化审计(Hooks)
两种扩展方式
Hermes 提供两套互补的扩展系统:
Gateway Hooks:事件驱动钩子,处理生命周期通知
Plugin System:插件生命周期钩子,处理功能扩展
8 个生命周期 Hook
on_session_start → 会话创建时
pre_llm_call → LLM 调用前(可注入上下文)
pre_api_request → 每次 API 调用前
post_api_request → 每次 API 调用后
pre_tool_call → 工具执行前
post_tool_call → 工具执行后
post_llm_call → 本轮对话结束
on_session_end → 会话结束
实战:创建终端命令审计 Hook
告诉 Hermes:
做一个终端命令审计插件(Terminal Audit Hook):
在每次 terminal 工具执行完毕后,自动把命令内容、
执行结果、时间戳、会话 ID 追加到日志文件。
授权后,Hermes 会自动生成并激活这个 Hook
验证
# 执行任意命令后,检查审计日志
tail -f ~/.hermes/audit_logs/terminal_audit.log
八、配置 Docker 沙箱
为什么需要沙箱
默认情况下 Hermes 在本地执行命令,存在一定风险。Docker 沙箱将命令执行隔离在容器中,即使 Agent 执行了危险命令,也只会影响容器内的环境
配置步骤
# 创建一个使用 Docker 沙箱的 worker profile
hermes -p worker config set terminal.backend docker
hermes -p worker config set terminal.docker_image python:3.11-slim
# 配置 worker 使用便宜模型(沙箱任务不需要顶级模型)
hermes -p worker config set model.provider alibaba
hermes -p worker config set model.model qwen3.5-plus
# 如果使用 Telegram,绑定独立的 Bot Token
hermes -p worker config set gateway.telegram.bot_token "YOUR_BOT_TOKEN_B"
hermes -p worker config set gateway.telegram.enabled true
也可以直接告诉主 Agent:
参考如下命令,帮我额外配置一个 profile,sandbox 使用 docker,模型遵循主 profile 即可
验证沙箱隔离
# 在 worker bot 中执行(不会真正损坏宿主机)
rm -rf /
# 在宿主机验证 Docker 已启动
docker ps
九、使用多 Agent
两种多 Agent 模式
同一 Session 内触发 Sub-Agent:适合并行子任务
完全隔离的多 Profile:适合不同安全级别的任务分工(见第 7 步)
触发 Sub-Agent
只需一句话:
请 spawn 三个 subagent 来相互讨论 Hermes 的优劣势
三个 Sub-Agent 会在同一 Session 中并行工作,各自发言,最终给出汇总。这种方式适合需要多角度分析或并行处理的复杂任务。
十、建立备份体系
三层备份策略
第一层:本地 Git(快速版本控制)
第二层:其他磁盘定时备份(防止硬盘故障)
第三层:远程备份(GitHub 私有仓库 / 对象存储)
完整备份脚本
将以下脚本保存为 ~/hermes_backup.sh:
#!/bin/bash
BACKUP_NAME="hermes_backup_$(date +%Y%m%d_%H%M%S)"
BACKUP_DIR="/tmp/$BACKUP_NAME"
DEST_DIR=~/hermes_backups
mkdir -p $BACKUP_DIR/hermes $DEST_DIR
echo "正在备份核心配置..."
cp ~/.hermes/config.yaml $BACKUP_DIR/hermes/
cp ~/.hermes/.env $BACKUP_DIR/hermes/
cp ~/.hermes/MEMORY.md $BACKUP_DIR/hermes/ 2>/dev/null
echo "正在备份数据库与会话..."
cp ~/.hermes/state.db $BACKUP_DIR/hermes/
cp -r ~/.hermes/sessions $BACKUP_DIR/hermes/ 2>/dev/null
echo "正在备份扩展与技能..."
cp -r ~/.hermes/plugins $BACKUP_DIR/hermes/ 2>/dev/null
cp -r ~/.hermes/skills $BACKUP_DIR/hermes/ 2>/dev/null
cp -r ~/.hermes/audit_logs $BACKUP_DIR/hermes/ 2>/dev/null
echo "正在备份所有 Profile..."
cp -r ~/.hermes/profiles $BACKUP_DIR/hermes/ 2>/dev/null
echo "压缩中..."
tar -czf $DEST_DIR/$BACKUP_NAME.tar.gz -C /tmp $BACKUP_NAME
rm -rf $BACKUP_DIR
echo "✅ 备份完成:$DEST_DIR/$BACKUP_NAME.tar.gz"
echo "大小:$(du -h $DEST_DIR/$BACKUP_NAME.tar.gz | cut -f1)"
十一、安装与沉淀技能(Skills)
自动技能沉淀
Hermes 最令人印象深刻的功能之一:它会自动将有价值的操作流程总结并固化为可复用的技能。
触发条件:每累计 15 次工具循环(config.yaml 中的 creation_nudge_interval 参数),Hermes 会在后台启动一个 Skill Review:
# Skill Review 的三种结果:
# 1. 发现可更新的现有技能 → 自动更新补充新经验
# 2. 发现值得新建的技能 → 创建新技能文件
# 3. 没有值得保存的内容 → 输出 Nothing to save. 结束
整个过程在后台线程运行,不阻塞当前对话
手动安装技能
帮我安装 git 操作相关的技能
帮我搜索并安装 Docker 管理技能
