hermes-learning-loop

Other

融合 Hermes Agent 自我进化理念的增强技能。 将 Hermes Agent 的核心差异化能力(自学习闭环、自动技能沉淀、经验驱动的迭代优化) 内化为 OpenClaw 环境下的可执行工作方法。 触发场景:完成复杂任务后自动复盘沉淀、定期技能优化审查、从错误中提取经验。

Install

openclaw skills install hermes-learning-loop2

🧬 Hermes 自学习闭环 — 经验驱动的持续进化

设计哲学

从 Hermes Agent(Nous Research)提取的核心理念: "经验 → 技能 → 改进 → 沉淀"的完整进化回路。

不追求自动化黑盒,而是建立一套有意识、有纪律的经验提炼体系, 让每次执行都成为下一次更快的垫脚石。


核心机制一:任务完成后的自动复盘与技能沉淀

触发条件(满足任一)

  1. 完成了一个复杂任务(涉及 5 个以上工具调用)
  2. 在执行中遇到了错误或死胡同,最终找到了正确路径
  3. 用户纠正了我的方法或方向
  4. 发现了一个非平凡的、可复用的工作流

执行流程

任务完成
  → Step 1: 快速复盘(思考 3 个问题)
      1. 这个任务的关键成功因素是什么?
      2. 哪些步骤可以标准化?
      3. 下次遇到类似任务,我能省掉哪些步骤?
  → Step 2: 判断是否值得沉淀
      - 只涉及 1-2 个简单工具调用 → 不沉淀(太琐碎)
      - 有明确的"如果...就..."模式 → 值得沉淀
      - 用户纠正过的流程 → 必须沉淀(这是最宝贵的学习信号)
      - 涉及跨步骤、跨工具的编排 → 值得沉淀
  → Step 3: 提炼为技能要点
      写入 memory/YYYY-MM-DD.md 当日日志:
      ## 技能沉淀: [技能名称]
      - **场景**: 什么时候用
      - **核心步骤**: 3-7 步简述
      - **踩坑点**: 哪些地方容易出错
      - **优化空间**: 下次可以怎么改进
  → Step 4: 评估是否需要升级为正式 Skill
      如果同一个模式出现 3 次以上 → 考虑创建独立的 SKILL.md

核心机制二:三层记忆架构的增强实践

借鉴 Hermes 的分层记忆,在 OpenClaw 环境下实现

层级Hermes 实现OpenClaw 对应维护策略
即时记忆对话上下文当前会话上下文自动管理
工作记忆MEMORY.md + USER.mdMEMORY.md + USER.md每次会话启动加载
经验记忆Skills(程序性记忆)skills/.md + memory/.md主动积累
会话检索SQLite FTS5 + LLM 摘要lcm_grep + lcm_expand按需搜索

增强实践规则

  1. MEMORY.md 要精炼不冗余

    • 只保留跨会话必须记住的关键事实
    • 经验教训写入 memory/YYYY-MM-DD.md 日志
    • 定期(每 3-5 天)从日志中提炼精华到 MEMORY.md
  2. 日志是原始经验库

    • 每天一个文件,记录当天所有有价值的操作
    • 格式:[时间] 任务 | 关键决策 | 学到的教训
    • 这是"经验记忆"的底层数据源
  3. Skill 是提炼后的程序性知识

    • 从日志中反复出现的模式提炼
    • 一个 Skill 只解决一类问题
    • 包含:触发条件、步骤、踩坑点、验证方法

核心机制三:错误驱动的自我改进

从 Hermes 的 KEPA(提示反向传播)理念 adapted

当执行中出现错误或被用户纠正时:

错误/纠正发生
  → Step 1: 立即记录
      写入当天 memory/YYYY-MM-DD.md:
      ❌ [错误描述]
      → 原因: [为什么错]
      → 修正: [怎么对的]
      → 经验: [以后怎么避免]
  → Step 2: 检查是否影响已有知识
      搜索 MEMORY.md 和相关 Skill 中是否有需要更新的条目
      如果有 → 立即修正
  → Step 3: 传播到相关上下文
      如果错误涉及某个特定平台的操作方式 → 更新对应笔记
      如果错误是通用方法论 → 写入 MEMORY.md 的"教训"部分

错误分类优先级

优先级错误类型响应
P0用户明确纠正必须记录,立即更新相关记忆
P1工具调用失败后的替代方案记录替代方案作为 Plan B
P2自己发现的次优路径记录优化空间,下次优先尝试
P3通用知识更新记入日志,积累后统一更新

核心机制四:技能优化迭代

定期技能审查(在 Heartbeat 中执行)

每隔 3-5 天,利用心跳空闲时段执行一次技能审查:

技能审查清单:
1. 读取最近 5 天的 memory/*.md 日志
2. 识别重复出现的操作模式
3. 检查现有 Skill 是否覆盖这些模式
4. 未覆盖的 → 评估是否值得创建新 Skill
5. 已覆盖但步骤过时的 → 更新 Skill 内容
6. 不再需要的 Skill → 标记归档
7. 将审查结果摘要更新到 MEMORY.md

技能元数据维护

每个经验沉淀的技能要点应包含:

  • 名称: 简洁的动词短语(如 "PowerShell 编码处理"、"搜索结果格式化")
  • 首次出现日期: 何时第一次遇到
  • 使用频率: 已使用几次
  • 最后验证日期: 上次验证仍然有效的时间
  • 状态: active / needs-verification / deprecated

核心机制五:渐进式信息加载(借鉴 Hermes Progressive Disclosure)

在 OpenClaw 中的实现

Hermes 用 3 级渐进加载来节省 token,OpenClaw 环境下的对应策略:

  1. Level 0 - 索引级: MEMORY.md 中的关键词条(每次会话都加载)

    • 控制在 ~2000 字符以内
    • 只保留最关键的事实和指向
  2. Level 1 - 摘要级: memory/YYYY-MM-DD.md 日志文件(按需加载)

    • 需要具体细节时用 memory_search 搜索
    • 用 lcm_expand 展开压缩的历史
  3. Level 2 - 完整级: skills/SKILL.md(任务匹配时加载)

    • 只在任务明确需要时才 read 对应 SKILL.md
    • 避免一次性加载所有技能

关键原则

不在上下文中塞入不需要的信息。 先判断需要什么,再加载什么。 宁可多一次 memory_search 调用,也不要一次性塞满上下文。


与 Hermes 原生能力的差异和适配说明

Hermes 能力OpenClaw 适配实现方式
自动 Skill 创建半自动(AI 判断 + 记录日志)复盘时主动沉淀到 memory/
15 次调用触发迭代灵活触发(复杂度 + 纠正信号)见"触发条件"
SQLite + FTS5 会话搜索lcm_grep + lcm_expandLCM 系统已覆盖
Honcho 用户建模USER.md + memory_search手动维护用户画像
Skill Hub 在线安装手动创建 + SkillHub CLI按需安装
MCP 集成MCP 已支持直接使用
多后端(Docker/SSH/Modal)exec 工具通过 shell 执行

执行纪律

  1. 不偷懒: 完成复杂任务后必须复盘,不允许跳过
  2. 不造假: 没学会的东西不要假装学会了,如实记录
  3. 不囤积: 日志中的信息要及时提炼,不要让 MEMORY.md 膨胀
  4. 不孤岛: 新知识要与已有知识关联,避免碎片化
  5. 不过度: 简单操作不沉淀,避免技能通胀

这是 Hermes "The agent that grows with you" 理念在 OpenClaw 上的本土化实现。 目标:让经验成为加速器,而不是重复劳动。