diff --git a/docs/design/19-skill-lifecycle-and-experience-loop.md b/docs/design/19-skill-lifecycle-and-experience-loop.md index aeaa3da..88ef246 100644 --- a/docs/design/19-skill-lifecycle-and-experience-loop.md +++ b/docs/design/19-skill-lifecycle-and-experience-loop.md @@ -253,9 +253,10 @@ description: Use when [触发条件/问题模式描述],不描述工作流 **提升触发条件**(从 draft 提升为 active Skill,融合 self-improvement Skill Extraction Criteria): 全部满足时触发提升: -- Recurrence-Count ≥ 3(同一模式出现 3 次以上) +- Recurrence-Count ≥ 3(同一模式 30 天内出现 3 次以上) - 跨 ≥2 个不同任务验证 -- 30 天内出现 + +**时间窗口**:Recurrence-Count 以 30 天为窗口,超过 30 天的记录不计入。6 个月内 3 次 vs 1 周内 3 次信号强度不同,30 天窗口确保经验仍然新鲜。 **Skill Extraction 质量 Gate**(汲取自 self-improvement skill): @@ -288,7 +289,7 @@ description: Use when [触发条件/问题模式描述],不描述工作流 ### 6.7 蒸馏者(双层) -**L1:每个 agent 自己(每天 03:00 cron)** +**L1:每个 agent 自己(每天 03:00 cron,各 agent 错开 5 分钟避免资源争用)** 1. 扫描自己的 session JSONL 2. 用判断力提取根因模式(不是机械提取) 3. 按 SKILL.md 格式产出 @@ -415,7 +416,7 @@ DISCOVER L1(每天 03:00,各 agent cron) 输出:draft skill proposal(structured,带 ID/Priority/Pattern-Key/Recurrence-Count) ↓ DISCOVER L2(每天 05:00,庞统 cron) - 数据源:全量 12 个数据源 + 所有 L1 draft proposals + 数据源:全量 12 个数据源(含 L1 draft proposals) 跨 agent 共性模式识别 审查 draft proposals:approve / merge / reject ↓ @@ -462,7 +463,7 @@ IMPROVE(每周 cron,庞统执行) | S3 | 创建各 agent 的 03:00 cron(自蒸馏 L1) | P1 | L1 | | S4 | 创建庞统的 05:00 cron(整合 + 审查 L2) | P1 | L1-L2 | | S5 | 实现 IMPROVE cron:JSONL 引用追踪 + 淘汰报告(每周) | P2 | L2-L3 | -| S6 | 清理 deprecated 代码(skill_system.py / experience.py / self-improvement skill) | P3 | L1 | +| S6 | 清理 deprecated 代码(skill_system.py / experience.py / self-improvement skill / SELF_IMPROVEMENT_REMINDER.md) | P3 | L1 | S1 和 S2 可以立即做。S3-S5 需要先确认设计文档。 @@ -547,9 +548,14 @@ L2 审查(庞统 05:00) │ ├─ MERGE(跨 agent 共性) │ → 合并多个 proposal 为共享 Skill - │ → skill_workshop apply(目标:公共目录) + │ → skill_workshop apply 到庞统 workspace,然后 cp/symlink 到公共目录 │ → 写入:~/.sanguo_projects/sanguo_mozi/skills//SKILL.md │ → 所有 agent 可见(extra dir,优先级 6) + │ → 清理:MERGE 后通知各 agent quarantine workspace 中的同名 draft + │ + │ ⚠️ skill_workshop 只能写 workspace skills,不能写 extraDir。 + │ MERGE 流程的实际写入方式:庞统在 workspace apply 后, + │ 手动 cp 到公共目录(或配置 skills.load.allowSymlinkTargets 用 symlink)。 │ ├─ REJECT(质量不够) │ → skill_workshop reject(附原因) @@ -595,7 +601,7 @@ L2 审查(庞统 05:00) └── quarantined/ # 已 quarantine 的 proposal 归档 ``` -**注意**:proposal 存储由 skill_workshop 内部管理,不需要手动操作。庞统 L2 cron 通过 `skill_workshop list`(查看所有 agent 的 pending proposal)+ `skill_workshop inspect`(查看具体内容)+ `skill_workshop apply/reject/quarantine`(执行决策)完成审查。 +**注意**:proposal 存储由 skill_workshop 内部管理,不需要手动操作。首次使用 skill_workshop 时自动创建 `.skill-workshop/` 目录。庞统 L2 cron 通过 `skill_workshop list`(查看所有 agent 的 pending proposal)+ `skill_workshop inspect`(查看具体内容)+ `skill_workshop apply/reject/quarantine`(执行决策)完成审查。 ### 13.6 全景目录结构