07-Hermes 自学习闭环全拆解:复盘 → 提炼 → 生成 → 应用 → 再复盘
Hermes 自学习闭环全拆解复盘 → 提炼 → 生成 → 应用 → 再复盘闭环全景┌──────────────┐ │ ① 任务执行 │ │ Agent 完成 │ │ 一个任务 │ └──────┬───────┘ │ ▼ ┌──────────────┐ ┌────────────────│ ② 自我复盘 │────────────────┐ │ │ 分析做得 │ │ │ │ 好/坏/原因 │ │ │ └──────┬───────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ │ │ ③ 提炼经验 │ │ │ │ 提取可复用 │ │ │ │ 的规则/模式 │ │ │ └──────┬───────┘ │ │ │ │ │ ┌────────────┼────────────┐ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 更新持久 │ │ 生成/更新│ │ 关联已有 │ │ │ │ 记忆 │ │ Skill │ │ 知识 │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ └────────────┼────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ │ │ ④ 存储到 │ │ │ │ 记忆系统 │ │ │ └──────┬───────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ └─────────────→│ ⑤ 下次应用 │←────────────────┘ │ 新任务自动 │ │ 加载改进 │ └──────────────┘关键设计这不是一个线性的学习然后结束的过程而是一个持续循环。⑤产生的新结果又会在②中被复盘形成螺旋上升。第一步任务执行闭环的起点是任何一个任务。这个任务可以是你直接要求的也可以是 Hermes 自己触发的。任务类型 直接任务 帮我写一个用户积分查询接口 定时任务Hermes 每天早上 9 点自动推送天气和日程 级联任务上一个任务的后续刚才那个接口再加个分页 无论哪种类型Hermes 都会在任务执行时记录 - 原始需求你说的话 / 触发条件 - 执行过程调用了哪些工具、读了哪些文件、搜索了哪些记忆 - 最终输出代码 / 文档 / 回复 - 你的反馈明确的纠正 / 沉默认可 / 追问第二步自我复盘这是整个闭环中最关键的一步。任务完成后Hermes 在后台运行一个内化的复盘 Prompt。复盘的完整 Prompt 模板[系统指令 — 只在后台执行用户不可见] 你刚完成了一个任务。请分析以下内容并输出结构化复牌报告 ## 任务信息 - 原始需求: {user_request} - 执行步骤: {execution_steps} - 最终输出: {final_output} - 用户反馈: {user_feedback} ## 分析维度 ### 1. 做得好的地方What went well - 哪些输出完全符合用户预期 - 哪些已有的记忆/Skill 被正确应用了 - 哪些工具调用是高效的 ### 2. 做得不好的地方What went wrong - 用户有没有纠正纠正了什么 - 用户有没有追问追问 之前没说清楚 - 有没有工具调用失败或返回无关内容 ### 3. 原因分析Why - 做得好是因为什么已有规则明确任务简单记忆精确 - 做得不好是因为什么规则缺失记忆不准确上下文不足 ### 4. 改进方向What to do differently - 如果同样的任务再来一次哪里可以改进 - 能不能提取一条可复用的规则 - 有没有需要更新或删除的已有记忆 ### 5. 可提取的规则Extractable rules - 格式IF [触发条件] THEN [正确做法] - 置信度0-1你有多确定这是一条稳定的规则而非一次性的情况 - 关联已有记忆这条规则和哪些已有记忆相关或冲突复盘的实际产出以写用户积分查询接口为例 复牌报告 1. 做得好的地方 ✅ 代码风格符合已有规则函数式、列表推导式、Pydantic v2 ✅ API 返回格式正确{code, data, message} ✅ 数据库操作加了 try/except 2. 做得不好的地方 ⚠️ 积分计算用了 Float用户在第 3 轮纠正为 Decimal ⚠️ 没有处理并发扣减的场景用户追问了如果同时间扣积分呢 ⚠️ 查询接口没加分页用户自己加了说明应该默认加分页 3. 原因分析 Float 精度问题已有 memory 中记录了涉及金额用 Decimal 但没有关联到积分——说明记忆的语义关联不够 并发问题缺少金融相关操作要显式处理并发的规则 分页问题缺少列表查询默认加分页的规则 4. 改进方向 - 扩展 Decimal 规则的关联范围金额 → 所有数值精确计算 - 新增规则涉及扣减/增加的操作要说明并发控制方案 - 新增规则列表查询类接口默认加分页参数 5. 可提取的规则 规则一置信度 0.85 IF 涉及数值计算金额/积分/数量 THEN 使用 Decimal 而非 Float/Float64 关联: [feedback] 金额用 Decimal 规则二置信度 0.72 IF 接口返回列表 AND 数据量不可控 THEN 默认添加 page/limit 分页参数 关联: 无新规则 规则三置信度 0.65← 置信度偏低因为只有一次 IF 涉及增减操作余额/积分/库存 THEN 显式说明并发控制方案 关联: 无新规则第三步提炼经验复盘报告出来后Hermes 要做的事是——把报告变成知识和行动。提炼的三种产物产物一更新已有持久记忆强化或修正 报告说 Decimal 规则的关联范围不够 → 更新 [feedback] 金额用 Decimal → 扩展 tags: amount → amount,points,quantity,price → 更新语义向量以便积分查询能搜到这条 → 置信度不变规则本身就确认过只是范围扩展了 产物二生成新的持久记忆条目记录新发现 报告说 缺少分页规则 → 创建 [feedback] 列表查询默认加分页 → 置信度 0.72来自复盘评估 → 标记为 emerging还有待验证的新规则 产物三生成或更新 Skill可执行的规则 报告说 可以提取 3 条规则 → 规则一置信度 0.85检查是否已有相关 Skill → 没有 → 创建新 Skill → 规则二置信度 0.72低于阈值但接近 → 标记 pending等进一步验证 → 规则三置信度 0.65低于阈值 → 仅存入持久记忆不生成 Skill提炼的过滤条件不是每条复盘发现都会变成记忆或 Skill。Hermes 有一个过滤层过滤条件 ① 置信度 min_confidence0.85→ 直接生成 Skill ② 置信度 0.70 但 0.85 → 存入持久记忆标记 emerging等更多验证 ③ 置信度 0.70 → 仅记录在复牌日志中不产生行动 ④ 如果和已有记忆冲突 → 先降低已有记忆的置信度再决定 ⑤ 每天最多自动生成 max_per_day 个 Skill默认 5第四步存储到记忆系统提炼完成后三种产物分别写入产物类型 存储位置 下次加载时机 ────────────────────────────────────────────────────────── 更新的持久记忆 SQLite memories 表 下一次检索到关联关键词时 新的持久记忆 SQLite memories 表 下一次检索到关联关键词时 新的 Skill ~/.hermes/skills/auto/ 下一次同类任务加载 Skill 时 更新的 Skill ~/.hermes/skills/auto/ 立即替换旧版本 复盘日志 ~/.hermes/logs/reflection/ 不自动加载用于审计复盘日志的保留# 查看所有复盘记录hermes reflection list# 输出# 2026-06-04 15:30 task: 用户积分查询接口 规则提取: 3 条 Skill 更新: 1 个# 2026-06-04 10:15 task: JWT 刷新逻辑 规则提取: 1 条 Skill 更新: 0 个# 2026-06-03 18:00 task: 数据库连接池配置 规则提取: 2 条 Skill 更新: 1 个# 查看某次复盘的详情hermes reflection show20260604-153000# 复盘日志自动保留 30 天可在 config.yml 的 logging 中配置第五步下次应用闭环的最后一步——也是最让用户体感强烈的一步。当你发起一个同类的新任务Hermes 自动加载了改进场景第二天你提了一个新需求 帮我写一个优惠券模块包含创建和查询列表接口 Hermes 的自动加载过程 1. 检索持久记忆 → 命中 [user] code_style函数式、Pydantic v2 → 命中 [project] api_format{code, data, message} → 命中 [feedback] DB 操作加 try/except → 命中 [feedback] 数值计算用 Decimaltags 已扩展到 quantity → 命中 [feedback] 列表查询默认加分页emerging但仍在上下文中注入 2. 检索 Skill → 匹配 code-style-functional Skill → 匹配 error-message-zh Skill 3. 生成代码时 ✅ 用了列表推导式而非 for 循环Skill ✅ 优惠券金额用 Decimal从积分学到的扩展到金额 ✅ 查询列表自动加了 page/limit 参数从上次复盘学到的 ✅ 错误信息用中文Skill 4. 你只说了写一个优惠券模块——后面三项优化都是自动的。 你甚至可能没有注意到它们的存在。学习和应用的时间线学习效率的典型曲线 第 1-5 个任务快速增长期 每个任务都有明显的纠正 → 学习密度最高 平均每个任务产生 2-4 条新规则或 Skill 更新 第 6-20 个任务稳定增长期 纠正频率下降 → 常见模式已经被学会 平均每 2-3 个任务产生一条新规则 第 20 个任务微调期 纠正很少Agent 已经很懂你 偶尔出现新规则新类型的任务 / 你的偏好变了 大部分复盘报告显示没有新的可提取规则在 config.yml 中控制闭环advanced:evolution:enabled:true# 自学习总开关# 复盘配置reflection:enabled:true# 是否在任务后自动复盘trigger:after_every_task# after_every_task | after_correction_only | manualdepth:standard# quick | standard | deepmax_reflection_tokens:4000# 复盘报告最大 Token# 提炼配置extraction:min_confidence_for_skill:0.85# 生成 Skill 的置信度阈值min_confidence_for_memory:0.70# 存入持久记忆的阈值max_new_skills_per_day:5# 每日最多生成 Skill 数max_new_memories_per_day:20# 每日最多新增记忆数# 复盘日志reflection_log:enabled:trueretention_days:30path:~/.hermes/logs/reflection/depth 参数的选择quick快速复盘 → 只分析有没有被纠正不分析为什么 → 耗时 5 秒不调额外 API → 适合简单任务、批量任务 standard标准复盘推荐 → 完整五维分析好/坏/原因/改进/规则 → 耗时 15-30 秒调用一次 API → 适合大部分日常任务 deep深度复盘 → 额外分析和过去 10 次复盘的关联、跨任务的模式发现 → 耗时 45-90 秒调用 1-3 次 API → 适合架构决策、新的项目初始化、发生了严重错误时加速自学习你主动做什么自学习是自动的但你可以让它更快更准技巧一纠正时附带原因❌ 只告诉它不对 不对 [猜测哪里不对→可能猜错→浪费学习轮次] ✅ 告诉它为什么不对 不对折扣计算应该用 DecimalFloat 会有精度问题 [精确理解问题→置信度直接 0.90→一次学会] 效果差异附带原因的纠正1 次效果 不带原因的 3 次技巧二在关键任务后手动触发深度复盘# 完成了一个重要任务如架构设计、数据库选型后hermes reflection trigger--depthdeep# Hermes 会做额外的跨任务分析# 这个任务中的决策和上周的[某任务]有相似的取舍逻辑# 建议将它们合并为一条更通用的架构决策规则...技巧三定期回顾自动生成的 Skill# 每周花 5 分钟hermes skills list--sourceauto--sortrecent# 快速浏览# → 哪些 Skill 一直在用置信度高可以不管# → 哪些 Skill 置信度低或最近被频繁纠正需要关注# → 哪些 Skill 好久没用了可能需要清理# 清理低质量 Skillhermes skills cleanup --min-confidence0.5--inactive-days30技巧四主动纠正记忆和 Skill当你的偏好发生变化时不要等 Hermes 自己发现那需要 3-5 次纠错 我现在改用 Go 了Python 相关的偏好不用了 已更新 - 归档 3 条 Python 相关 Skill - 降低 5 条 Python 相关记忆的检索优先级 - 新建 [user] tech_stack: Go 的偏好和 OpenClaw 的对比OpenClaw 的改进循环 你改了 System Prompt → 重启 Agent → Agent 行为改变 → 是你主动升级 Agent Hermes 的自学习闭环 Agent 完成任务 → 自我复盘 → 发现改进点 → 自己改 Skill → 是Agent 自我升级 关键差异 OpenClaw 的 Agent 不会因为做了 100 个任务而变得更懂你 Hermes 的 Agent 每做一个任务都在变得更懂你这篇文章的要点1. 五步闭环 任务执行 → 自我复盘 → 提炼经验 → 存储到记忆系统 → 下次应用 2. 复盘模板五维分析 做得好的 / 做得不好的 / 原因分析 / 改进方向 / 可提取的规则 3. 提炼的三种产物 → 更新已有记忆强化或修正 → 新生新的记忆记录新发现 → 生成或更新 Skill可执行规则 4. 置信度过滤 ≥ 0.85 → 生成 Skill 0.70-0.85 → 存为 emerging 记忆 0.70 → 只记录不复盘日志 5. 四个加速学习的技巧 → 纠正时附带原因1 次顶 3 次 → 关键任务后手动深度复盘 → 每周回顾自动生成的 Skill → 偏好变化时主动告诉 Hermes延伸阅读Hermes Self-Evolution 官方文档Nous Research: Building Agents That Learn