Files
val-blog/hermes_insights.md
T

261 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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** 设计为常驻 VPS24/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 是"全手动配置"。最佳实践是"智能辅助 + 人工确认"——自动发现可学习的内容,但让用户决定是否要学习。**