Files
metona-ollama-desktop/docs/OPENCLAW-HERMES-ANALYSIS.md
T

15 KiB
Raw Blame History

OpenClaw & Hermes Agent 对比分析 — Metona 改进路线图

基于 2026 年 4 月对 OpenClaw 和 Hermes Agent 两个开源 AI Agent 项目的深度研究, 梳理 Metona Ollama Desktop 可吸收和改进的功能点。


一、项目概览

OpenClaw(原 Clawdbot

  • 定位:个人 AI 助手运行平台(Gateway 中心化架构)
  • 核心哲学:编排 + 生态 — 你配置模型、工具、通道,网关负责路由
  • GitHub Stars6 万+2026 年初现象级项目)
  • 特点:技能市场成熟、多通道接入、团队协作友好、生态丰富

Hermes AgentNous Research

  • 定位:自进化 AI 智能体(Learning Agent 架构)
  • 核心哲学:学习循环 — Agent 从经验中积累技能,越用越强
  • GitHub Stars6.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🔴 P0

Hermes 做法

完成复杂任务后自动将执行轨迹抽取为结构化 Skill,包含:

  • 任务分解步骤
  • 关键判断节点
  • 潜在陷阱
  • 验证方式

下次遇到类似任务时直接复用已有技能,跳过重新推理。多次使用中持续优化技能实现。

Metona 现状

有 ReAct 执行轨迹记录(traces 表),但仅用于回溯查看,没有自动提炼为可复用技能。

改进方案

  1. traces 表基础上,Agent Loop 结束后自动分析执行轨迹
  2. 提取成功的工具调用序列 → 保存为 skills
  3. 下次新会话检索匹配的 skill → 优先复用
  4. 技能质量随使用次数迭代优化
