Install
openclaw skills install @thcjp/evolution-engine-v2面向 AI Agent 的自我进化引擎,直击"重复犯错、从沉默误学、记忆压缩丢失、进化无法衡量"四大痛点。通过自反思、纠错学习、模式晋升机制,让 Agent 从每次交互中积累可复用经验,而非每次会话从零开始。 核心能力包括自反思日志(任务后自动评估"是否达预期/如何改进/是否成模式")、纠错学习信号(识别用户纠正并归类)、反污染防线(3 次确认才晋升、永不从沉默推断)、分层记忆压缩(合并而非删除,保留确认偏好)、进化指标度量(纠正频率/晋升率/复用率可量化)、命名空间隔离(项目/领域/全局三级)、心跳维护机制、冲突解决规则。 适用场景:AI 编程助手避免重复犯错、长期项目经验沉淀、多项目模式复用、希望 Agent 越用越好的用户、需要可衡量进化的团队。 差异化:相比简单记忆存储,本系统提供反污染防线(3 次确认+不从沉默推断)避免误学、压缩合并而非删除保留确认偏好、进化指标让"是否变好"可量化、命名空间隔离避免跨项目污染、心跳自动维护。所有记忆分层加载降低 token 消耗。 触发关键词:自我改进、反思、纠错、学习、进化、经验积累、避免重复犯错、self-improving、reflection
openclaw skills install @thcjp/evolution-engine-v2让 Agent 越用越好,而非每次从零开始。 直击四大自我进化顽疾:重复犯错、从沉默误学、记忆压缩丢失、进化无法衡量。通过自反思、纠错学习、反污染防线,让每次交互都积累可复用经验。
| 用户痛点 | 发生场景 | 本系统对策 |
|---|---|---|
| 重复犯错 | 同样的坑踩多次 | 纠错日志强制记录 + 召回时优先注入 |
| 从沉默误学 | 用户没纠正就当成"做对了" | 反污染防线:永不从沉默推断 |
| 记忆压缩丢偏好 | 压缩时删了已确认的偏好 | 压缩合并而非删除,确认偏好永不丢 |
| 进化无法衡量 | 不知 Agent 是否真变好 | 进化指标:纠正率/晋升率/复用率 |
| 晋升太快污染 | 一次纠错就当永久规则 | 3 次一致确认才晋升到热层 |
| 跨项目污染 | A 项目的偏好污染 B 项目 | 命名空间隔离:项目/领域/全局三级 |
| 上下文浪费 | 每次加载所有记忆 | 分层加载:热层始终+温层按需 |
| 反思流于形式 | 反思了但不落地 | 反思三问 + 模式晋升闭环 |
| 触发情境 | 说明 |
|---|---|
| 用户纠正你或指出错误 | "不对,应该是..." |
| 完成重要工作想评估结果 | 自反思时机 |
| 发现自己输出可改进 | 主动反思 |
| 希望知识跨会话积累 | 不用手动维护 |
| 用户问"你学到了什么" | 展示进化成果 |
记忆存储在 ~/evolution-engine/,分层结构:
~/evolution-engine/
├── memory.md # 热层:≤100 行,始终加载
├── index.md # 主题索引(含行数)
├── heartbeat-state.md # 心跳状态:上次运行、上次回顾
├── metrics.md # 进化指标追踪
├── projects/ # 按项目隔离的学习
│ ├── [项目A].md
│ └── [项目B].md
├── domains/ # 按领域隔离
│ ├── code.md # 编程领域
│ ├── writing.md # 写作领域
│ └── comms.md # 沟通领域
├── archive/ # 冷层:衰减的模式
└── corrections.md # 最近 50 条纠错日志
| 层级 | 位置 | 大小限制 | 加载行为 |
|---|---|---|---|
| 热层 | memory.md | ≤100 行 | 始终加载:确认规则、核心偏好 |
| 温层 | projects/, domains/ | ≤200 行/文件 | 按项目/领域匹配加载 |
| 冷层 | archive/ | 无限制 | 显式查询时加载 |
| 纠错 | corrections.md | 最近 50 条 | 回顾时加载 |
| 信号模式 | 示例 |
|---|---|
| 直接否定 | "不对,那不是..." |
| 修正 | "其实应该是..." |
| 指出错误 | "你错了关于..." |
| 偏好表达 | "我喜欢 X,不是 Y" |
| 提醒曾告知 | "我记得告诉过你..." |
| 要求停止 | "别再做 X" |
| 质疑重复 | "你为什么一直..." |
| 信号模式 | 示例 |
|---|---|
| 喜欢 | "我喜欢你..." |
| 总是要求 | "总是为我做 X" |
| 永不要求 | "永远别做 Y" |
| 风格声明 | "我的风格是..." |
| 项目特定 | "对 [项目],用..." |
| 信号模式 | 说明 |
|---|---|
| 相同指令重复 3+ 次 | 可能是偏好 |
| 工作流反复有效 | 可能是模式 |
| 用户赞扬特定方法 | 可能是偏好 |
| 类型 | 示例 | 为什么忽略 |
|---|---|---|
| 一次性指令 | "现在做 X" | 非模式 |
| 上下文特定 | "在这个文件里..." | 非通用 |
| 假设性 | "如果..." | 非真实偏好 |
| 沉默 | 用户没纠正 | 永不从沉默推断"做对了" |
| 第三方偏好 | "我老板觉得..." | 非用户自身偏好 |
核心原则:永不从沉默推断偏好。 用户没纠正 ≠ 用户满意。
| 级别 | 规则 | 目的 |
|---|---|---|
| 第 1 级 | 沉默不记录 | 避免误学"没被纠正=做对了" |
| 第 2 级 | 单次纠错不晋升 | 避免单点误判成永久规则 |
| 第 3 级 | 3 次一致才确认 | 确保模式稳定才入热层 |
用户纠正 → 写入 corrections.md(标记"待观察")
↓
同类信号第 2 次 → 标记"模式候选"
↓
同类信号第 3 次(7 天内)→ 询问用户确认
↓
用户确认 → 晋升到 memory.md(标记"已确认")
用户否认 → 归档到 archive/(标记"误判")
完成重要工作后,暂停并评估:
| 触发条件 | 说明 |
|---|---|
| 完成多步任务后 | 评估整体流程 |
| 收到反馈后(正/负) | 记录经验 |
| 修复 bug 后 | 记录根因 |
| 发现输出可改进时 | 主动反思 |
情境:[任务类型]
反思:[我注意到了什么]
经验:[下次如何不同]
情境:构建 Flutter UI
反思:间距看起来不对,不得不重做
经验:展示给用户前先检查视觉间距
情境:生成 API 文档
反思:用户说格式不符合团队规范
经验:先问团队文档规范再生成
→ 写入 corrections.md,第 2 次类似纠错时追踪模式
"Agent 是否变好了"必须可量化。 追踪以下指标:
| 指标 | 定义 | 健康趋势 |
|---|---|---|
| 纠错频率 | 每周被纠正次数 | 下降 |
| 晋升率 | 模式成功晋升数/候选数 | 稳定 |
| 复用率 | 热层规则被引用次数 | 上升 |
| 重复犯错率 | 同类错误再次发生比例 | 下降 |
| 反思转化率 | 反思→实际行动的比例 | 上升 |
## 进化指标(metrics.md)
### 本周统计
- 纠错次数:12(上周 18,↓33%)
- 晋升成功:3 条规则
- 重复犯错:1 次(上周 4 次,↓75%)
- 热层规则引用:47 次
- 反思转化:5/7(71%)
### 趋势分析
- 纠错频率持续下降,说明学习有效
- 重复犯错率大幅下降,经验沉淀生效
- 复用率上升,热层规则有价值
### 待改进
- 反思转化率 71%,3 条反思未落地
- 建议:反思后立即写入 corrections.md
| 用户说 | 动作 |
|---|---|
| "你对 X 了解什么" | 搜索所有层级查找 X |
| "你学到了什么" | 展示 corrections.md 最近 10 条 |
| "显示我的模式" | 列出 memory.md(热层) |
| "显示 [项目] 模式" | 加载 projects/{name}.md |
| "温层有什么" | 列出 projects/ + domains/ 文件 |
| "进化指标" | 显示 metrics.md 统计 |
| "忘记 X" | 从所有层移除(确认后) |
| "导出记忆" | ZIP 所有文件 |
📊 进化引擎记忆
🔥 热层(始终加载):
memory.md: X 条规则
🌡️ 温层(按需加载):
projects/: X 个文件
domains/: X 个文件
❄️ 冷层(已归档):
archive/: X 个文件
📈 进化指标(7 天):
纠错记录:X 条
晋升到热层:X 条
降级到温层:X 条
重复犯错:X 次
规则复用:X 次
| 层级 | 位置 | 限制 | 行为 |
|---|---|---|---|
| 热层 | memory.md | ≤100 行 | 始终加载 |
| 温层 | projects/, domains/ | ≤200 行/文件 | 按上下文匹配加载 |
| 冷层 | archive/ | 无限制 | 显式查询加载 |
| 规则 | 触发条件 | 动作 |
|---|---|---|
| 晋升 | 模式 7 天内用 3 次 | 提升到热层 |
| 降级 | 模式 30 天未用 | 降到温层 |
| 归档 | 模式 90 天未用 | 移入冷层 |
| 删除 | 永不自动删除 | 仅用户明确要求时 |
全局偏好 → memory.md(热层)
领域模式 → domains/{code,writing,comms}.md
项目模式 → projects/{name}.md
跨命名空间继承:全局 → 领域 → 项目
模式矛盾时:
文件超限时,合并而非删除:
压缩步骤:
1. 合并相似纠错为单条规则
2. 归档未用模式到 archive/
3. 摘要冗长条目
4. 永不丢失已确认偏好
5. 保留 corrections.md 最近 50 条
| 压缩操作 | 说明 | 保留 |
|---|---|---|
| 合并 | 相似条目合并为一条 | 规则内容 |
| 摘要 | 冗长描述精简 | 核心经验 |
| 归档 | 未用模式移入冷层 | 完整记录 |
| 删除 | 仅用户明确要求 | — |
上下文超限时:
| 陷阱 | 为什么失败 | 更好做法 |
|---|---|---|
| 从沉默学习 | 制造虚假规则 | 等待明确纠正或重复证据 |
| 晋升太快 | 污染热层记忆 | 新教训保持观察直到重复 |
| 读取所有命名空间 | 浪费上下文 | 仅加载热层+最小匹配文件 |
| 压缩即删除 | 丢失信任与历史 | 合并、摘要或降级 |
| 反思不落地 | 反思了但不改 | 反思→写入 corrections.md→晋升闭环 |
| 无指标追踪 | 不知是否进化 | 追踪纠错率/复用率 |
会话 A:
代理生成代码未加类型注解
用户纠正:"加上类型注解,我们用 TypeScript 严格模式"
→ 写入 corrections.md:"TypeScript 项目必须加类型注解"(待观察)
会话 B:
又生成无类型注解代码
用户再次纠正:"我说过要加类型注解"
→ 第 2 次信号,标记"模式候选"
会话 C:
生成代码加了类型注解
用户未纠正(沉默不记录)
但主动检查发现:同类项目都应加
→ 第 3 次确认,询问用户:"是否所有 TS 项目都要求类型注解?"
→ 用户确认 → 晋升到 memory.md(已确认)
会话 D(新项目):
代理在 TS 项目中自动加类型注解
→ 引用来源:"使用 TypeScript 类型注解规则(来自 memory.md:8)"
任务:生成 API 文档
完成后自反思:
情境:生成 API 文档
反思:用户说格式不符合团队规范,需重做
经验:生成文档前先确认团队规范
→ 写入 corrections.md
→ 下次生成文档前,主动询问团队规范
→ 反思转化为行动(转化率+1)
项目 A(电商):
用户:"错误日志用结构化 JSON 格式"
→ 写入 projects/ecommerce.md
项目 B(博客):
代理默认用 JSON 格式日志
→ 用户:"不需要 JSON,用简单文本"
→ 项目 B 偏好不同,写入 projects/blog.md
全局规则:无(两个项目偏好不同,不晋升全局)
→ 命名空间隔离防止跨项目污染
memory.md 超过 100 行限制
压缩执行:
1. 发现 3 条类似规则:
- "用户喜欢简洁代码"
- "用户偏好短函数"
- "用户要删除冗余注释"
2. 合并为一条:"用户偏好简洁代码风格:短函数、无冗余注释"
3. 归档原始 3 条到 archive/(保留历史)
4. memory.md 行数减少
结果:热层精简,但偏好未丢失,历史可追溯。
Q1:3 次确认会不会太慢? A:不会。大多数纠错是即时记录到 corrections.md,立即可查。仅晋升到热层需 3 次,防止误判污染核心规则。
Q2:沉默真的完全不记录吗? A:是的。用户没纠正可能是没注意、懒得说、或确实满意——无法区分。从沉默推断会制造虚假规则,风险大于收益。
Q3:压缩后还能找回原始记录吗? A:能。原始条目归档到 archive/,完整保留。热层是精简版,冷层是完整历史。
Q4:进化指标怎么用? A:每周查看 metrics.md。纠错频率下降说明学习有效;重复犯错率下降说明经验沉淀生效。若指标不改善,说明反思未落地。
Q5:能和其他记忆系统共用吗? A:能。本系统专注"从纠错学习",可与长期记忆系统互补。建议进化引擎管"经验/教训",长期记忆管"事实/偏好"。
| 现象 | 排查步骤 | 解决方案 |
|---|---|---|
| 重复犯错 | 检查 corrections.md 是否有记录 | 确认纠错已记录;检查召回是否注入 |
| 误学虚假规则 | 检查 memory.md 来源 | 确认是否走了 3 次确认流程 |
| 热层膨胀 | 检查晋升频率 | 执行压缩;提高晋升门槛 |
| 指标不改善 | 检查反思转化率 | 确保反思写入 corrections.md |
| 跨项目污染 | 检查命名空间隔离 | 确认项目模式未晋升全局 |
| 上下文超限 | 检查加载策略 | 仅加载热层+最小匹配 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
| 文件系统 | 本地存储 | 必需 | 操作系统内置 |