| name | writing-style-distill |
| description | 从一组优秀参考文章中提炼可复用的写作决策,并通过无参考盲写、逐篇对照和多轮处理组实验迭代成一个独立写作 skill。适用于学习作者或刊物的深层组织方式、读者假设、详略分配、推理顺序和停止条件;不用于复制原文表达、模仿口癖或冒充作者。 |
写作风格蒸馏
这个 skill 的目标不是让模型“像某个人说话”,而是从优秀文章中发现一组可检验的写作决策:作者如何选择主线、安排详略、假设读者、组织推导、表达判断,并在什么时候停止。
最终产物必须能够脱离参考作者独立存在。它学的是方法,不是身份;学的是选择规则,不是表面语气。
一、先建立实验边界
开始前明确以下约束:
- 参考文本默认更好。 盲写稿不是参考文本的竞争者,而是用来暴露普通模型默认写法的诊断样本。比较时不问“谁写得更好”,而问“参考文本通过什么选择取得了盲写稿没有的效果”。
- 写作组禁止读取参考文本。 负责无 skill 基线和 treatment 的 agent 只能得到题目或中性事实表,不能看到原文、原文摘要、章节结构或带有风格暗示的提示。
- 分析组可以读取参考文本。 它负责选题、核对事实和对照,但不能代替盲写组写稿。
- 隔离其他 skill。 基线和 treatment 都不得调用其他写作、研究或审美 skill;否则无法判断改进来自哪个变量。
- 一次只改变一个变量。 基线与 treatment 尽量使用相同模型能力、相同题目和相同事实输入,区别只在于是否使用待测 skill。
- 保留失败。 不重写难看的盲稿,也不删除失败轮次。失败模式正是后续规则的证据。
如果无法保证写作 agent 没有看到原文,就不要把该稿件记为盲测。
二、先画语料地图,不要立刻总结风格
先对语料做轻量普查:
- 文章数量、长度与年代;
- 文章类型:解释、推导、综述、论文解读、指南、随笔;
- 标题和章节标题;
- 公式、例子、实验、引用的密度;
- 常见开头和结束方式;
- 系列文章之间如何分配前置知识。
随后分层抽样,不必机械读完全部文章。样本应覆盖不同类型、长短和技术难度,直到新文章不再持续产生新的稳定假设。不要只选最著名或最符合预期的文章。
初读时只记录观察,不急着把口头禅、句长或第一人称频率称为“风格核心”。这些往往是深层写作决策的结果。
三、制作不泄露风格的题目卡
从参考文章抽取若干主题,为盲写 agent 制作题目卡。题目卡只能包含:
- 文章要回答的技术问题;
- 必要且中性的事实、公式或实验结果;
- 必须保持的非标准解释或证明路线;
- 期望的大致读者与文章类型。
题目卡不能包含:
- 原文段落或近义改写;
- 原文章节顺序;
- 原文比喻、判断或结尾;
- “请写得像参考作者”之类的暗示;
- 已经替作者完成的主线提炼。
如果任务高度依赖生僻知识,给基线和 treatment 同一份中性事实表。否则知识差异会被误判成写作差异。
四、建立无 skill 基线
选择三到六个有代表性的题目,让全新 agent 独立成稿。每个 agent 必须:
- 不读取参考文本;
- 不读取待建 skill;
- 不使用其他写作 skill;
- 不联网补看原文;
- 自行决定文章范围、顺序、详略和读者假设。
基线不需要很多。目的不是统计模型平均水平,而是找出反复出现的默认倾向,例如:
- 把一个主题写成知识目录;
- 用全面覆盖代替教学选择;
- 先给抽象总论,再寻找例子;
- 预先罗列所有边界条件;
- 把标准解释替换题目指定的新解释;
- 到达答案后继续写手册、FAQ 或泛化建议。
只有跨多个题目重复的倾向,才优先进入初版 skill。
五、按认知决策逐篇对照
默认参考文本优于盲写稿,但不要停留在“更自然”“更有味道”之类的感受。至少检查以下维度:
- **首要任务:**文章究竟只承诺完成什么?
- **主线:**全文围绕哪个认知转折,而不是围绕哪个大题目?
- **入口:**读者先遇到具体困惑、反常现象,还是完成态结论?
- **顺序:**章节服从历史、知识分类,还是服从理解发生的次序?
- **详略:**篇幅花在主题重要性、技术难度,还是读者真正会卡住的位置?
- **读者契约:**作者认为读者知道什么、可能忘记什么、绝不能假设什么?
- **公式作用:**公式是在装饰严谨性,还是在消元、转向、建立后果?
- **判断与证据:**作者如何区分事实、解释、实验和偏好?
- **省略:**哪些正确而相关的内容被主动排除?
- **停止:**哪个问题回答后文章立即结束?
- **语言节奏:**语气、比喻和第一人称是否只是上述结构的表层结果?
每个差异都写成因果诊断:
盲写稿做了什么选择 → 这个选择让读者付出什么代价 → 参考文本换成了什么选择 → 因此获得什么效果。
不要仅仅罗列两篇文章分别有哪些章节。
六、区分写作失败与知识失败
如果盲写稿不知道关键事实、误解论文结论或缺少指定证明路线,这首先是知识输入问题,不应直接提炼成风格规则。
可以归因于写作的差异包括:
- 已知事实相同,却选择了不同主线;
- 同一公式在一篇中承担推理,在另一篇中只是罗列;
- 相同材料被分配了不同篇幅;
- 一篇要求读者补机械计算,另一篇却要求读者补关键思想;
- 一篇在答案处停止,另一篇继续扩张。
遇到知识混杂时,补一份中性事实表重新测试,而不是凭印象裁决。
七、把观察改写成可执行规则
初版 skill 只收录有重复证据的规则。每条规则最好包含:
- **触发条件:**什么时候需要这条规则;
- **动作:**写作者具体做什么;
- **判断标准:**怎样知道已经做到;
- **反例:**模型最容易怎样误用;
- **停止条件:**做到哪里就不再继续。
例如,“详略得当”不是规则;“把最多篇幅给旧理解跨向新理解的那一步,标准定义压缩到下一步能够进行即可”才是规则。
避免把参考作者的名字、口癖、比喻、固定句式或文章标题写进可发布 skill。若某条规则必须依赖作者身份才能成立,它还没有被充分抽象。
八、运行 treatment,而不是自我欣赏
用全新 agent 测试初版 skill。至少包含:
- 一个基线已经写过的题目,用于回测;
- 一个同类型新题,用于近距离泛化;
- 一个不同类型新题,用于检查规则是否过拟合。
Treatment agent 只能读取当前版本 skill 和中性事实表,仍然禁止读取参考文本及其他 skill。
比较时使用三列:
| 维度 | 无 skill 基线 | 当前 treatment |
|---|
| 主线 | 是否围绕大题目铺开 | 是否集中到一个认知动作 |
| 读者 | 是否偷带专题前置 | 是否建立明确知识契约 |
| 详略 | 是否按相关性堆内容 | 是否按认知瓶颈分配 |
| 停止 | 是否追加第二篇文章 | 是否在承诺完成后结束 |
Treatment 仍然默认低于参考文本。任务是寻找它缩小了哪些差距、制造了哪些新问题,而不是证明 skill 已经成功。
九、每一轮都更新 skill
每轮对照结束后,立即更新 SKILL.md,并记录:
- 本轮题目与隔离条件;
- skill 已改善的稳定差距;
- 仍然存在的残余;
- skill 是否矫枉过正;
- 本轮新增、删除或改写的规则;
- 下一轮需要回测的风险。
常见的矫枉过正包括:
- 为了单一主线,误删揭示不同结构的第二种证明;
- 为了具体开篇,拒绝所有必要的抽象定义;
- 为了简洁,省掉读者真正缺失的专题前置;
- 为了严谨,把所有限定集中到结尾形成防守清单;
- 为了有深度,在解释完成后又追加一套无用抽象语言。
规则只能由具体失败推动,不要为了让版本号增长而扩写 skill。
十、建议的实验记录
工作目录可以包含:
SKILL.md
BASELINE.md
ROUND1.md
ROUND2.md
topic_cards/
drafts/
reference/ # 仅内部研究,不进入公开仓库
每个 ROUND<n>.md 至少写清:
# 第 n 轮
## 隔离条件
谁能看原文,谁不能;使用了哪些事实表和 skill。
## 题目一
基线差距、treatment 改善、残余问题。
## 题目二
……
## Skill 更新
本轮为什么改,具体改了什么。
十一、停止蒸馏的条件
不需要追求复刻作者。满足以下条件后即可停止:
- skill 在旧题回测和新题泛化中都稳定改变了目标写作决策;
- 新增语料主要重复已有结论,不再产生新的高频规则;
- 连续两轮更新只剩题目特有的小修补;
- 剩余差距主要来自真实研究经历、事实判断和个人审美,而非可执行写作规则;
- skill 已能脱离作者姓名和参考语料独立说明自身价值。
无法蒸馏的部分应诚实保留为边界。真正的选题判断、发现历史、实验经验和长期形成的品味,不能仅靠格式规则复制。
十二、公开发布前清理
公开版本只发布独立产物,不发布研究语料:
- 删除参考原文、缓存、截图和抓取脚本;
- 检查 Git 历史,避免被删除文件仍可恢复;
- 移除作者姓名式的 skill 名称和可能暗示官方授权的表述;
- 不复制原文段落、独特比喻和大段结构;
- 在 README 中事实性说明灵感来源、研究方法和无授权/无背书关系;
- 给引用的公开文章提供链接和署名;
- 明确许可证只覆盖仓库原创内容,不覆盖第三方材料。
最终公开的 skill 应当让不了解参考作者的人也能直接理解和使用。
最终检查
- 盲写 agent 是否真的没有看过原文?
- 是否隔离了其他 skill 和知识差异?
- 是否始终以参考文本为目标,而非让 AI 给自己打高分?
- 规则是否来自跨题目的重复证据?
- 每轮是否实际更新了 skill?
- 是否同时做了旧题回测和新题泛化?
- 是否记录了矫枉过正,而不只是改进?
- 可发布 skill 是否已经去除作者身份和原文表达?
- 剩余差距是否被诚实标记为不可蒸馏部分?