新表结构:
skills:
  id              TEXT PRIMARY KEY
  name            TEXT           -- 技能名称
  description     TEXT           -- 技能描述
  trigger_pattern TEXT           -- 触发条件(关键词/意图模式)
  tool_chain      TEXT           -- 工具调用链(JSON 数组)
  success_count   INTEGER        -- 成功次数
  fail_count      INTEGER        -- 失败次数
  avg_duration    INTEGER        -- 平均执行时长(ms
  created_at      INTEGER
  updated_at      INTEGER
  last_used_at    INTEGER

Agent Loop 新增流程:

任务完成 → 分析 traces → 提取工具链模式 → 判断是否可复用
  → 新技能?→ 创建 skill 记录
  → 匹配已有技能?→ 更新成功率、优化参数
  → 下次同类任务 → 优先使用 skill → 跳过推理直接执行

2. 分层记忆 + 用户画像模型 🟡 P1

Hermes 做法

  • memory.md:事实卡片(技术栈、项目上下文、常用工具)
  • user.md:用户画像(角色、领域经验、编码风格、偏好)
  • 构建一个「关于用户的深层模型」,跨会话持续积累

Metona 现状

有 fact/preference/rule 三类记忆 + FTS5 搜索 + 向量语义搜索。但没有独立的用户画像系统,不理解「用户是谁」。

改进方案

  1. 新增 user_profiles 表或独立的 user.md 文件
  2. 自动推断用户画像:
    • 技术栈偏好(Python/TypeScript/Go...
    • 编码风格(verbose/compact、type hints/any
    • 常用工具链
    • 工作时间段
    • 对错误的容忍度
  3. 记忆注入时区分层级:
    • 画像 → 决策上下文(决定 Agent 的行为风格)
    • 偏好 → 行为引导(决定具体操作方式)
    • 事实 → 参考信息(决定知识引用)
user_profiles 表:
  id              TEXT PRIMARY KEY
  role            TEXT           -- 角色(后端工程师/全栈/数据科学家...)
  tech_stack      TEXT           -- 技术栈(JSON 数组)
  code_style      TEXT           -- 编码风格描述
  experience      TEXT           -- 经验描述
  work_hours      TEXT           -- 工作时间段
  error_tolerance TEXT           -- 错误容忍度(high/medium/low
  updated_at      INTEGER

3. 执行轨迹导出 → 自训练数据 🔵 P3

Hermes 做法

将工具调用轨迹导出为训练数据,可用于后续模型微调。Agent 不仅在「用模型」,也在不断生产可以反哺模型的训练数据。

Metona 现状

traces 表已记录每步 Thought → Action → Observation,但没有导出功能。

改进方案

  1. 新增「导出训练数据」功能
  2. 将 traces 转换为 SFT 格式:
    {
      "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 主动检查机制 🟢 P2

OpenClaw 做法

Agent 定期(默认 30 分钟)主动检查邮箱、日历、通知等,有事才通知用户,没事保持安静(HEARTBEAT_OK)。支持在 HEARTBEAT.md 中配置检查项。

Metona 现状

纯被动模式,用户不说话就不动。

改进方案

  1. 新增后台 heartbeat 定时器(可配置间隔,默认关闭)
  2. 可配置检查项:
    • Ollama 服务连接状态
    • 磁盘空间(workspace 目录)
    • 新模型可用性(对比 ollama list 和本地列表)
    • 长时间未保存的会话
  3. 有异常时通过 Electron Notification API 推送系统通知
  4. 检查结果写入 heartbeat-state.json 避免重复告警

5. Cron 定时任务 🔵 P4

OpenClaw 做法

支持两种调度:

  • at:一次性定时(ISO-8601 时间戳)
  • cron:周期性调度(cron 表达式 + 时区)

任务类型:

  • systemEvent:注入文本到主会话
  • agentTurn:在隔离会话中执行 Agent 任务

Metona 现状

无定时任务功能。

改进方案

  1. 集成轻量级调度器(cron npm 包或 setInterval
  2. 预设任务模板:
    • 每日对话摘要(自动总结当天对话)
    • 定期备份(导出会话为 JSON
    • 旧会话清理(超过 N 天的归档)
    • Ollama 模型更新检查
  3. 任务结果直接显示在聊天区域或工作空间面板

6. MCPModel Context Protocol)生态对接 🔵 P3

OpenClaw + Hermes

均支持 MCP 协议,可连接外部工具和 IDECursor、VS Code、Claude Desktop)。工具从硬编码 → 动态发现。

Metona 现状

25 个内置工具硬编码在 tool-registry.ts,无法扩展外部工具。

改进方案

  1. 实现 MCP Client(连接外部 MCP Server
  2. 工具注册表重构:
    • 内置工具(现有 25 个)
    • MCP 工具(通过配置文件或 UI 添加)
  3. 用户可自行添加 MCP 工具,如:
    • 数据库查询 MCP Server
    • 外部 API 调用 MCP Server
    • 专用硬件控制 MCP Server
  4. 设置面板新增「MCP 工具管理」页面

7. 浏览器控制(Browser Automation 🔵 P3

OpenClaw

内置 Playwright 浏览器自动化,支持截图、表单填写、页面交互。

Hermes

「全网页与浏览器控制」,真正的网页浏览能力。

Metona 现状

只有 web_fetchHTTP 抓取纯文本)和 web_search(搜索引擎),无法交互式操作网页。

改进方案

  1. 集成 Playwright 或 Puppeteer 作为新工具
  2. 新增工具集:
    • browser_open:打开 URL
    • browser_click:点击元素
    • browser_type:输入文本
    • browser_screenshot:截图
    • browser_extract:提取页面数据
  3. 在工作空间面板显示浏览器实时预览
  4. 注意:会增加应用体积约 200MB(Chromium 二进制),可设为可选组件

8. 子代理委派(Sub-Agent Delegation 🔵 P3

OpenClaw

sessions_spawn 生成独立子会话,支持 run(一次性)和 session(持久化)两种模式。子 Agent 完成后自动汇报。

Hermes

生成独立子代理处理并行工作流,零上下文成本。

Metona 现状

单 Agent Loop,串行执行,最多 15 轮。

改进方案

  1. 主 Agent 识别可并行任务后 spawn 子 Agent
  2. 子 Agent 独立执行(独立消息上下文)
  3. 完成后汇报结果给主 Agent
  4. 在聊天区域以可折叠卡片展示子 Agent 进度
  5. 实现方式:复用当前 Agent Loop,但起始消息不同

四、从两者共同吸收(通用最佳实践)

9. 会话管理增强 🟡 P1

功能 OpenClaw Hermes Metona 现状 改进方案
/new /reset 已有
/retry 重试 回退到上一轮消息,重新生成
/undo 撤销 删除最后一条用户/AI 消息对
/compress 压缩 LLM 摘要长对话,压缩上下文
/usage 统计 ⚠️ 部分 按日/周/月 token 消耗统计
/model 切换 ⚠️ 下拉框 输入框快速切换,支持模糊搜索

/retry 实现方案

// 从 messages 数组中找到最后一个 user 消息的位置
// 删除该位置之后的所有消息(assistant 回复 + 可能的 tool 调用)
// 用相同的 user 消息重新发起 Agent Loop

/compress 实现方案

// 将 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. 人格/模式切换 🟢 P2

OpenClaw

SOUL.md 定义人格和行为准则。

Hermes

/personality [name] 切换不同人格模式。

Metona 现状

只有 system prompt 自定义设置。

改进方案

  1. 预设多个人格模板:

    人格 说明 温度 工具集
    编程助手 严谨、注重代码质量 0.3 文件操作 + Git + 命令
    写作助手 流畅、有文采 0.8 文件操作 + 网络搜索
    数据分析师 精确、数据驱动 0.2 文件操作 + 命令
    翻译 准确、信达雅 0.4 文件操作
    通用助手 平衡 0.7 全部
  2. 每个人格有独立的 system prompt + 工具集 + 温度设置

  3. 在 Header 或 Model Bar 快速切换

  4. 用户可创建自定义人格

12. 响应速度优化

Hermes 核心优势

比 OpenClaw 响应更快,社区反馈明显。

Metona 可优化方向

  1. 模型预热:切换模型后发送空请求保持 keep_alive,减少首次推理延迟
  2. 工具并行执行:当前多个工具串行执行,互相独立的工具可并行
    // 改进前:串行
    for (const call of toolCalls) {
      await executeTool(call);
    }
    
    // 改进后:检测依赖关系,并行执行独立工具
    const independentCalls = toolCalls.filter(/* 无依赖 */);
    const dependentCalls = toolCalls.filter(/* 有依赖 */);
    await Promise.all(independentCalls.map(c => executeTool(c)));
    for (const c of dependentCalls) await executeTool(c);
    
  3. 上下文智能管理:超过 num_ctx 时自动摘要而非截断,保留更多信息
  4. 工具结果预处理:在格式化前预计算,减少序列化开销

五、优先级排序

按投入产出比排序

优先级 功能 复杂度 用户价值 来源
🔴 P0 技能自动生成(Skill Loop Hermes
🔴 P0 /retry /undo 会话操作 共同
🟡 P1 用户画像模型 Hermes
🟡 P1 上下文压缩 (/compress) 共同
🟡 P1 工具并行执行优化 共同
🟢 P2 Heartbeat 主动检查 OpenClaw
🟢 P2 人格模板切换 共同
🟢 P2 诊断系统 (doctor) Hermes
🔵 P3 MCP 生态对接 共同
🔵 P3 浏览器控制 共同
🔵 P3 子代理委派 共同
🔵 P3 训练数据导出 Hermes
P4 Cron 定时任务 OpenClaw

建议实施路线

v4.1 — 会话增强(快速见效)

  • /retry 重试上一轮
  • /undo 撤销最后消息
  • /compress 上下文压缩
  • 工具并行执行优化

v4.2 — 智能进化(核心差异化)

  • 技能自动生成系统(Skill Loop)
  • 用户画像模型
  • 人格模板切换

v4.3 — 生态扩展(长期建设)

  • MCP Client 支持
  • Heartbeat 主动检查
  • 诊断系统
  • 子代理委派

v5.0 — 全面进化

  • 浏览器控制
  • 训练数据导出
  • Cron 定时任务
  • 多实例隔离

六、Metona 的差异化定位

OpenClaw  = 平台型(Gateway + Skills + 多通道 + 团队)
Hermes    = 进化型(学习循环 + 记忆 + 技能自动生成)
Metona    = 桌面型(原生体验 + 系统集成 + 离线优先)

Metona 的独特价值:
  ✅ 零配置启动(npm start 即用)
  ✅ 系统托盘 + 原生文件对话框
  ✅ 工作空间面板(终端 + 文件浏览器一体化)
  ✅ 暖色调 UI(非暗色主题,长时间使用不疲劳)
  ✅ 全离线运行(数据不离开本机)

  待吸收:
  🔜 技能自动生成(Hermes)
  🔜 用户画像模型(Hermes)
  🔜 会话管理增强(共同)
  🔜 MCP 生态对接(共同)

最终形态 = 会学习的桌面 Agent
  = Metona 的原生桌面体验
  + Hermes 的学习进化能力
  + OpenClaw 的工程化实践

最后更新:2026-04-18