Files
metona-ollama-desktop/docs/OPENCLAW-HERMES-ANALYSIS.md
T
thzxx b81bb4dd60 docs: 根据 v5.1.3 实际代码更新全部 docs 文件
- BUILD.md: checkout 分支 v5.1.1→v5.1.3,any 计数修正
- DEVELOPMENT.md: 目录结构更新(tool-handlers 拆分、新服务文件),
  工具数 25→38,数据库 6→7 表,新增 browser/mcp/skill/cron/sub-agent
- OPENCLAW-HERMES-ANALYSIS.md: 10 个路线图功能标记已实现状态,
  更新优先级表和待实施清单
- HERMES-AGENT-DEEP-STUDY.md: 对比表更新(记忆/工具/Agent Loop),
  P0-P2 改进清单标记实施状态
2026-04-19 18:52:23 +08:00

318 lines
12 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.
# OpenClaw & Hermes Agent 对比分析 — Metona 改进路线图
> 基于 2026 年 4 月对 OpenClaw 和 Hermes Agent 两个开源 AI Agent 项目的深度研究,
> 梳理 Metona Ollama Desktop 可吸收和改进的功能点。
---
## 一、项目概览
### OpenClaw(原 Clawdbot
- **定位**:个人 AI 助手运行平台(Gateway 中心化架构)
- **核心哲学**:编排 + 生态 — 你配置模型、工具、通道,网关负责路由
- **GitHub Stars**6 万+2026 年初现象级项目)
- **特点**:技能市场成熟、多通道接入、团队协作友好、生态丰富
### Hermes AgentNous Research
- **定位**:自进化 AI 智能体(Learning Agent 架构)
- **核心哲学**:学习循环 — Agent 从经验中积累技能,越用越强
- **GitHub Stars**6.4 万+2026 年 2-4 月爆火)
- **特点**:技能自动生成、分层记忆、执行轨迹反哺、多实例隔离
### Metona Ollama Desktop
- **定位**:本地 Ollama 桌面 AI Agent 客户端(Electron + TypeScript
- **核心哲学**:原生桌面体验 — 零配置、全离线、系统级集成
- **差异化优势**:系统托盘、原生文件对话框、工作空间面板、暖色调 UI
### 架构对比
```
OpenClaw: Gateway 中心化 → 路由/编排/生态 → 偏「平台」
Hermes: 学习循环核心 → 记忆/技能/进化 → 偏「个体智能体」
Metona: Electron 桌面 → 工具调用/UI → 偏「客户端」
Metona 进化方向:
当前 = 工具调用客户端
目标 = 会学习的桌面 Agent(吸收 Hermes 的学习能力 + OpenClaw 的工程化能力)
```
---
## 二、从 Hermes Agent 吸收
### 1. 技能自动生成(Skill Learning Loop ✅ 已实现 v5.1.0
**Hermes 做法**
完成复杂任务后自动将执行轨迹抽取为结构化 Skill,包含:
- 任务分解步骤
- 关键判断节点
- 潜在陷阱
- 验证方式
下次遇到类似任务时直接复用已有技能,跳过重新推理。多次使用中持续优化技能实现。
**Metona 现状** ✅ 已实现
`skills` 表 + `skill-manager.ts` 自动提取 + `skill_list` / `skill_view` 工具(Level 0 渐进式)。
Agent Loop 结束后从 traces 提取成功工具链,下次自动匹配复用。
### 2. 分层记忆 + 用户画像模型 ✅ 已实现 v5.0.0
**Hermes 做法**
- `memory.md`:事实卡片(技术栈、项目上下文、常用工具)
- `user.md`:用户画像(角色、领域经验、编码风格、偏好)
- 构建一个「关于用户的深层模型」,跨会话持续积累
**Metona 现状** ✅ 已实现
- fact/preference/rule 三类记忆 + FTS5 搜索 + 向量语义搜索
- 用户画像自动推断:检测 14 种技术栈,自动注入 system prompt
- `memory_replace` / `memory_remove` 支持修改和删除(v5.1.0
- 记忆写入前安全扫描(prompt injection / 敏感信息检测)(v5.1.0
- 记忆容量管理:上限 500 条,超限自动清理低价值条目(v5.1.2)
- 记忆过期衰减:90 天未使用自动降低 importancev5.1.3
### 3. 执行轨迹导出 → 自训练数据 🔵 P3(未实现)
**Hermes 做法**
将工具调用轨迹导出为训练数据,可用于后续模型微调。Agent 不仅在「用模型」,也在不断生产可以反哺模型的训练数据。
**Metona 现状**
`traces` 表已记录每步 Thought → Action → Observation,但没有导出功能。
**改进方案**
1. 新增「导出训练数据」功能
2. 将 traces 转换为 SFT 格式:
```json
{
"instruction": "帮我查询项目中所有 TypeScript 文件",
"input": "",
"output": "我来帮你搜索...",
"tool_calls": [
{"name": "search_files", "arguments": {"path": ".", "query": "*.ts"}}
],
"observations": ["找到 42 个文件..."],
"final_answer": "项目中有 42 个 TypeScript 文件..."
}
```
3. 设置中新增「允许导出训练数据」开关
4. 导出格式支持 JSON / JSONL
---
## 三、从 OpenClaw 吸收
### 4. Heartbeat 主动检查机制 ✅ 已实现 v5.0.0
**OpenClaw 做法**
Agent 定期(默认 30 分钟)主动检查邮箱、日历、通知等,有事才通知用户,没事保持安静(`HEARTBEAT_OK`)。支持在 `HEARTBEAT.md` 中配置检查项。
**Metona 现状** ✅ 已实现
后台 heartbeat 定时器,检查 Ollama 连接状态等,通过 Electron Notification API 推送通知。
### 5. Cron 定时任务 ✅ 已实现 v5.0.0
**OpenClaw 做法**
支持 `at`(一次性)和 `cron`(周期性)两种调度,systemEvent(注入文本)和 agentTurn(隔离执行)两种任务类型。
**Metona 现状** ✅ 已实现
`cron-manager.ts` 已集成,支持一次性 / 周期性任务调度,任务结果显示在聊天区域。
### 6. MCPModel Context Protocol)生态对接 ✅ 已实现 v5.0.0
**OpenClaw + Hermes**
均支持 MCP 协议,可连接外部工具和 IDECursor、VS Code、Claude Desktop)。工具从硬编码 → 动态发现。
**Metona 现状** ✅ 已实现
- `mcp-manager.ts`(主进程)+ `mcp-client.ts`(渲染进程)
- JSON-RPC 2.0 over stdio 通信
- 7 个 IPC 通道(startServer / stopServer / stopAll / callTool / getTools / getStatuses / refreshTools
- Shadowing 防护:MCP 工具注册时自动检测与内置工具重名(v5.1.2)
- 设置面板管理:添加 / 启用 / 禁用 / 删除
### 7. 浏览器控制(Browser Automation ✅ 已实现 v5.0.0
**OpenClaw**
内置 Playwright 浏览器自动化,支持截图、表单填写、页面交互。
**Metona 现状** ✅ 已实现
`browser.ts`(主进程)提供 8 个浏览器工具:browser_open / browser_screenshot / browser_evaluate / browser_extract / browser_click / browser_type / browser_scroll / browser_close。
### 8. 子代理委派(Sub-Agent Delegation ✅ 已实现 v5.0.0
**OpenClaw**
`sessions_spawn` 生成独立子会话,支持 `run`(一次性)和 `session`(持久化)两种模式。
**Metona 现状** ✅ 已实现
`sub-agent.ts` + `spawn_task` 工具,主 Agent 可委派独立子任务执行。
---
## 四、从两者共同吸收(通用最佳实践)
### 9. 会话管理增强 ✅ 部分实现 v5.0.0
| 功能 | OpenClaw | Hermes | Metona 现状 |
|------|----------|--------|------------|
| `/new` `/reset` | ✅ | ✅ | ✅ 已有 |
| `/retry` 重试 | ✅ | ✅ | ✅ 已实现 |
| `/undo` 撤销 | ✅ | ✅ | ✅ 已实现 |
| `/compress` 压缩 | ✅ | ✅ | ❌ 未实现(上下文压缩) |
| `/usage` 统计 | ✅ | ✅ | ⚠️ 部分(日志面板有) |
| `/model` 切换 | ✅ | ✅ | ⚠️ 下拉框 |
**`/compress` 实现方案**(未实现):
```typescript
// 将 messages 中间部分(保留首尾各 2 条)用 LLM 做摘要
// 摘要结果作为 system 消息注入
// 大幅减少 token 消耗,保留关键上下文
```
### 10. 诊断系统(Doctor 🟢 P2(未实现)
**Hermes 做法**
`hermes doctor` 一键诊断所有配置问题:连接、模型、工具权限、磁盘空间等。
**Metona 现状**
设置面板只有 Ollama 连接检测。
**改进方案**
在设置面板新增「系统诊断」页面,检查项:
| 检查项 | 说明 |
|--------|------|
| Ollama 连接 | 服务地址可达、版本号 |
| 模型可用性 | 选中模型是否已下载、是否正在运行 |
| Tool Calling 支持 | 当前模型是否支持 function calling |
| Vision 支持 | 当前模型是否支持图片 |
| 磁盘空间 | workspace 目录剩余空间 |
| SQLite 完整性 | 数据库文件完整性检查 |
| 工具权限 | 安全配置是否合理 |
| 版本信息 | Metona 版本、Electron 版本、Node 版本 |
### 11. 人格/模式切换 ✅ 已实现 v5.0.0
**OpenClaw**
`SOUL.md` 定义人格和行为准则。
**Hermes**
`/personality [name]` 切换不同人格模式。
**Metona 现状** ✅ 已实现
多种预设人格模板(编程助手/写作助手/数据分析师等),每种有独立 system prompt + 温度设置,设置面板快速切换。
### 12. 响应速度优化 ⚡ 部分实现
**Hermes 核心优势**
比 OpenClaw 响应更快,社区反馈明显。
**Metona 已优化方向**
1. ✅ **工具并行执行**:独立工具通过 `Promise.all` 并行执行(v5.0.0
2. ❌ **模型预热**:切换模型后发送空请求保持 `keep_alive`
3. ❌ **上下文智能管理**:超过 `num_ctx` 时自动摘要而非截断
4. ❌ **工具结果预处理**:在格式化前预计算,减少序列化开销
---
## 五、优先级排序
### 按投入产出比排序
| 优先级 | 功能 | 复杂度 | 用户价值 | 来源 | 状态 |
|--------|------|--------|----------|------|------|
| 🔴 P0 | 技能自动生成(Skill Loop | 高 | ⭐⭐⭐⭐⭐ | Hermes | ✅ v5.1.0 |
| 🔴 P0 | `/retry` `/undo` 会话操作 | 低 | ⭐⭐⭐⭐⭐ | 共同 | ✅ v5.0.0 |
| 🟡 P1 | 用户画像模型 | 中 | ⭐⭐⭐⭐ | Hermes | ✅ v5.0.0 |
| 🟡 P1 | 上下文压缩 (`/compress`) | 中 | ⭐⭐⭐⭐ | 共同 | ❌ 未实现 |
| 🟡 P1 | 工具并行执行优化 | 中 | ⭐⭐⭐⭐ | 共同 | ✅ v5.0.0 |
| 🟢 P2 | Heartbeat 主动检查 | 低 | ⭐⭐⭐ | OpenClaw | ✅ v5.0.0 |
| 🟢 P2 | 人格模板切换 | 低 | ⭐⭐⭐ | 共同 | ✅ v5.0.0 |
| 🟢 P2 | 诊断系统 (`doctor`) | 低 | ⭐⭐⭐ | Hermes | ❌ 未实现 |
| 🔵 P3 | MCP 生态对接 | 高 | ⭐⭐⭐⭐ | 共同 | ✅ v5.0.0 |
| 🔵 P3 | 浏览器控制 | 高 | ⭐⭐⭐ | 共同 | ✅ v5.0.0 |
| 🔵 P3 | 子代理委派 | 高 | ⭐⭐⭐ | 共同 | ✅ v5.0.0 |
| 🔵 P3 | 训练数据导出 | 中 | ⭐⭐ | Hermes | ❌ 未实现 |
| ⚪ P4 | Cron 定时任务 | 中 | ⭐⭐ | OpenClaw | ✅ v5.0.0 |
### 待实施功能
| 功能 | 复杂度 | 说明 |
|------|--------|------|
| `/compress` 上下文压缩 | 中 | LLM 摘要中间轮次,而非简单滑动窗口 |
| 诊断系统 (`doctor`) | 低 | 设置面板一键检查连接/模型/权限/磁盘 |
| 训练数据导出 | 中 | traces → SFT 格式导出 |
| Skill 渐进式加载 | 中 | Level 0→1→2,先返回名称+描述,需要时再加载全文 |
| Session 谱系跟踪 | 中 | 压缩后创建子 session,保留 parent_id |
---
## 六、Metona 的差异化定位
```
OpenClaw = 平台型(Gateway + Skills + 多通道 + 团队)
Hermes = 进化型(学习循环 + 记忆 + 技能自动生成)
Metona = 桌面型(原生体验 + 系统集成 + 离线优先)
Metona 的独特价值:
✅ 零配置启动(npm start 即用)
✅ 系统托盘 + 原生文件对话框
✅ 工作空间面板(终端 + 文件浏览器一体化)
✅ 暖色调 UI(非暗色主题,长时间使用不疲劳)
✅ 全离线运行(数据不离开本机)
已吸收(v5.0.0 ~ v5.1.3):
✅ 技能自动生成(Hermes — v5.1.0
✅ 用户画像模型(Hermes — v5.0.0
✅ /retry /undo 会话操作(共同) — v5.0.0
✅ MCP 生态对接(共同) — v5.0.0
✅ 浏览器控制(共同) — v5.0.0
✅ Heartbeat 主动检查(OpenClaw — v5.0.0
✅ Cron 定时任务(OpenClaw — v5.0.0
✅ 子代理委派(共同) — v5.0.0
✅ 记忆容量管理 + 安全扫描(Hermes — v5.1.2 / v5.1.0
✅ Shadowing 防护(Hermes — v5.1.2
✅ 预算警告临时层(Hermes — v5.1.2
待吸收:
🔜 /compress 上下文压缩(Hermes Context
🔜 诊断系统 doctorHermes
🔜 Skill 渐进式加载(Hermes
🔜 训练数据导出(Hermes
最终形态 = 会学习的桌面 Agent
= Metona 的原生桌面体验
+ Hermes 的学习进化能力
+ OpenClaw 的工程化实践
```
---
*最后更新:2026-04-19(根据 v5.1.3 实际代码更新实施状态)*