7.6 KiB
7.6 KiB
Hermes Agent 优秀做法分析与融入方案
基于《Hermes Agent The Complete Guide》的学习总结 分析时间: 2026-04-16
一、Hermes 核心创新点
1. Learning Loop(学习闭环)- 最核心的差异
Hermes 做法:
Curate Memory → Create Skill → Skill Self-Improvement → FTS5 Recall → User Modeling
- 每次任务后自动回顾:不是被动存储,而是主动决定"什么值得记住"
- 自动提炼 Skill:完成复杂任务后,自动判断是否值得保存为 Skill
- Skill 自我改进:每次使用 Skill 后,根据反馈自动修改 Skill 文件
- FTS5 全文检索:精准召回,只加载相关内容到上下文
- 用户建模(Honcho):12 层身份推断,从行为模式推导用户偏好
关键区别:
- 传统 AI:记忆是对话日志的累积(录像带,越来越长直到溢出)
- Hermes:记忆是经验的提炼(笔记本,可以无限使用)
2. 三层记忆系统
| 层级 | 用途 | 存储 |
|---|---|---|
| Session Memory | 记住"刚才发生了什么" | SQLite + FTS5 |
| Persistent Memory | 记住"你是谁、你喜欢什么" | SQLite + FTS5 |
| Skill Memory | 记住"如何做事" | Markdown 文件 |
关键设计:
- 按需检索,而不是全部加载
- 纯本地存储(SQLite),不上传服务器
- 迁移时只需复制
~/.hermes/目录
3. Skill 自进化系统
Skill 文件结构:
- 纯 Markdown 格式
- 存储在
~/.hermes/skills/ - 三个来源:自带、Agent 自动创建、社区 Hub
自进化机制:
- 首次创建:完成任务后自动提炼
- 使用反馈:用户说"这里应该检查表是否存在"
- 自动更新:Skill 文件被修改,下次默认包含该检查
4. Harness Engineering 自动化
Mitchell Hashimoto 的手动方式:
- 发现 AI 犯错 → 手动写入 CLAUDE.md → 下次遵循
- 需要人有耐心持续维护
Hermes 的自动化方式:
- 发现错误 → 自动提取规则 → 写入 Skill → 下次自动应用
- 门槛降到零,不需要用户手动维护
二、可融入 OpenClaw/Val 的优秀做法
✅ 立即可融入的做法
1. 自动 Skill 提炼与改进机制
现状: OpenClaw 的 Skills 主要是手动编写和维护(ClawHub 5700+ 社区 Skills)
融入方案:
任务完成后 → Val 分析过程 → 判断是否值得提炼 Skill → 自动生成/更新 Skill 文件
具体实现:
- 在
workspace/skills/下增加auto/目录存放自动生成的 Skills - 每次复杂任务后,spawn Catalyst 分析是否可以提炼 Skill
- 用户反馈"下次记得..."时,自动更新对应 Skill
与现有系统的结合:
- 复用现有的 Skill 格式(SKILL.md)
- 自动 Skills 与手动 Skills 共存
- 用户可以随时编辑、删除自动生成的 Skills
2. FTS5 全文索引的记忆召回
现状: OpenClaw 使用语义搜索(gemini-embedding)+ 记忆文件
融入方案:
- 在 SQLite 中增加 FTS5 索引
- 会话前基于当前主题搜索相关记忆
- 精准召回 vs 语义召回结合使用
优势:
- 更精准的召回(避免语义漂移)
- 纯本地,保护隐私
- 可解释性强(能看到为什么召回这段记忆)
3. 主动记忆策展(Active Memory Curation)
现状: OpenClaw 被动依赖用户写 memory 文件
融入方案:
# 每次会话结束后
if 任务复杂度 > 阈值:
spawn subagent "分析本次会话,提取值得长期记住的内容"
生成 memory 条目
写入 memory/YYYY-MM-DD.md 或 MEMORY.md
触发条件:
- 复杂任务完成
- 用户明确说"记住这个"
- 周期性回顾(heartbeat)
4. 用户建模(轻量级)
现状: 基于 SOUL.md / USER.md 的显式配置
融入方案:
轻量级用户建模(不依赖 Honcho):
- 从 MEMORY.md 中提取用户偏好模式
- 从代码修改习惯推断风格
- 周期性更新 USER.md
输出形式:
- 更新 USER.md 的 "Notes" 部分
- 生成
inferred_preferences.json
5. Skill 使用反馈闭环
现状: Skills 是静态的,除非手动更新
融入方案:
使用 Skill → 任务完成 → 询问/分析效果 → 更新 Skill
具体做法:
- 任务完成后:"这个 Skill 的效果如何?"
- 用户反馈:"应该把 X 也加进去"
- 自动编辑 Skill 文件
🔄 需要权衡的做法
6. 三层记忆架构
现状对比:
| OpenClaw 当前 | Hermes 三层 |
|---|---|
| Daily Logs (session) | Session Memory |
| MEMORY.md (curated) | Persistent Memory |
| Skills (manual) | Skill Memory (auto) |
融入建议:
- 不完全照搬,保持 OpenClaw 的文件化哲学
- 增加
memory/session/目录存放原始会话记录 - 保留 MEMORY.md 作为 curated 精华
- 增加 Skills 的自动生成能力
7. Learning Loop 自动化程度
Hermes: 全自动,用户完全不用管 OpenClaw: 全手动,用户自己维护
建议中间路线:
检测到可提炼内容 → 询问用户 "是否要保存为 Skill?" → 用户确认 → 生成
原因:
- 谷老板偏好可控性(USER.md 中强调)
- 全自动可能产生垃圾 Skills
- 确认机制保持用户掌控
⚠️ 不建议照搬的做法
8. 24/7 常驻后台模式
Hermes: 设计为常驻 VPS,24/7 在线 OpenClaw: 按需响应,heartbeat/cron 机制
原因:
- OpenClaw 的架构更轻量
- 现有 heartbeat + cron 机制足够
- 谷老板的使用场景不需要 Agent 主动运行任务
9. Honcho 式深度用户建模
Hermes: 12 层身份推断,深度分析 建议: 轻量级推断即可
原因:
- 隐私考虑
- 复杂度与收益不成正比
- OpenClaw 的显式配置(SOUL.md/USER.md)已足够表达
三、具体实施建议(优先级排序)
P0 - 高价值、易实施
-
Skill 自动提炼机制
- 复杂任务后 spawn Catalyst 分析
- 询问用户是否保存为 Skill
- 保存到
skills/auto/
-
记忆主动策展
- 任务完成后自动分析值得记住的内容
- 更新 memory/YYYY-MM-DD.md
- 定期(heartbeat)整理到 MEMORY.md
P1 - 中等价值、中等复杂度
-
FTS5 全文索引
- 为 memory 建立 FTS5 索引
- 会话前基于主题召回相关记忆
- 与现有语义搜索结合
-
Skill 反馈改进
- 使用 Skill 后询问效果
- 根据反馈自动更新 Skill
P2 - 长期价值、高复杂度
- 轻量级用户建模
- 从 MEMORY.md 提取偏好模式
- 周期性更新 USER.md
- 生成推断报告
四、与现有 OpenClaw 能力的对比
| 能力 | OpenClaw 现状 | Hermes 做法 | 融入建议 |
|---|---|---|---|
| Skill 创建 | 手动编写 | 自动提炼 | 增加自动提炼+人工确认 |
| Skill 改进 | 手动更新 | 自动改进 | 使用后询问反馈 |
| 记忆系统 | 文件化 (Daily Logs + MEMORY.md) | SQLite + FTS5 | 保留文件化,增加 FTS5 索引 |
| 记忆召回 | 语义搜索 | FTS5 全文检索 | 两者结合 |
| 用户建模 | 显式配置 (USER.md) | 隐式推断 (Honcho) | 轻量级推断 |
| 学习闭环 | 无 | 完整的五步骤闭环 | 实现核心闭环 |
| 多平台 | 50+ 平台 | 14 平台 | 保持现有优势 |
| 社区生态 | ClawHub 5700+ Skills | 早期阶段 | 保持现有优势 |
五、一句话总结
Hermes 是"全自动学习",OpenClaw 是"全手动配置"。最佳实践是"智能辅助 + 人工确认"——自动发现可学习的内容,但让用户决定是否要学习。