Self-Evolve — 自进化闭环
把「自进化日志」从被动记录变成主动闭环:定期读日志 → 判断哪些教训该晋升为核心流程 → 落地改 SKILL.md → 记「已晋升」。
场景判定
| 场景 | 触发 | 动作 |
|---|---|---|
| A. 汇总 | "consolidate"/"看看所有日志" | grep 所有 skill 日志 → 汇总视图 |
| B. 单 skill 进化 | "进化 paper-reading"/"X 的日志该晋升了吗" | 读该 skill 核心流程 + 日志 → 提晋升建议 |
| C. 顺带检查 | 改完一个 skill 后 | 记日志一行;同类教训重复 ≥2 次且有独立验证 → 提示晋升 |
场景 B:单 skill 进化(核心)
- 读:该 skill 的
## 自进化日志表 + 核心流程(场景判定表 / 工作流步骤) - 判:逐条日志过两道门槛——① 独立验证(跨模型/真机/人);② 事实/补偿分类(🟢环境事实 / 🟡模型补偿 / 🔴偶然)——
- 晋升:🟢 且有独立验证,但核心流程还没写 → 写进 SKILL.md 主体
- 降级:🟡 模型补偿 → 只留该模型作用域,不进通用 SKILL.md
- 过时:核心流程已更新、此条已被吸收 → 从日志删或标记
- 保留:🔴 一次性 / 待验证 → 留日志
- 提:产出「晋升/过时」的具体改法(贴 SKILL.md 片段 diff,不整篇重写)
- 改:人工确认后走 writing-skills 流程落地 → 验证
- 记:日志加一行
已晋升 | 日期 | 把 X 写进核心流程
晋升判据(反自举:独立验证 + 事实/补偿分类)
两条门槛都要过:
- 独立验证:教训被异源验证过——跨模型复核(review.py / vision)通过,或真机/真命令复现(node --check、真实场景试跑),或人类确认。"出现 ≥2 次"不算独立验证——可能是同一个盲点犯了两次。
- 事实/补偿分类:先打标签再决定去向——
- 🟢 环境事实 → 晋升进通用 SKILL.md:与模型无关的客观规律(平台行为、文件系统语义、命令行为,如"Windows junction 在 Node readdir 里 isDirectory()=false")。
- 🟡 模型补偿 → 不晋升通用:特定模型的权宜(如"DeepSeek 跟随差所以要列 20 个触发词")。只留在该模型作用域(描述/profile),绝不写进通用 SKILL.md——否则就是把模型训练成只认自家格式的刻板化。
- 🔴 一次性偶然 → 不晋升。
- 不晋升:无独立验证、模型行为补偿(除非限定该模型作用域)、单次偶然。
- 衰减:已晋升规则长期无真实使用/引用(接 Skill-BOM:宣称 vs 实际)→ 标记候选退役,防规则无限膨胀。
工具
| 工具 | 用途 |
|---|---|
Grep ## 自进化日志 |
定位所有 skill 的日志 |
| writing-skills skill | 落地改 SKILL.md |
| review.py(可选) | 跨模型复核——晋升判据的「独立验证」门槛之一 |
自进化日志
| 日期 | 学习来源 | 吸收的模式 |
|---|---|---|
| 2026-08-13 | 首版 | 自进化闭环 v1:汇总/进化/顺带三场景;晋升判据=复用 ≥2 次或核心流程空白 |
| 2026-08-14 | 自举反思(Claude Code bootstrap 教训) | 晋升判据 v2:独立验证门槛(跨模型/真机/人,≥2 次不算)+ 事实/补偿分类(🟢环境事实晋升 / 🟡模型补偿只留模型作用域 / 🔴偶然)+ 衰减机制(接 Skill-BOM)——防自消耗坍缩与工具方言刻板 |