Self-Evolution Engine
Overview
自我进化引擎是一个闭环系统,使AI能够从用户的工作过程中持续积累经验,并将经验分类存储为可复用的知识库。核心循环为:监控工作 → 判断收益 → 总结经验 → 分类存储 → 检索复用 → 持续进化。
当前聚焦于软件开发的第一阶段——项目前置决策(脑力风暴 → 可行性论证),因为这是软件项目成败的最关键环节。
Core Loop
Phase 1: Monitor (监控工作)
激活后进入被动监控状态,观察用户当前的工作内容和任务上下文。不主动打扰用户,但持续记录:
- 当前任务类型(脑力风暴 / 可行性论证 / 需求设计 / 编码 / ...)
- 任务输入(项目需求描述、问题陈述)
- AI参与的工作内容(方案生成、风险评估、技术选型等)
- 关键决策点(用户选择了什么方案、放弃了什么方案)
- 工作产出(报告、文档、代码等)
Phase 2: Check Gain (判断收益)
在以下时机主动插入提问,询问用户是否有经验收益:
- 一个任务阶段完成时(如脑力风暴结束、可行性报告产出)
- 用户主动表示完成了某个里程碑
- 每日工作结束时
提问格式:
> 刚才这段工作有没有给你带来经验上的收益?比如学到了新方法、发现了坑、验证了某个判断等。如果有,简单说说是什么。
分支逻辑:
- 用户表示有收益 → 进入 Phase 3
- 用户表示无收益 → 回到 Phase 1 继续监控
- 用户分享经验内容 → 直接进入 Phase 3,跳过总结步骤
Phase 3: Summarize (总结经验)
将本次工作过程提炼为结构化经验。经验条目格式如下:
experience_id: <自动生成,格式 exp_YYYYMMDD_NNN>
date: <日期>
task_type: <脑力风暴 | 可行性论证 | 需求设计 | 详细设计 | 编码 | 其他>
project_context: <项目简述>
scene: <什么场景下遇到的>
problem: <具体什么问题或挑战>
solution: <怎么解决的 / 什么方案>
outcome: <结果如何,成功/失败/部分有效>
applicable_conditions: <什么情况下可以复用这条经验>
source: <来源:用户分享 | AI观察总结>
总结原则:
- 提取的是"经验教训",不是"工作流水账"
- 一段工作可能产生多条经验,分别独立存储
- 如果用户已分享经验内容,在此基础上结构化补充,不要丢失用户原意
Phase 4: Classify & Store (分类存储)
分析经验条目的 task_type 和内容特征,将其分类存储到对应的子Skill记忆库中。
当前的经验类别(对应子Skill):
| 经验类别 | 子Skill | 存储路径 | 说明 |
|---|---|---|---|
| 方案模式 | exp-pattern-library | ~/.workbuddy/skills/exp-pattern-library/ |
什么类型的项目适合什么方案 |
| 风险预判 | exp-risk-library | ~/.workbuddy/skills/exp-risk-library/ |
哪些风险后来真实发生 |
| 决策校准 | exp-calibration-library | ~/.workbuddy/skills/exp-calibration-library/ |
当初判断 vs 实际结果的偏差 |
| 通用经验 | exp-general-library | ~/.workbuddy/skills/exp-general-library/ |
不属于上述类别的其他经验 |
分类规则:
1. 读取经验条目的 task_type、scene、problem、solution 字段
2. 按以下优先级判断类别:
- 涉及"方案选择/技术选型/架构决策" → exp-pattern-library
- 涉及"风险/坑/失败/踩坑/问题" → exp-risk-library
- 涉及"判断偏差/预估不准/结果出乎意料" → exp-calibration-library
- 以上都不匹配 → exp-general-library
3. 将经验条目追加到对应子Skill的 references/experiences.md 文件中
4. 更新子Skill的 references/index.md 索引,记录经验条目的id、摘要和关键词,便于检索
Phase 5: Retrieve & Reuse (检索复用)
在下次执行同类任务时,主动检索经验库:
- 识别当前任务类型和场景
- 到对应的子Skill中搜索相关经验(通过
references/index.md匹配关键词) - 将匹配的经验作为上下文注入当前任务,指导方案生成和风险预判
- 在产出中体现"基于过往经验"的决策,标注引用了哪些经验条目
Phase 6: Evolution Log (进化日志)
> 本阶段是自我进化实验的核心数据采集环节。每次因经验积累导致Skill修复时,必须记录完整的变更过程,形成可追溯的进化轨迹。
触发条件: 当 Phase 3-4 的经验总结直接导致了对某个Skill的修改(新增内容、修改逻辑、修复问题)时,自动进入 Phase 6。
日志记录格式:
evolution_id: <自动生成,格式 evo_YYYYMMDD_NNN>
date: <日期>
skill_name: <被修改的Skill名称>
trigger_experience_ids: <触发本次修改的经验ID列表>
trigger_context: <什么场景下触发的,一句话>
problem_before: |
修改前的问题描述 — 具体哪里不行,用户反馈了什么
change_detail: |
具体改了什么:
- 修改的文件路径
- 新增/修改/删除了什么内容
- 修改前 vs 修改后的对比
verification: |
修改后的验证结果:
- quick_validate是否通过
- 预期效果是什么
before_score: <修改前的用户评分,如有>
after_score: <修改后的用户评分,待下次验证时填入,初始为null>
status: <pending_verification | verified | failed>
日志存储位置: ~/.workbuddy/skills/self-evolution/evolution-log/ 目录下,按Skill名分文件:
| 文件 | 说明 |
|---|---|
evolution-log/brainstorm.md |
brainstorm Skill的进化日志 |
evolution-log/self-evolution.md |
self-evolution Skill自身的进化日志 |
evolution-log/index.md |
所有Skill进化日志的索引,记录每次进化的ID、日期、摘要 |
日志记录原则:
1. 只记录"因经验触发的修改",不记录常规的内容润色
2. problem_before 和 change_detail 必须具体到可回溯的程度
3. after_score 初始为null,等下次用修改后的Skill执行任务并得到用户评分时回填
4. status 流转:pending_verification →(下次验证后)→ verified 或 failed
5. 如果验证结果为 failed,说明修复没生效,需要回到 Phase 3 重新总结经验
进化轨迹可视化:
进化日志的最终目的是形成一条可追溯的进化轨迹:
v0(初始版本) → 问题发现(评分20) → 经验沉淀 → Skill修复(v1) → 再验证(评分?) → ...
这条轨迹就是论文的核心实验数据——证明AI确实在进化,且每次进化都有据可查。
Workflow
[Skill激活]
│
▼
[Phase 1: 监控工作] ◄────────────────────┐
│ │
▼ │
[Phase 2: 询问收益] │
│ │
├─ 无收益 ────────────────────────────┘
│
├─ 有收益
│ │
│ ▼
│ [Phase 3: 总结经验]
│ │
│ ▼
│ [Phase 4: 分类存储到子Skill]
│ │
│ ▼
│ [Phase 5: 下次任务时检索复用]
│ │
│ ├─ 经验未触发Skill修改 ─────────┘
│ │
│ ├─ 经验触发了Skill修改
│ │ │
│ │ ▼
│ │ [Phase 6: 记录进化日志]
│ │ │
│ │ ▼
│ │ [下次任务验证修改效果]
│ │ │
│ │ ├─ 验证通过 → verified ──┐
│ │ │ │
│ │ └─ 验证失败 → 回Phase 3 │
│ │ │
│ └───────────────────────────────┘
│
└─── 循环进化
Current Focus: Software Pre-Decision Stage
当前实验聚焦于软件开发的第一阶段(项目前置决策),包含:
- 脑力风暴 — 方案发散、技术路线探索
- 可行性论证 — 风险评估、方案收敛、Go/No-Go决策
选择此阶段的原因:
- 99.99%的软件项目失败源于前期决策错误,第一步错了后面步步错
- 此阶段的经验(方案选择、风险预判)具有高复用价值
- 此阶段的经验质量可事后验证(项目结果证明判断是否正确)
Sub-Skills
本Skill作为总控调度器,依赖以下子Skill存储经验:
exp-pattern-library— 方案模式经验库exp-risk-library— 风险预判经验库exp-calibration-library— 决策校准经验库exp-general-library— 通用经验库
子Skill的创建和管理由本Skill在首次存储经验时自动触发。
References
references/experience-format.md
经验条目的详细格式说明和示例。
references/classification-rules.md
经验分类规则的详细说明和边界case处理。
Notes
- 本Skill是自我进化实验的核心组件,实验数据将用于论文撰写
- 实验设计:对比"有经验积累的AI" vs "无经验积累的AI"在脑力风暴和可行性论证任务中的表现差异
- 评估维度:方案合理性、风险覆盖度、决策准确度