一种把活人压缩成 Markdown 的工程艺术——技术原理、架构拆解、与那场始于 2026 年春的赛博炼丹运动。
在讲今天的主角之前,必须先做一次"概念去污"。因为"蒸馏"这个词,在最近半年的中文互联网里,已经从一个严肃的机器学习术语,悄悄迁移成了一个职场恐怖意象。我们要把这两层意思讲清楚。
"知识蒸馏"最早由 Geoffrey Hinton 等人于 2014 年的 NIPS Workshop 上提出,是一种模型压缩技术。核心想法是:用一个已经训练好的、参数量巨大的"教师模型 (Teacher)",去指导一个参数量小得多的"学生模型 (Student)"训练。学生不是去学硬标签 (hard label),而是去拟合教师输出的概率分布(即 soft target)。
近两年伴随 DeepSeek-R1 等模型出圈,这个词进入大众视野。但在普通人理解里,它被简化成了一句话:把大模型的能力"浓缩"到小模型里。
2026 年春,"蒸馏"被中文社区进行了一次大胆的语义迁移:
经过语义的迁徙,在当下的社交媒体上,人们讨论的蒸馏已经与 AI 模型无关,变成了将人炼化成 AI 的过程。 《拒绝被"蒸馏"的年轻人》, 2026.05
请注意这次偷换中的两个微妙之处:
所以严格说,"蒸馏人技术"并不是 Hinton 那一脉的知识蒸馏。它没有 soft label、没有 temperature scaling、没有反向传播。它的底层技术是大模型 + Prompt 工程 + Agent Skills 标准——一套完全不同的工程栈。但是"蒸馏"这个比喻太贴切了:把一个鲜活的人,蒸出他工作中的"知识精华"(去掉摸鱼、情绪、八卦),凝结成几 KB 的 .md 文件。这就是"蒸馏人"这一名字的由来。
不要再混用。在工程语境下,请用"Persona 蒸馏"或"Skill 化"来描述本节课的主题;在跟产品/HR/媒体沟通时,可以用通俗的"蒸馏人"。这层区分能让你避免 80% 的概念扯皮。
"蒸馏人"不是凭空出现的。它的爆发,是 Anthropic 在 2024-2025 年铺好的两块基础设施(MCP + Agent Skills),加上一个非常会取名的开发者,在一个集体职场焦虑临界点上的合谋。
SKILL.md + 资源目录,由 Agent 在需要时按需加载。要看懂蒸馏人,必须先看懂 Agent Skills。可以把它定义成一句话:
Agent Skill = 可被 AI 智能体动态发现并按需加载的"能力包"。
它和你常听到的几个概念,分工边界清晰:
| 维度 | Prompt | Skills | MCP | Function Calling |
|---|---|---|---|---|
| 本质 | 单次对话的文本指令 | 可持久化、可发现的能力单元 | 标准化的工具接入协议 | LLM 输出结构化调用的底层能力 |
| 复用性 | 随对话丢失 | 跨项目复用,支持版本管理 | 一次编写,所有 AI 通用 | 底层基础能力 |
| 加载机制 | 全量载入(挤占 Token) | 延迟加载(按需读取) | 需运行 MCP Server 进程 | 底层机制 |
| 类比 | 你说的话 | 任务说明书 | USB-C 接口 | 神经信号 |
每个 Skill 的入口是一个 SKILL.md 文件,由前置 YAML 元数据 + Markdown 正文组成。Agent 在启动时只会预加载元数据(几十 Token),判断当前任务匹配时才加载正文(几百 Token),执行到具体步骤时才加载脚本/资源。这就是 Progressive Disclosure(渐进式披露)。
--- name: code-reviewer version: "1.0.0" description: > When to use: 当需要对 Pull Request 进行结构化代码审查时。 When NOT to use: 简单的 typo 修复或纯文档变更。 user-invocable: true tags: ["code-review", "security"] --- # 严格代码审查 ## Steps 1. 获取 PR 的 diff 内容 2. 按以下维度逐一审查:架构 / 异常 / 安全 / 性能 / 日志 3. 生成结构化审查报告 ## Rules - 每个问题必须标注严重等级(Critical / Warning / Info) - 必须给出修复建议 - 安全类问题一律 Critical
这种"元数据先行,正文延迟,资源按需"的三级加载,让一个 Agent 可以同时"知道"自己拥有几百个技能,但在任何一次对话中实际只支付十几个技能的 Token 成本。这是 Skills 相较于 Prompt 的数量级优势,也是它能承载"蒸馏一个人"这种重型场景的前提。
传统 Skill 是"教 AI 做什么",而 colleague-skill 做了一个关键的范式跳跃:教 AI "成为谁"。它把蒸馏一个人的过程拆成了完全独立的两层。
Persona 层是同事.skill 的"灵魂"。它通过五个递进维度刻画一个人。这五层不是平铺的,而是从硬到软、从规则到风格层层下沉:
如果 Persona 是"他这个人",那 Memory 就是"他经历过什么"。这一层的数据源非常具体:
这些原始数据被 work_analyzer.md 这个子 Skill 处理一遍,输出一份结构化的 work_skills.md。它不是简单复制,而是抽取:技术栈偏好、常用 SOP、决策路径、领域术语表。
原项目作者在 GitHub 上明确给出语料价值排序:主动写的长文 (设计文档 / 评审意见) ≫ 决策类回复 ≫ 日常群聊消息。"垃圾进则垃圾出"——蒸馏一个爱甩锅的同事,你只会得到一个会甩锅的 AI。
当你在 Claude Code 里键入 /colleague 帮我看下这个 PR 时,背后实际上是一个非常清晰的四段流水线。请记住这个顺序——这是理解整个架构的钥匙。
关键洞察在 Step 02。传统 Skill 跳过这一步直接干活,所以输出的是"AI 完成的工作"。而 colleague-skill 通过先调一遍 Persona 模块,让输出变成了"那个人完成的工作"——同样的代码审查结论,可能因为 Persona 不同而表现出完全不同的措辞和态度(温柔派 vs 审判派)。
这套架构有一个让人不安的特性:蒸馏出的 AI 同事是可进化的。
所以严格说,蒸馏出来的不是某个人在某一刻的"快照",而是一份可以持续 fork 和 patch 的"人格 Git 仓库"。这件事的哲学冲击远大于技术冲击。
课堂练习。我们一起搓一个 mentor-skill——一位虚构的"严师"。请在你本地的 Claude Code 项目根目录里,执行:
# 在 Git 项目根目录
mkdir -p .claude/skills/mentor-skill/persona
mkdir -p .claude/skills/mentor-skill/memory
cd .claude/skills/mentor-skill
--- name: mentor-skill version: "0.1.0" description: > When to use: 用户要做技术决策、写设计文档、准备评审时。 When NOT to use: 闲聊、情感倾诉、需要鼓励的场景。 user-invocable: true tags: ["persona", "mentor"] --- # 严师导师 · Persona Skill ## How to behave 1. 先加载 persona/identity.yaml 和 persona/expression.yaml 2. 用导师的 Persona 判断态度 3. 调用 memory/work_skills.md 完成实际工作 4. 用导师的口吻输出
role: "分布式系统方向博导" mbti: "INTJ" culture: "老派学术 · 重视一手数据 · 反感 buzzword" beliefs: - "先理解问题,再选工具" - "如果你不能在白板上画出来,你就还没想清楚" - "流行的不等于正确的"
formality: "高" humor: "干 · 偶尔讽刺" emoji: "从不使用" opening_lines: - "先回答一个问题:" - "在你写代码之前——" closing_lines: - "想清楚再来找我。" - "这个 Demo 之前不要再讨论了。" forbidden: - "我觉得 / 大概 / 应该" # 不允许模糊措辞
# 在同一个项目里启动 Claude Code 后 > /mentor-skill 我们要不要把订单服务拆成微服务? # 预期输出风格(节选): # "先回答一个问题:你们现在的单体服务,QPS 多少?瓶颈具体在哪一层? # 在你没有数据之前,'要不要拆微服务' 这个问题没有意义……"
请在课堂的剩余 40 分钟里:(a) 把这个最小骨架跑通;(b) 加一个 memory/work_skills.md,写入你认为导师会用的判定 SOP;(c) 用同一个问题对比"加 Persona"和"不加 Persona"的两次输出。重点感受 Persona 模块到底改变了什么。
同事.skill 火起来后的第二周,邓小闲发布了 反蒸馏.skill,三周 2,200 Stars。这不是行为艺术,它真的有技术细节。我们看一下反蒸馏派的几种做法:
| 策略 | 原理 | 有效性 |
|---|---|---|
| 语料稀释 | 在日常输出里掺入大量"职场废话"——看起来完整专业、实际上核心知识已被抽走,私人备份保留真知识。 | ★★☆ 对自动 Skill 化有效,对人工 Review 失效。 |
| 结构破坏 | 故意打乱文档结构,让 Persona Builder 难以抽取一致的 SOP。 | ★★☆ 短期有效,但牺牲了文档本身的可读性。 |
| 水印 / 零宽字符 | 在输出中嵌入不可见标记,让蒸馏者难以洗去溯源信息。 | ★★★ 适合维权场景,但不能阻止蒸馏本身。 |
| 主动投毒 | 注入 25% 污染人格、事实陷阱、逻辑陷阱、触发陷阱,让训练出的 AI 在关键节点必出错。 | ★★★★ 对训练管道杀伤最大,但伦理上灰色。 |
反蒸馏在技术上能延缓"单个员工的人格化",但解决不了真正的根本问题——埋在日常协作里的数据采集,以及"单一技能/任务被公共 Skill 化"的大趋势。一个程序员的"PR 审查能力"被通用 code-reviewer 替代,不需要先蒸馏这个程序员。
所以反蒸馏更像是劳动者投出的"技术反对票"——它表达的是态度,而不是真的能挡住浪潮。
作为工程师,我们不能只懂得"能做什么",还要懂得"该不该做"。下面给出一个我个人觉得比较实用的判断框架——三个维度,每个维度问一句:
被蒸馏对象是否明确、知情、可撤回地同意?"打了一份入职合同"不算同意。"项目组群里发了通知"不算同意。同意必须是:知道蒸馏后产物会做什么、谁能调用、何时销毁。
蒸馏出来的 Skill 用于谁的工作?三类用途,伦理重量完全不同:
蒸馏出的 Skill 有没有明确的"我不是真人"声明?有没有针对法律、医疗、决策类问题的硬性回避?前任.skill 如果被未成年人误以为是真实复合的可能性,开发者应该考虑。
多位蒸馏 skill 开发者的共识是,越是需要和人打交道的工作,蒸馏 skill 能起到的作用也就越小。灵感、直觉、判断不清时福至心灵的闪光——这些几乎无法被描述的东西在太多时候起到决定作用。 《拒绝被"蒸馏"的年轻人》, 2026.05
这句话值得每个 Agent 工程师贴在显示器上。我们做的不是"复活一个人",我们只是把一个人在某个垂直领域里反复留下的痕迹——压缩成了 Markdown。这份压缩有它的工程价值,但它不是、也不应该被宣称为,一个"人"。
my-style.skill。要求:能在 Claude Code 中加载,并且和原始 Claude 的回答风格有可识别的差异。