# 对话历史蒸馏为四层知识体系 — 完整调研与设计文档

> 版本：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` — 知识管理体系
