第三步 · 外挂蒸馏:把别人的思维模型或领域知识变成可调用的决策接口

完整 SOP:从书籍/播客/访谈中蒸馏出结构化外挂——人物思维或领域知识都适用。含冲突检测、持续喂养和两个实战案例(Elon + 跑步教练)。

问题

用户已经有自己的 Axiom(通过自蒸馏建立的底层决策约束),但 Axiom 有盲区——它只能覆盖用户亲身经历过的场景。

两种典型盲区:

  1. 决策模式盲区:面对”把不可能拆成可能”这类问题,自己的 Axiom 没有对应框架
  2. 领域知识盲区:备战马拉松,买了两本圣经级跑步书,700 页记不住,AI 又只会给泛泛建议

根因:个人经验是有限的。需要一种机制,把别人的思维模型或领域专业知识变成可调用的”外挂”。

核心概念

外挂的定义

外挂 = 从目标素材中蒸馏出的结构化知识模型,
       以文件形式存在,Agent 按需加载,用于生成独立于用户 Axiom 的专业判断。

两种外挂,同一套方法

类型蒸馏什么提取视角案例
人物外挂一个人的思维方式”他怎么想、怎么决策”Elon Musk
领域外挂一个领域的专业知识”教练/顾问怎么操作”跑步训练

核心流程完全一样:切分→并行提取→合并→筛选→接入。区别只在提取 prompt 不同。

外挂 vs Axiom

Axiom:你自己的底层约束,最高优先级,冲突时 Axiom 赢。
外挂:别人的思维或领域知识,参考优先级,冲突时标注边界,由人类决定。

前提条件

prerequisites:
  - 用户已完成自蒸馏(有 SOUL.md / AGENTS.md 中的 Axiom)
  - 有明确的互补需求("我缺什么"而非"我崇拜谁")
  - 有足量素材(书/文章/播客/访谈,≥5万字)

方法:外挂蒸馏四步法

Step 1 · 选目标 + 设计提取视角

选目标的原则:互补而非崇拜

selection_criteria:
  - question: "我的 Axiom 在哪个维度没有覆盖?"
  - question: "谁/哪本书在这个维度最强?"
  - question: "素材是否足够结构化?"

提取视角是整个流程最关键的一步——视角错了,后面全白干。

人物外挂和领域外挂的提取维度完全不同:

人物外挂维度(以 Elon 为例):

dimensions:
  - worldview: "这个人相信什么?底层假设是什么?"
  - toolkit: "他用什么工具/框架做决策?"
  - decision_model: "面对X情况,他会怎么选?"
  - language_style: "他怎么表达?语气/节奏/用词?"
  - anti_patterns: "他明确反对什么?"
  - application_boundary: "什么场景该调用?什么场景不该?"

领域外挂维度(以跑步教练为例):

prompt: |
  你是一个跑步教练知识提取器。
  从"未来要当一个跑者的专属教练"的角度,
  提取所有可执行的教练知识。

dimensions:
  - diagnosis: "怎么评估用户当前水平"
  - prescription: "具体怎么做(保留所有数字)"
  - calibration: "根据实际数据怎么动态调整"  # ← 核心差异化
  - correction: "常见错误怎么纠正"
  - scenarios: "特定场景的操作流程(比赛日/恶劣天气/伤病)"
  - nutrition: "配套知识(饮食、补给、恢复)"

关键区分

  • 人物外挂问的是”他怎么想”
  • 领域外挂问的是”教练怎么操作”
  • 领域外挂的核心差异化是校准规则(根据数据动态调整)——任何 AI 都能给通用建议,“根据你的具体数据调整”才是专家外挂的价值

领域外挂的额外原则

key_decisions:
  - "全量提取,不按用户水平过滤"
    reason: "外挂是完整知识库,使用时再做 if/then 匹配"
  - "多源标注来源"
    format: "[丹] 来自丹尼尔斯 / [马] 来自马拉松宝典 / [丹+马] 两本都提到"
    reason: "两本书观点冲突时可溯源判断"

Step 2 · 蒸馏:用并行流水线处理

方法与「并行蒸馏」SOP 完全一致,核心流程:

素材预处理(按章节/主题切分)
    → 分批并行蒸馏(每批3-5篇,每波≤8个 sub-agent)
    → 频次加权合并
    → 总精炼压缩

实测数据

案例素材切分并行耗时
Elon 外挂《The Book of Elon》62章/40万字13批3波~20分钟
跑步教练外挂2本书/36.9万字11块11个 sub-agent~25分钟
Elon 播客增量1期/~2万字1批1个~3分钟

模型降级策略(跑步教练踩坑经验):

fallback:
  primary: "主力模型(Sonnet/Opus)"
  secondary: "备用模型(GLM-5)"
  trigger: "主力模型限额耗尽(503 错误)"
  lesson: "大批量并行任务必须预留备用模型"

Step 3 · 筛选:和用户 Axiom 对齐

蒸馏完的原始外挂通常过胖,需要一轮”手术”。

人物外挂用三层筛选

filters:
  - name: "共振检测"
    rule: "外挂条目与用户 Axiom 方向一致 → 保留"
    example: "Elon'第一性原理' ↔ 用户'A1 把手弄脏' → [共振]"

  - name: "冲突检测"
    rule: "外挂条目与用户 Axiom 矛盾 → 保留但标注边界"
    example: "Elon'睡工厂地板' ↔ 用户'A5 健康是前提' → [冲突]"

  - name: "可执行检测"
    rule: "能写成'当X时,用Y方法'?不能 → 降级为风格参考"

