Skip to content

9.7 做梦蒸馏:从流水账到「用户偏好」与「项目背景」

像熬高汤:一大锅骨头和香料,最后只要那一碗清澈鲜甜的汤底。


本节学习目标

  1. 描述 蒸馏输出两类结构化块:用户偏好(如何与我协作)与 项目背景(此仓库的事实与约束)。
  2. 解释 蒸馏与 双模型检索 的衔接:蒸馏提升卡片 title/description 质量。
  3. 对比 蒸馏前后 token:流水账总长大于结构化卡片之和。
  4. 编写 蒸馏提示的结构骨架(教学用),便于团队自建批处理。
  5. 处理 冲突:新蒸馏与旧卡片矛盾时的合并策略。

生活类比:周报

员工每天写工作日志(流水账),周五写周报(蒸馏):

  • 日志:过程
  • 周报:结果 + 风险 + 下周计划

老板只看周报也能掌握大局——类似模型只看蒸馏卡片


Mermaid:输入—输出形态


两类结构化块定义

用户偏好(User Preferences)

字段示例
沟通简体中文;先给结论再细节
工具pnpm;禁止擅自 git push
审查PR 需附测试结果摘要

项目背景(Project Context)

字段示例
架构monorepo;API 在 packages/api
约束legacy/v1 冻结
命令pnpm test:e2e 需 Docker

源码片段:蒸馏提示骨架(伪)

text
你将阅读一段按时间排序的会话记忆流水账。
请输出 JSON 数组,每项含: type ("preference"|"project"), title, description, evidence_ids。

规则:
- 合并重复事件
- 丢弃一次性试错
- 描述需可执行、无敏感密钥

Mermaid:合并去重


表:蒸馏质量检查

检查项通过标准
无密钥正则扫描
有标题非空
描述长度1~5 句
scope正确项目

与 CLAUDE.md 的升格(再次强调)

蒸馏结果动作
团队应共识提 PR 到 CLAUDE.md
纯个人保留记忆
重复删重复卡片

练习

  1. 给一段虚构流水账(5 行),手写蒸馏后的 2 张卡片。
  2. 指出哪一行流水账应被丢弃而非蒸馏。

FAQ

Q:蒸馏会删证据吗?
A:会;证据应已在 Git/文档;记忆只保留指针级描述。

Q:能否人工触发蒸馏?
A:dream 技能/命令(以实现为准)。


小结

做梦蒸馏把 KAIROS 的流水账变为 用户偏好项目背景 两类高质量卡片,降低检索噪声与上下文注入量,是记忆系统「由乱到治」的关键一步。


附录:JSON 输出示例

json
[
  {
    "type": "preference",
    "title": "沟通:中文与结构",
    "description": "用户偏好简体中文;回复先结论后步骤。",
    "evidence_ids": ["log_12", "log_18"]
  },
  {
    "type": "project",
    "title": "E2E 运行方式",
    "description": "在 packages/web 运行 playwright;需 docker compose up testdeps。",
    "evidence_ids": ["log_22"]
  }
]

Mermaid:失败重试


Token 直觉表

阶段相对体积
流水账 10K tokens100%
蒸馏后卡片 1.5K~15%

示意比例;以实测为准。


冲突解决策略

策略何时
时间新覆盖旧偏好变更
合并描述互补事实
标记 human_review不确定

反模式

反模式后果
蒸馏输出过长检索退化
把流水账原样复制未蒸馏
无校验直接写入脏数据

与 Opus / Sonnet

角色可用模型
蒸馏整理较强模型更稳
扫描检索快速 Sonnet

术语

英文中文
distillation蒸馏
structured memory结构化记忆

企业扩展

  • 蒸馏任务走审计日志
  • 输出经 PII 扫描 再落盘。

与 9.5 精确度优先

蒸馏时应主动丢弃弱相关流水行,预先践行「宁缺毋滥」。


复盘模板

markdown
## Dream run 2026-04-02
- input lines: 42
- output cards: 6
- pruned: 36
- manual fixes: 1 (see issue #...)

本项目仅用于教育学习目的。Claude Code 源码版权归 Anthropic, PBC 所有。