9
0
0

Hermes-Agent 实践

2026-08-11
2026-08-11
文章摘要
|

Hermes Agent 实践

image-20260429191450119

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 个辅助任务

辅助模型

用途说明

vision

截图 / 验证码 / 图片分析

web_extract

网页内容抓取与提炼

compression

上下文压缩摘要(节省 Token)

session_search

历史会话搜索与摘要

approval

高危命令审批决策

skills_hub

技能市场搜索与安装

mcp

MCP 服务调用辅助

flush_memories

记忆系统清理与重组

配置示例

直接口头告知 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 会根据你的问题自动判断是否需要检索历史

支持的搜索引擎

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 管理技能

Hermes 八大亮点总结

#

亮点

说明

智能授权

自动识别高危指令,清晰说明意图再请求授权

会话感知

通过 Session 阅读机制感知历史对话,可据此生成个性化 SOUL.md

多模型路由

Auxiliary 支持为 8 类任务分配独立模型,省钱且高效

配置解耦

密钥与配置分离,YAML 格式友好,修改直观

工具透明

IM 界面清晰打印每次 tool 调用过程,执行过程完全可见

多 Profile

多实例配置简单,一句话完成,轻松实现沙箱/主力分离

自动技能沉淀

将有价值操作自动总结为可复用技能,避免重复踩坑

消息不丢失

20 个退出触发点,增量写入,无论正常/异常退出都不丢消息

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

Hermes-Agent 实践
/archives/019feee1-f1e4-77d0-8704-2d90d3d12152-019fef6e
作者
北祢
发布于
2026-08-11
许可协议
CC BY-NC-SA 4.0