261 lines
7.6 KiB
Markdown
261 lines
7.6 KiB
Markdown
# 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
|
||
|
||
**自进化机制:**
|
||
1. 首次创建:完成任务后自动提炼
|
||
2. 使用反馈:用户说"这里应该检查表是否存在"
|
||
3. 自动更新: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 文件
|
||
|
||
**融入方案:**
|
||
```python
|
||
# 每次会话结束后
|
||
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 - 高价值、易实施
|
||
|
||
1. **Skill 自动提炼机制**
|
||
- 复杂任务后 spawn Catalyst 分析
|
||
- 询问用户是否保存为 Skill
|
||
- 保存到 `skills/auto/`
|
||
|
||
2. **记忆主动策展**
|
||
- 任务完成后自动分析值得记住的内容
|
||
- 更新 memory/YYYY-MM-DD.md
|
||
- 定期(heartbeat)整理到 MEMORY.md
|
||
|
||
### P1 - 中等价值、中等复杂度
|
||
|
||
3. **FTS5 全文索引**
|
||
- 为 memory 建立 FTS5 索引
|
||
- 会话前基于主题召回相关记忆
|
||
- 与现有语义搜索结合
|
||
|
||
4. **Skill 反馈改进**
|
||
- 使用 Skill 后询问效果
|
||
- 根据反馈自动更新 Skill
|
||
|
||
### P2 - 长期价值、高复杂度
|
||
|
||
5. **轻量级用户建模**
|
||
- 从 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 是"全手动配置"。最佳实践是"智能辅助 + 人工确认"——自动发现可学习的内容,但让用户决定是否要学习。**
|