筛选效果:Elon 外挂原始版 → 筛选后瘦了约 50%。

领域外挂的筛选更简单:主要做去重和冲突标注。

dedup_rules:
  - "同一知识点被多块重复提取 → 合并为一条,标注所有来源"
  - "两本书观点冲突 → 保留两个版本并标注,使用时由 Agent 根据具体情况判断"

Step 4 · 接入:Agent 按需加载

外挂文件存为 perspectives/<name>.md,Agent 按需加载。

integration:
  trigger:
    - explicit: "用户说'用 Elon 的视角看看' 或 '查一下跑步教练怎么说'"
    - implicit: "Agent 识别到当前问题落在用户 Axiom 盲区"
  
  behavior:
    - load: "读取对应外挂文件"
    - generate: "用外挂框架生成专业判断"
    - present: "与用户 Axiom 判断并列展示(人物外挂)/ 直接给出建议(领域外挂)"
    - decide: "人类做最终决定"
  
  rules:
    - "外挂判断永远不自动覆盖 Axiom 判断"
    - "冲突时明确标注"
    - "用户未确认前,外挂建议不执行"

领域外挂的使用模式

example:
  input: |
    今天跑了 12 公里,平均心率 158,配速 5:45,
    后半程吃力,膝盖外侧微微不适。
  
  agent_behavior:
    1. "查诊断规则 → 评估状态"
    2. "查校准规则 → 判断是否调整计划"
    3. "查应变规则 → 评估膝盖问题"
    4. "综合给出可执行建议"
  
  output: |
    心率偏高 8%,说明今天偏疲劳。
    建议周四间歇跑改为 50 分钟 E 跑,配速 6:20-6:50。
    膝盖外侧可能是髂胫束,跑后做泡沫轴拉伸。

外挂文件结构

人物外挂

# <人物名>
## 人物 / ## 世界观 / ## 工具箱 / ## 决策模型
## 何时调用 / ## 与用户 Axiom 的共振/冲突 / ## 素材索引

领域外挂

# <领域>专家外挂
## 来源(书籍列表)
## 诊断规则 / ## 处方规则 / ## 校准规则(核心)
## 纠错规则 / ## 场景规则 / ## 营养/辅助 / ## 应变规则
## 各细分专项 / ## 附录(速查表)

持续喂养机制

外挂不是一次写完的死文件。新素材出现时:

feeding_protocol:
  trigger: "用户提供新素材(播客/文章/访谈/新版书籍)"
  
  process:
    1. "用并行蒸馏处理新素材"
    2. "提取增量洞察(和已有外挂做 diff)"
    3. "增量洞察通过筛选"
    4. "写入外挂对应章节,标注来源和日期"
  
  example:
    source: "播客《跨国串门儿计划》#470"
    increments:
      - "'魔音'概念 → 写入组织/管理章节"
      - "'一的力量' → 写入组织/管理章节"
    time: "~5分钟"

反哺检测

蒸馏别人的最大价值不是外挂本身,而是暴露用户 Axiom 的盲区。

feedback_loop:
  after_distillation:
    - "扫描外挂中的所有维度"
    - "检查:用户 Axiom 中是否有对应项?"
    - "无对应项 = 潜在盲区 → 提议用户补充新 Axiom"
  
  example:
    dimension: "质疑需求——所有需求都应被视为建议"
    user_axiom: "无对应项"
    proposal: "建议新增:接到任务先问'该不该做',再问'怎么做'"

踩坑记录

表现解法
模型限额(跑步案例)前7个任务OK,后3个503预留备用模型
超时(跑步案例)300s不够,内容密加到600s;文件边处理边写入
PDF质量差(跑步案例)排版残留污染提取prompt加”忽略页眉页脚”;优先epub
过度内化(Elon案例)AI在所有场景催速度三层筛选+冲突标注
金句当原则(Elon案例)不可执行内容稀释工具箱”能约束下一步行为”是硬标准
提取阶段过滤(跑步案例)只提”初级适用”导致不完整全量提取,使用时匹配

常见错误

错误后果修正
选崇拜而非互补外挂和 Axiom 高度重叠先明确缺什么
用”总结”视角而非”角色”视角产出是读书笔记不是操作手册明确角色+维度
不设计校准维度(领域外挂)只能给通用建议校准规则是核心
不标注来源(多书)冲突时无法溯源每条加[来源]前缀
不做冲突检测(人物外挂)外挂和Axiom打架三层筛选必须跑
写完不喂养外挂逐渐过时新素材即触发增量更新
外挂自动覆盖 Axiom判断被劫持冲突时 Axiom 永远优先

权限边界

⚠️ 关键约束:
- 外挂判断永远不自动执行,必须经人类确认
- 与用户 Axiom 冲突时,Axiom 优先级更高
- Agent 可以建议调用哪个外挂,但不能自行切换
- 领域外挂不替代专业人士(尤其医学/法律)
- 用户数据属于隐私,不外泄
- 外挂的新增/修改需记录到 memory

相关资源

半胆浣熊

文科生,不会代码,但很幸运 —— 赶上了 AI 的年代。
这里是我的实战学习笔记。

← 返回文章列表