diff --git a/docs/research/distill-full-design.md b/docs/research/distill-full-design.md new file mode 100644 index 0000000..69db7bb --- /dev/null +++ b/docs/research/distill-full-design.md @@ -0,0 +1,741 @@ +# 对话历史蒸馏为四层知识体系 — 完整调研与设计文档 + +> 版本:v1.0 +> 日期:2026-05-27 +> 作者:诸葛亮(总军师)🎖️ +> 状态:方案已确认,待执行改造 + +--- + +## 第一部分:问题定义 + +### 1.1 背景 + +三国量化团队运行两个月以来,庞统(副军师)和司马懿(质量总监)积累了大量对话历史: + +| Agent | 数据量 | 文件数 | +|-------|--------|--------| +| 庞统 | 1.2 GB | 961 个 JSONL | +| 司马懿 | 751 MB | 410 个 JSONL | +| Sanguo Mail | 404 KB | 80 封邮件 | +| 各将军 MEMORY.md | ~19 KB | 3 个文件 | + +**合计约 2 GB 对话历史。** + +这些历史中包含丰富的实践经验——用户纠正、反复试错、成功模式、协作流程、决策分歧、经验声明。但经验只存在于 JSONL 文件中,session 结束就消失了。每次遇到类似问题,Agent 都在"重新发明轮子"。 + +**典型场景**: +- 张飞修了 7 次类似的 bug,每次都是"重新发现" +- 庞统被纠正了 33 次"不要跳过 GATE 流程" +- 庞统被纠正了 17 次"不要绕圈子" +- 司马懿在评审中发现状态枚举不一致的 Bug 出现了 3+ 次 + +### 1.2 目标 + +从对话历史中批量蒸馏经验,填入 moziplus v2.0 已有的四层知识体系框架,让所有 Agent 能直接受益。 + +### 1.3 约束 + +1. **不新增架构**——用现有的四层框架(L0/L1/L2/L3) +2. **不新增加载逻辑**——用现有的 guardrails.yaml、bootstrap.py、skill_system.py +3. **按层级归位**——每条经验去它该去的层 +4. **Skill 存放位置**:`~/.openclaw/sanguo_projects/sanguo_moziplus_v2/`(开发目录) + +--- + +## 第二部分:现有体系诊断 + +### 2.1 moziplus v2.0 四层知识体系架构 + +> 来源:`docs/design/technical-design-v2.6.md` §5 + +``` +L0 铁律层(~500 tokens)→ Hook 注入,每轮强制 +L1 角色层(~2000 tokens)→ SOUL.md / IDENTITY.md(Agent 自带) +L2 引擎注入层(~1500 tokens)→ prompt_templates 按 role 拼装 + ① 操作规范(executor.md / reviewer.md / planner.md) + ② 项目背景(project_context.yaml) + ③ 任务上下文(黑板数据) + ④ 前序信息(depends_on 产出摘要) + ⑤ Guardrail 规则(guardrails.yaml,仅执行者) + ⑥ 审查协议(review_protocols/,仅审查者) + ⑦ 经验注入(experiences 表按 tag 匹配) +L3 被动参考层(按需加载)→ Skill description 四要素 +``` + +### 2.2 各层当前状态 + +| 层 | 有什么 | 实际填充状态 | +|---|-------|------------| +| **L0 铁律** | `config/guardrails.yaml` — 6 条安全红线 | ✅ 已有:实盘拦截、删除拦截、配置变更拦截、token 超限、步骤超限、连续失败 | +| **L1 角色** | SOUL.md / IDENTITY.md | ✅ 已有:各 Agent 自带 | +| **L2 引擎注入** | `prompt_templates/` + `bootstrap.py` | ❌ **空的** — `bootstrap.py` 按角色名加载 executor.md/reviewer.md/planner.md,但这 3 个文件从未创建 | +| **L3 Skill** | `skills/` + `skill_system.py` | ❌ **空的** — `skill_system.py` 只认 .json 格式,从未注册任何 skill | +| **Memory** | experiences 表 | ❌ **未建表** — `bootstrap.py` 已有 `_format_experiences()` 逻辑,但表不存在 | + +**一句话诊断:四层架构的代码框架已写好,但 L2、L3、Memory 都是空壳。** + +### 2.3 代码中的加载机制 + +#### L0 — guardrail.py +```python +# 读取 config/guardrails.yaml +# 在 Guardrail check 环节执行 +# 当前只有 rules(安全红线),没有 behavior_rules +``` + +#### L2 — bootstrap.py +```python +class BootstrapBuilder: + def build(self, role, task_context, ...): + # L2a: 操作规范 — 按 role 加载 {role}.md + role_template = self._load_template(f"{role}.md") # ← 文件不存在,返回 None + + # L2e: Guardrail 规则(仅执行者) + if role == "executor" and guardrail_rules: + layers.append(guardrail_rules) + + # L2g: 经验注入 + if experiences: + layers.append(self._format_experiences(experiences)) # ← 表不存在,无数据 + + # L3: Skill descriptions + if skill_descriptions: + layers.append(self._format_skills(skill_descriptions)) # ← registry 空,无数据 +``` + +#### L3 — skill_system.py +```python +class SkillRegistry: + def _load_from_dir(self, dir_path: Path) -> None: + # 只加载 .json 文件 + for f in dir_path.glob("*.json"): + data = json.loads(f.read_text()) + skill = Skill.from_dict(data) + self._skills[skill.id] = skill + # ← skills/ 目录为空,没有任何 .json +``` + +--- + +## 第三部分:方法论调研 + +### 3.1 业界 Skill 蒸馏方法论 + +> 调研时间:2026-05-26 + +#### 方法 1:Hermes 自改进循环 + Curator + +> 来源:Hermes Agent v0.12-v0.14(Nous Research) + +**核心思路**:Agent 每完成复杂任务后自动保存 Skill,后台 Curator 定期评分/合并/修剪。 + +| 机制 | 做法 | +|------|------| +| **自动保存** | 复杂任务(5+ tool calls)完成后自动创建 SKILL.md | +| **使用中改进** | 使用 Skill 时发现过时立即 patch | +| **Curator** | 后台 Agent 7 天周期评分(使用频率 + 成功率),评分低的合并或淘汰 | +| **三级载体** | Memory(MEMORY.md)→ Skill(SKILL.md)→ Rule(prompt injection) | + +**我们借鉴的**: +- 三级载体思路(Memory → Skill → Rule)→ 对应我们的 Memory → L3 Skill → L0 铁律 +- Curator 的淘汰机制(30 天无引用 → deprecated) +- 使用频率作为进化驱动力 + +#### 方法 2:Trace2Skill — 并行子 Agent 分析轨迹池 + +> 来源:arXiv 2603.25158(2026-03) + +**核心思路**:dispatch 一组子 Agent 并行分析多条 trajectory,提取局部经验,再归纳合并为统一 Skill。 + +| 步骤 | 说明 | +|------|------| +| 1. 聚类 | 按任务类型分类 trajectory | +| 2. 并行提取 | 子 Agent 独立提取每条的经验教训 | +| 3. 归纳合并 | 层级归纳,合并为无冲突 Skill 目录 | + +**我们借鉴的**: +- 按"扫描模式"分类(对应他们的按任务类型聚类) +- 并行 sub-agent 提取经验卡片(对应他们的并行子 Agent) +- 合并去重(对应他们的归纳合并) + +#### 方法 3:SkillRL — 成功/失败双向蒸馏 + +> 来源:github.com/aiming-lab/SkillRL + +**核心思路**: +- 成功轨迹 → 战略模式("怎么做对的") +- 失败轨迹 → 简明教训("千万别这样") + +**我们借鉴的**: +- 6 种扫描模式中的①纠正(失败教训)和③成功(成功模式)就是双向蒸馏 + +#### 方法 4:SoK: Agentic Skills — 技能习得分类 + +> 来源:arXiv 2602.20867(2026-02) + +**核心分类**: +- Demonstration distillation — 从观测轨迹中提取可复用流程 +- Trial-and-error — 从失败中学习 +- Instruction — 从明确指令中学习 + +**我们借鉴的**: +- 我们的 6 种扫描模式直接对应:①纠正=Instruction、②试错=Trial-and-error、③成功=Demonstration + +#### 方法 5:Nevo — 三级 scope + +> 来源:nevo.systems(生产 Agent 系统) + +**三级 scope**: +- user-level — 用户偏好 +- project-level — 项目特定 +- generated — 自动生成 + +**我们借鉴的**: +- 对应我们的三层适用范围:L0 全局 > L2 角色级 > L3 按需 + +### 3.2 我们已有的知识管理方法论 + +> 来源:wiki-vault `practices/knowledge-management-system` + +#### 四层金字塔 + +``` +L0 记忆层(MEMORY.md)→ L1 经验层 → L2 知识层(wiki) → L3 体系层(设计文档) +``` + +#### 五路径增长 + +| 路径 | 说明 | +|------|------| +| 调研驱动 | 从外部项目学习 | +| 问题驱动 | 从 bug/纠正中学习 | +| 外部注入 | 从用户指导中学习 | +| 反向触发 | 从失败中学习 | +| 交叉碰撞 | 从多 Agent 交互中学习 | + +**与我们的映射**: +- 调研驱动 → ③ 成功模式(从别人的成功学习) +- 问题驱动 → ① 纠正模式(从被纠正中学习) +- 外部注入 → ⑤ 决策分歧(从用户指导中学习) +- 反向触发 → ② 试错模式(从失败中学习) +- 交叉碰撞 → ④ 协作模式(从 Agent 交互中学习) + +### 3.3 moziplus v2.0 课题6 — 经验沉淀闭环 + +> 来源:`docs/design/topic6-experience-loop-proposal.md` + +#### 三种载体 + +| 载体 | 内容 | 生命周期 | 对应层 | +|------|------|---------|-------| +| **Rule(规则)** | 确定性的操作规范 | 长期稳定 | L0 | +| **Skill(技能)** | 半确定性的操作方法 | 中期演进 | L3 | +| **Memory(记忆)** | 非确定性的经验片段 | 短期,可蒸馏 | experiences 表 | + +#### 进化路径 + +``` +Memory(发现)→ Skill(方法)→ Rule(铁律) + ↓ 蒸馏 ↓ 固化 ↓ 强制 +非确定性 半确定性 确定性 +短命 中等 长命 +``` + +#### 两级蒸馏 + +| 级别 | 触发 | 执行者 | +|------|------|--------| +| 一级蒸馏 | 每个任务完成后 | 庞统(~30s 提取 1-3 条经验写入 experiences 表) | +| 二级蒸馏 | 同类 experience ≥ 5 条 | 庞统(subagent 模式,生成 SKILL.md) | + +--- + +## 第四部分:6 种扫描模式设计 + +### 4.1 设计推导 + +从三种来源推导出 6 种模式: + +**来源 1:业界研究** +- SoK: Agentic Skills 的三种习得方式(Demonstration / Trial / Instruction) +- AgenTracer 的反事实归因(定位关键错误步骤) +- SkillRL 的成功/失败双向蒸馏 + +**来源 2:三国团队实践** +- Sanguo Mail 中的协作记录(独特的多 Agent 交互) +- 决策分歧中 Agent "不知道该不该动手"的场景(不是犯错,是犹豫) +- Agent 自发的经验声明("以后应该 XX")常被遗忘 + +**来源 3:数据探索** +- 抽样 JSONL 文件观察实际对话模式 +- 庞统被纠正最多的场景(GATE 流程、绕圈子) +- 司马懿作为评审者的独特视角(设计-代码不一致、状态枚举 Bug) + +### 4.2 六种模式定义 + +| # | 模式 | 信号特征 | 蒸馏价值 | 理论来源 | +|---|------|---------|---------|---------| +| ① 纠正模式 | 用户消息含"不对/错了/不要/停/我说的不是" | ⭐⭐⭐ 最高 | SoK(Instruction)、Hermes self-improvement | +| ② 试错模式 | 同一任务 3+ 次连续 tool call 失败后成功 | ⭐⭐⭐ | AgenTracer(反事实归因)、SkillRL(失败教训蒸馏) | +| ③ 成功模式 | 复杂任务(5+ tool calls)一次成功 | ⭐⭐ | Hermes(5+ tool calls 自动保存 skill)、SoK(Demonstration) | +| ④ 协作模式 | Sanguo Mail 往来、agent 间 send_message | ⭐⭐ | 三国团队实践(多 Agent 交互记录) | +| ⑤ 决策分歧模式 | 用户说"先不要/方案/等等/确认"后 Agent 调整方向 | ⭐⭐ | 三国团队实践(Agent 学会"什么时候该问不该做") | +| ⑥ 经验声明模式 | Agent 自发总结"以后应该XX/这个方法好" | ⭐⭐ | 三国团队实践(Agent 自己的经验判断,常被遗忘) | + +### 4.3 信号词定义 + +```python +# ① 纠正模式 +CORRECTION_SIGNALS = [ + "不对", "错了", "不要", "停", "我说的不是", "不是这个意思", + "重新来", "别这样", "不要这样", "你再看看", + "no", "wrong", "stop", "not what I meant", "redo" +] + +# ② 试错模式:同一任务 3+ 次 tool_result 含错误信息后成功 + +# ③ 成功模式:5+ tool_use 且最终用户满意(无纠正信号) + +# ④ 协作模式:send_message / Sanguo Mail 引用 + +# ⑤ 决策分歧模式 +DECISION_SIGNALS = ["先不要", "方案", "等等", "确认", "等等看", "再说", "先看看", "确认一下"] + +# ⑥ 经验声明模式 +EXPERIENCE_SIGNALS = ["以后应该", "这个方法好", "经验是", "教训是", "下次注意", "注意要", "记住", "千万不要"] +``` + +--- + +## 第五部分:数据扫描结果 + +### 5.1 扫描统计 + +> 扫描脚本:`docs/research/distill-scan-pangtong.py` 和 `distill-scan-simayi.py` +> 扫描时间:2026-05-26 + +| 数据源 | 文件数 | 总消息数 | 经验片段数 | +|--------|--------|---------|-----------| +| 庞统 JSONL | 351 | 24,643 | 2,241 | +| 司马懿 JSONL | 127 | 3,859 | 911 | +| Sanguo Mail | 80 封 | — | 79 | +| MEMORY.md | 3 个 | — | 3 | +| **合计** | — | **28,502** | **3,234** | + +### 5.2 各模式片段分布 + +| 模式 | 庞统 | 司马懿 | 邮件 | 合计 | +|------|------|--------|------|------| +| ① 纠正 | 469 | 122 | 8 | **591** | +| ② 试错 | 200 | 26 | — | **226** | +| ③ 成功 | 158 | 42 | — | **200** | +| ④ 协作 | 735 | 138 | 79 | **952** | +| ⑤ 决策分歧 | 658 | 583 | — | **1,241** | +| ⑥ 经验声明 | 21 | 0 | — | **21** | + +### 5.3 数据格式说明 + +OpenClaw JSONL v3 格式,每行一个 JSON 对象: + +```json +{"type": "session", "id": "xxx", "timestamp": "...", "cwd": "..."} +{"type": "model_change", "provider": "zhipu", "modelId": "glm-5.1"} +{"type": "message", "message": {"role": "user/assistant", "content": [ + {"type": "text", "text": "..."}, + {"type": "tool_use", "name": "...", "input": {...}}, + {"type": "tool_result", "content": "..."} +]}} +``` + +--- + +## 第六部分:LLM 归纳结果 + +### 6.1 归纳方法 + +采用 Trace2Skill 的并行子 Agent 方法: +- 按"扫描模式"分批(对应 Trace2Skill 的按任务类型聚类) +- 每批 sub-agent 独立归纳(对应他们的并行子 Agent) +- 交叉去重合并 + +### 6.2 归纳批次与产出 + +> 并发限制:主公要求 ≤ 2 + +| 批次 | 输入 | 模式 | 产出 | +|------|------|------|------| +| 1 | 庞统纠正 top 100 | ① | 14 张经验卡片 | +| 2 | 司马懿纠正 122 + 庞统经验 21 + 邮件 8 | ①⑥④ | 15 张经验卡片 | +| 3 | 庞统+司马懿成功 top 50 | ③ | 9 个最佳实践模式 | +| 4 | 评审经验+经验声明 | ①⑥ | 4+3=7 个模式 | +| 5 | 协作经验 | ④ | 119 条 Memory(直接存表) | + +### 6.3 核心发现 + +#### 纠正模式 Top 5(按频率) + +| 排名 | 纠正类型 | 频率 | 严重度 | +|------|---------|------|--------| +| 1 | GATE 流程违规(跳过确认/查因/评估) | 33 次 | high | +| 2 | 绕圈子/不聚焦(反复讨论已确认的前提) | 17+3=20 次 | high | +| 3 | 先确认再改(不确认设计意图就动手) | 6 次 | medium | +| 4 | 被动跟随/丢失原始需求 | 4 次 | high(单次影响最严重) | +| 5 | 未经确认改代码(bug 没查清就动手) | 4 次 | high | + +#### 试错模式核心教训 + +| 教训 | 频率 | 根因 | +|------|------|------| +| Counter/锁生命周期不成对 | 3+ 次 | retry 提前释放 counter → 并发失控 | +| 续杯 retry 死循环 | 5+ 次 | retry_count 不递增 + 模板含状态转换指令 | +| 进程退出 ≠ 资源释放 | 2 次 | on_complete 未调用 → counter 泄漏 | +| 广播路径缺参数 | 3+ 次 | 广播 spawn 不传 task_id → 续杯无状态 | +| stdout JSON 解析路径错误 | 2 次 | 猜路径而非实测 → 静默失败 | + +#### 评审模式核心经验 + +| 经验 | 来源 | +|------|------| +| 评审闭环必须包含最终代码确认(不只是方案) | 庞统 M2 阶段,一键三连未闭环 | +| 状态枚举不一致是高频 Bug 根源 | P0-1/P0-2,`executing` vs `working` | +| 设计文档-代码三层对照不可省 | spawner-monitor B2 实现遗漏 | +| 评审者自我纠正 = 高质量标志 | 庞统和司马懿在评审中互相纠正 | + +--- + +## 第七部分:组织方式演进 + +### 7.1 第一次组织(v1 — 按能力领域) + +将 29 张经验卡片按"能力领域"分组为 5 个 Skill: + +| Skill | 条目 | +|-------|------| +| agent-execution-discipline | 7 | +| code-review-quality | 6 | +| system-design-lessons | 7 | +| agent-collaboration-patterns | 5 | +| frontend-design-ai-native | 2 | + +**问题**(主公指出): +1. 与 6 种扫描模式对不上——Agent 不知道"我被纠正了"该加载哪个 Skill +2. 经验层次不清晰——高频铁律和低频记忆混在一起 +3. 没有复用 moziplus v2.0 的四层金字塔架构 + +### 7.2 第二次组织(v2 — 按扫描模式 × 四层金字塔) + +**核心改变**: +1. **扫描模式作为分类骨架**——经验从哪来,就按哪分类 +2. **四层金字塔作为目标层级**——每条经验按确定性和频率决定去哪层 +3. **进化路径**:Memory → Skill → Rule + +**筛选标准**: + +| 层 | 频率要求 | 确定性要求 | 来源模式 | +|----|---------|-----------|---------| +| L0 铁律 | ≥ 20 次 | 必须明确("必须/禁止") | ① 纠正(高频) | +| L2 模板 | 5-19 次 | 有触发场景("当 X 时,先 Y") | ①⑤ 纠正+决策分歧 | +| L3 Skill | 不限 | 可复用流程 | ②③⑥ 试错+成功+经验声明 | +| Memory | 不限 | 不限 | ④ 协作(低频非通用) | + +**最终映射**: + +| 扫描模式 | → L0 | → L2 | → L3 | → Memory | +|---------|------|------|------|----------| +| ① 纠正(591) | 2 条铁律 | 1 个模板 | 1 个 Skill | — | +| ② 试错(226) | — | — | 1 个 Skill | — | +| ③ 成功(200) | — | — | 1 个 Skill | — | +| ④ 协作(873) | — | 2 个模板 | — | 119 条 | +| ⑤ 决策分歧(1241) | — | 1 个模板 | — | — | +| ⑥ 经验声明(21) | — | — | 1 个 Skill | — | + +--- + +## 第八部分:整合改造方案 + +### 8.1 改造原则 + +1. **不新增目录**——用现有的 `config/`、`prompt_templates/`、`skills/` +2. **不新增加载逻辑**——用现有的 `guardrails.yaml`、`bootstrap.py`、`skill_system.py` +3. **按层级归位**——每条经验去它该去的层 +4. **清理孤儿文件**——蒸馏过程中产生的孤立文件合并后删除 + +### 8.2 改造清单 + +#### 改造 1:扩充 guardrails.yaml(L0) + +**现状**:`config/guardrails.yaml` 有 6 条安全红线(实盘拦截、删除拦截、配置变更、token 超限、步骤超限、连续失败) + +**改动**:新增 `behavior_rules` 区,与 `rules` 并列 + +```yaml +# config/guardrails.yaml + +# 原有安全红线(不变) +rules: + - id: live_trading + ... + - id: consecutive_failure + ... + +# 新增:行为铁律(从 33+20 次纠正中提炼) +behavior_rules: + - id: gate_flow + name: GATE 流程门控 + severity: high + frequency: 33 + trigger: "非平凡任务启动时" + rule: | + 需求不清不动手 — 列出假设让用户确认 + 根因不明不修复 — 先查清再改 + 方案未定不实现 — 先出方案等确认 + 评估过影响范围才动手 + L1 小改动(<50行,做错代价低)可跳过 + + - id: no_circle + name: 不绕圈子 + severity: high + frequency: 20 + trigger: "用户已明确方向后" + rule: | + 用户已明确方向后,不再质疑前提 + 用户给出条件假设时,按最坏情况设计 + 用户说"别绕了"= 立刻停止,直接给方案 +``` + +**代码改动**:`guardrail.py` 读取 `behavior_rules` 并注入 L0 Hook + +**清理**:删除 `guardrails/` 目录(孤儿文件) + +#### 改造 2:补全 prompt_templates/(L2) + +**现状**:`prompt_templates/` 目录为空(`bootstrap.py` 按角色名加载 executor.md/reviewer.md/planner.md,但这 3 个文件从未创建) + +**改动**:创建 5 个角色模板,将蒸馏经验合并进对应角色 + +``` +prompt_templates/ +├── executor.md # 执行者:含设计确认检查 + 角色匹配自检 +├── reviewer.md # 审查者:含评审闭环标准 + 枚举一致性检查 +├── planner.md # 规划者:含调研落地映射 + 方案确认闭环 +├── pangtong.md # 庞统:含一键三连闭环标准 + 经验沉淀流程 +└── mail-handler.md # 邮件处理:含 inform 轻量处理规则 +``` + +**加载方式**:`bootstrap.py` 已有 `_load_template(f"{role}.md")` 逻辑,只要文件名对应即可自动加载,不需要改代码。 + +**清理**:删除 `prompt_templates/design-confirmation.md`、`role-match-check.md`、`inform-lightweight.md`(内容已合并进角色模板) + +#### 改造 3:skill_system.py 支持 .md(L3) + +**现状**:`skill_system.py` 只加载 `.json` 格式的 skill 定义,`skills/` 目录为空 + +**改动**:修改 `_load_from_dir()` 增加 .md frontmatter 解析 + +```python +def _load_from_dir(self, dir_path: Path) -> None: + # 原有 .json 加载(不变) + for f in dir_path.glob("*.json"): + ... + + # 新增:.md frontmatter 加载 + for f in dir_path.glob("*.md"): + try: + skill = self._parse_skill_md(f) + if skill: + self._skills[skill.id] = skill + except Exception: + logger.warning("Failed to load skill from %s", f) + +def _parse_skill_md(self, path: Path) -> Optional[Skill]: + """从 SKILL.md frontmatter 解析 Skill 描述""" + content = path.read_text(encoding="utf-8") + if content.startswith("---"): + _, fm, _ = content.split("---", 2) + meta = yaml.safe_load(fm) + return Skill( + id=meta.get("name", path.stem), + name=meta.get("name", path.stem), + description=meta.get("description", ""), + freedom=SkillFreedom.HIGH.value, + tags=meta.get("tags", []), + ) + return None +``` + +**蒸馏 Skill 文件**(保留): +``` +skills/ +├── trial-and-error-patterns.md # 6 个试错模式 +├── proven-practices.md # 9 个成功最佳实践 +├── review-quality.md # 4 个评审质量模式 +└── self-reflection-wisdom.md # 3 个自我反思模式 +``` + +#### 改造 4:创建 experiences 表(Memory) + +**现状**:`bootstrap.py` 已有 `_format_experiences()` 逻辑,但 experiences 表不存在 + +**改动**:建表 + 导入 119 条协作经验 + +```sql +-- 课题6 D6-7 设计的表结构 +CREATE TABLE experiences ( + experience_id TEXT PRIMARY KEY, + source TEXT NOT NULL, + category TEXT NOT NULL, + summary TEXT NOT NULL (200字以内), + confidence REAL DEFAULT 0.5, + status TEXT DEFAULT 'draft', + created_at TEXT NOT NULL, + created_by TEXT NOT NULL, + ... +); + +CREATE TABLE experience_tags ( + experience_id TEXT NOT NULL REFERENCES experiences(experience_id), + tag TEXT NOT NULL, + PRIMARY KEY (experience_id, tag) +); +``` + +**导入**:将 `distill-experiences-collaboration.json`(119 条)导入表 + +### 8.3 改造后的完整四层架构 + +``` +L0 铁律层(~600 tokens)→ Hook 注入,每轮强制 + ├── config/guardrails.yaml → rules(安全红线 6 条) + └── config/guardrails.yaml → behavior_rules(行为铁律 2 条)← 新增 + +L1 角色层(~2000 tokens)→ Agent 自带(不变) + └── SOUL.md / IDENTITY.md / TOOLS.md / MEMORY.md + +L2 引擎注入层(~1500 tokens)→ prompt_templates 按 role 拼装 + ① 操作规范(executor/reviewer/planner/pangtong/mail-handler.md)← 新增 5 个角色模板 + ② 项目背景(project_context.yaml) + ③ 任务上下文(黑板数据) + ④ 前序信息(depends_on 产出摘要) + ⑤ Guardrail 规则(安全红线 + 行为铁律) + ⑥ 审查协议(review_protocols/) + ⑦ 经验注入(experiences 表按 tag 匹配)← 新建表 + 119 条数据 + +L3 被动参考层(按需加载) + └── skills/*.md → frontmatter 自动解析 → 4 个蒸馏 Skill ← 新增 .md 支持 +``` + +--- + +## 第九部分:与现有设计的对齐 + +### 9.1 与技术设计 v2.6 对齐 + +| 技术设计 v2.6 章节 | 本次改造 | +|------------------|---------| +| §5 四层上下文 | L0 补行为铁律、L2 补角色模板、L3 补 Skill | +| §5 build_bootstrap() | 不改代码,补文件(角色模板) | +| §6 Guardrail | 扩充 guardrails.yaml(behavior_rules) | +| §8 Skill System | 扩充 _load_from_dir 支持 .md | + +### 9.2 与课题6 经验闭环对齐 + +| 课题6 阶段 | 本次完成 | +|-----------|---------| +| DISCOVER | ✅ 6 种模式扫描完成(3,234 个片段) | +| 一级蒸馏(Memory) | ✅ 119 条协作经验待导入 experiences 表 | +| 二级蒸馏(Skill) | ✅ 4 个 L3 Skill 已生成 | +| 固化(Rule) | ✅ 2 条行为铁律 + 3 个场景模板 | +| 验证(Verify) | ⏳ 待实际使用后验证采纳率 | + +### 9.3 与 wiki-vault 知识管理对齐 + +| wiki-vault 五路径 | 对应扫描模式 | +|------------------|-------------| +| 调研驱动 | ③ 成功模式 | +| 问题驱动 | ① 纠正模式 | +| 外部注入 | ⑤ 决策分歧 | +| 反向触发 | ② 试错模式 | +| 交叉碰撞 | ④ 协作模式 | + +--- + +## 第十部分:过程文件索引 + +### 10.1 调研方案 + +| 文件 | 说明 | +|------|------| +| `docs/research/trajectory-distillation-research.md` | 调研方案 v1(初始设计) | +| `docs/research/distill-reorg-v2.md` | 重组方案 v2(扫描模式 × 四层金字塔) | +| `docs/research/distill-integration-plan.md` | 整合改造方案(本方案的早期版本) | + +### 10.2 扫描数据 + +| 文件 | 说明 | +|------|------| +| `docs/research/distill-scan-pangtong.py` | 庞统扫描脚本 | +| `docs/research/distill-scan-simayi.py` | 司马懿扫描脚本 | +| `docs/research/distill-scan-pangtong-result.json` | 庞统扫描结果(2,241 片段) | +| `docs/research/distill-scan-simayi-result.json` | 司马懿扫描结果(911 片段) | +| `docs/research/distill-scan-mail-result.json` | 邮件扫描结果(79 条) | +| `docs/research/distill-scan-memory-result.json` | MEMORY.md 提取 | + +### 10.3 归纳卡片 + +| 文件 | 说明 | +|------|------| +| `docs/research/distill-cards-batch1-corrections.md` | v1 庞统纠正 14 张卡片 | +| `docs/research/distill-cards-batch2-simayi-mixed.md` | v1 司马懿+经验 15 张卡片 | + +### 10.4 最终产出(按四层金字塔) + +| 文件 | 层 | 说明 | +|------|---|------| +| `config/guardrails.yaml` (behavior_rules) | L0 | 2 条行为铁律(待合并) | +| `prompt_templates/*.md` | L2 | 5 个角色模板(待创建) | +| `skills/*.md` | L3 | 4 个蒸馏 Skill(待注册) | +| `docs/research/distill-experiences-collaboration.json` | Memory | 119 条协作经验(待导入表) | + +### 10.5 汇总 + +| 文件 | 说明 | +|------|------| +| `docs/research/distill-skills-v2/README.md` | v2 最终汇总 | +| `docs/research/distill-skills-draft/` | v1 初稿(已被 v2 替代,保留参考) | + +--- + +## 第十一部分:执行计划 + +| # | 步骤 | 改动范围 | 工作量 | 优先级 | +|---|------|---------|--------|--------| +| 1 | 合并 guardrails.yaml | `config/guardrails.yaml` + `guardrail.py` | 小 | P0 | +| 2 | 创建 5 个角色模板 | `prompt_templates/` 5 个文件 | 中 | P0 | +| 3 | 修改 skill_system.py | `skill_system.py` + 依赖 | 小 | P1 | +| 4 | 创建 experiences 表 | 黑板数据库 + 导入 | 中 | P1 | +| 5 | 清理孤儿文件 | 删除 guardrails/ 目录等 | 小 | P2 | +| 6 | 更新技术设计文档 | `technical-design-v2.6.md` | 小 | P2 | + +**预估总工作量**:1-2 天 + +--- + +## 附录:参考来源 + +### 学术论文 +- Trace2Skill (arXiv 2603.25158) — 并行子 Agent 轨迹蒸馏 +- SoK: Agentic Skills (arXiv 2602.20867) — Agent 技能分类学 +- SkillRL (github.com/aiming-lab/SkillRL) — 成功/失败双向蒸馏 +- AgenTracer (arXiv 2509.03312) — 反事实归因定位关键错误 + +### 开源项目 +- Hermes Agent v0.12-v0.14 (Nous Research) — 自改进循环 + Curator +- Nevo (nevo.systems) — 三级 scope 的生产 Agent 系统 + +### 内部文档 +- `docs/design/technical-design-v2.6.md` — moziplus v2.0 技术设计 +- `docs/design/topic6-experience-loop-proposal.md` — 经验沉淀闭环设计 +- `docs/research/shared-consciousness-research.md` — 共享意识空间调研 +- wiki-vault `practices/agent-skill-design-methodology.md` — Skill 设计方法论 +- wiki-vault `practices/knowledge-management-system.md` — 知识管理体系