27 KiB
对话历史蒸馏为四层知识体系 — 完整调研与设计文档
版本: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 约束
- 不新增架构——用现有的四层框架(L0/L1/L2/L3)
- 不新增加载逻辑——用现有的 guardrails.yaml、bootstrap.py、skill_system.py
- 按层级归位——每条经验去它该去的层
- 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
# 读取 config/guardrails.yaml
# 在 Guardrail check 环节执行
# 当前只有 rules(安全红线),没有 behavior_rules
L2 — bootstrap.py
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
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 信号词定义
# ① 纠正模式
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 对象:
{"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 |
问题(主公指出):
- 与 6 种扫描模式对不上——Agent 不知道"我被纠正了"该加载哪个 Skill
- 经验层次不清晰——高频铁律和低频记忆混在一起
- 没有复用 moziplus v2.0 的四层金字塔架构
7.2 第二次组织(v2 — 按扫描模式 × 四层金字塔)
核心改变:
- 扫描模式作为分类骨架——经验从哪来,就按哪分类
- 四层金字塔作为目标层级——每条经验按确定性和频率决定去哪层
- 进化路径: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 改造原则
- 不新增目录——用现有的
config/、prompt_templates/、skills/ - 不新增加载逻辑——用现有的
guardrails.yaml、bootstrap.py、skill_system.py - 按层级归位——每条经验去它该去的层
- 清理孤儿文件——蒸馏过程中产生的孤立文件合并后删除
8.2 改造清单
改造 1:扩充 guardrails.yaml(L0)
现状:config/guardrails.yaml 有 6 条安全红线(实盘拦截、删除拦截、配置变更、token 超限、步骤超限、连续失败)
改动:新增 behavior_rules 区,与 rules 并列
# 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 解析
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 条协作经验
-- 课题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— 知识管理体系