!封面

今天和邬师聊天——邬师是我的领导和前辈,浙江海泰律师事务所主任,一位功力深厚的优秀大律师。他读了我那篇《不写代码,也能工程化——一个律师的 Agentic Coding 实践》,发来几句话。

不只发了话。他还发来一个链接——他自己写的一篇文章:《工程化思维的跨界启示——读陈石律师〈不写代码,也能工程化〉有感》。

一个人读了一篇文章,当天就让AI吸收、拆解、重组,然后用这套方法论写出了自己的文章。这件事本身,就是我要讲的东西最好的证据。

邬师的原话是:"我这边已经按照你这篇文章的思路在整改了。"

不是"写得好"。不是"有启发"。是"我已在转化"。

邬师做了什么

邬师在他的文章里完整记录了这个过程。我直接引用他的原文,比任何转述都更有力:

读完第一段,我把文章转发给了 Claude。

>

不是收藏。不是浮窗。是直接打开 Claude Code 的对话框,把整篇文章投喂进去,然后输入了一行指令:请基于陈石律师的这篇文章,为我整理一套律师使用 Claude Code 的工作指引,并对我当前的项目配置做一份转化方案。

五分钟,桌面上多了一份 463 行的《Claude Code 律师工程化实践工作指引》,覆盖环境搭建、规则体系、五大实践案例、四个核心教训、安全权限管理和落地路线图。又过了十分钟,一份针对他工作目录的转化方案列出 11 项调整建议,从目录结构重组到 MCP 权限收紧,逐条标注优先级。

然后他用这套方法论写了一篇文章——就是发给我那篇——发布用的管线,正是从我那篇文章里"蒸馏"来的微信公众号发布工具。

邬师在这里展现了三种极其稀缺的认知品质。

第一,识别力。读完第一段就判断出"这篇文章不是用来读的,是用来执行的"。大多数人读到好文章觉得"有道理",他读到的第一反应是"这东西能被AI消化"。这种判断不需要技术背景——它需要的是一种对"可结构化内容"的嗅觉。邬师在法律行业深耕二十多年,他能瞬间识别什么东西是"真框架"、什么东西是"漂亮话"。这种嗅觉,恰恰是深厚专业功底的副产品。

第二,转译力。他那句指令本身就是教科书级别的提示词——"请基于陈石律师的这篇文章,为我整理一套律师使用 Claude Code 的工作指引,并对我当前的项目配置做一份转化方案。"三要素齐全:源材料(基于原文)、输出格式(工作指引+转化方案)、应用场景(我当前的项目配置)。不需要学提示词工程,需要一个律师对"什么叫明确的指令"的本能理解。指令精确,是因为他对自己的需求精确。

第三,再创造力。他的文章不是洗稿。斗拱隐喻是他的——用建筑学的模数化设计重新编码了模块化规则体系。"构建者精神"是他的——用他自己的词汇命名了一个我文章里有但没命名的东西。"以身试法"是他的——用四个字概括了整个闭环。他用自己的知识储备重新组装了框架,出来的东西带着强烈的邬式印记。

这就是我所说的认知蒸馏最漂亮的一次示范。

认知蒸馏:一篇文章的新角色

邬师聊天时说:"这可能就是他们一直说的蒸馏吧。"他用词很准,但我想再往前走一步。

机器学习里的"蒸馏"(Knowledge Distillation),是指大模型把能力迁移给小模型——教师模型教学生模型,学生模型不用重训全部参数就能接近教师的表现。这个概念正在跳出技术圈。

一个人的复杂思想 → 被AI提炼成结构 → 由另一个人拿去执行 → 长出新的东西。

我把它叫作认知蒸馏

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 200">
  <rect width="600" height="200" fill="#fff" rx="4"/>
  <defs>
    <marker id="arrow" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
      <path d="M0,0 L8,3 L0,6 Z" fill="#333"/>
    </marker>
  </defs>
  <text x="300" y="28" text-anchor="middle" font-size="15" font-weight="700" fill="#222">认知蒸馏六环节</text>
  <rect x="8" y="52" width="82" height="48" rx="3" fill="#f5f5f5" stroke="#999" stroke-width="1"/>
  <text x="49" y="72" text-anchor="middle" font-size="11" fill="#333">提出框架</text>
  <text x="49" y="88" text-anchor="middle" font-size="9" fill="#888">原创者</text>
  <line x1="90" y1="76" x2="106" y2="76" stroke="#333" stroke-width="1.2" marker-end="url(#arrow)"/>
  <rect x="108" y="52" width="82" height="48" rx="3" fill="#f5f5f5" stroke="#999" stroke-width="1"/>
  <text x="149" y="72" text-anchor="middle" font-size="11" fill="#333">读到框架</text>
  <text x="149" y="88" text-anchor="middle" font-size="9" fill="#888">读者</text>
  <line x1="190" y1="76" x2="206" y2="76" stroke="#333" stroke-width="1.2" marker-end="url(#arrow)"/>
  <rect x="208" y="52" width="82" height="48" rx="3" fill="#f5f5f5" stroke="#999" stroke-width="1"/>
  <text x="249" y="72" text-anchor="middle" font-size="11" fill="#333">AI理解框架</text>
  <text x="249" y="88" text-anchor="middle" font-size="9" fill="#888">AI</text>
  <line x1="290" y1="76" x2="306" y2="76" stroke="#333" stroke-width="1.2" marker-end="url(#arrow)"/>
  <rect x="308" y="52" width="82" height="48" rx="3" fill="#f5f5f5" stroke="#999" stroke-width="1"/>
  <text x="349" y="72" text-anchor="middle" font-size="11" fill="#333">AI生成产出</text>
  <text x="349" y="88" text-anchor="middle" font-size="9" fill="#888">指引/方案</text>
  <line x1="390" y1="76" x2="406" y2="76" stroke="#333" stroke-width="1.2" marker-end="url(#arrow)"/>
  <rect x="408" y="52" width="82" height="48" rx="3" fill="#f5f5f5" stroke="#999" stroke-width="1"/>
  <text x="449" y="72" text-anchor="middle" font-size="11" fill="#333">形成反射</text>
  <text x="449" y="88" text-anchor="middle" font-size="9" fill="#888">读者</text>
  <line x1="490" y1="76" x2="506" y2="76" stroke="#333" stroke-width="1.2" marker-end="url(#arrow)"/>
  <rect x="508" y="52" width="84" height="48" rx="3" fill="#333" stroke="#333" stroke-width="1"/>
  <text x="550" y="72" text-anchor="middle" font-size="11" fill="#fff">改变工作流</text>
  <text x="550" y="88" text-anchor="middle" font-size="9" fill="#ddd">新常态</text>
  <text x="300" y="125" text-anchor="middle" font-size="10" fill="#999">前三步所有文章都在做;后三步只有结构化文章才能走完</text>
  <line x1="50" y1="138" x2="550" y2="138" stroke="#ddd" stroke-width="0.5"/>
  <text x="300" y="158" text-anchor="middle" font-size="10" fill="#666">传统文章止步于此 ↑</text>
  <text x="300" y="176" text-anchor="middle" font-size="10" fill="#333">工程化文章可运行到终点 ↓</text>
</svg>

前两步,所有文章都能走到——写出来,被读到。从第三步开始,只有那些"可被AI解析"的文章才能继续。普通文章止步于"读者觉得有道理";工程化之后的结构化文章,可以一路跑到第六步——让读者开始用你的方法干活,甚至长出自己的东西。

关键区别在这里:一篇文章不再只是信息载体。它是一个可被AI解析、压缩、重组、迁移的认知模型

邬师的斗拱时刻

邬师在他的文章里引入了一个我完全没想到的隐喻——斗拱。

中国传统建筑的斗拱结构,每一块木构件独立制作、替换、升级,拼在一起后,整体承载能力远超单个构件的简单相加。他说我搭建的规则体系——按场景拆分的 .claude/rules/ 目录、每个规则文件只管一件事、脚本之间通过输入输出串联——底层逻辑跟斗拱一模一样。

这个比喻不在我的原文里。我写的是"拆分规则文件""模块化""分层解耦",邬师用他自己的知识储备——建筑学里的模数化设计——重新编码了这套逻辑。他吸收的不是文字,是文字背后的结构。然后用他自己的语言长出了新东西。

这就是认知蒸馏的标志:出来的不是原作的复制品,而是一个带着新创作者指纹的独立作品。

更精彩的是他文章里的另一段。

转化方案里有一条:把他塞了将近两千行的 CLAUDE.md 拆成 6 个按场景划分的 rules 文件。他问AI"为什么",AI的回答是——规则越多越集中,AI反而越蠢,规则冲突会让它陷入纠结。这条建议直接来自我文章里"坑一"的教训:不要把什么规则都塞进一个大文件。

邬师写了一句让我倒回去读了三遍的话:"我让AI读了陈石的文章,AI学到的教训,反过来用在了我身上。"

这不是普通的蒸馏。这是元蒸馏——AI不仅吸收了原文的框架,还吸收了原文里的踩坑经验,然后把这些经验应用到了新用户的场景里。使用者不需要自己再去踩一遍那些坑,AI已经替他绕过去了。

可迁移的不只是"怎么做对",还有"怎么做会错"。这是邬师这篇文章让我意识到的一个新维度。

从"读到"到"转化",中间隔了几个小时

传统知识扩散的节奏:一个律师写好文章,发表。同行读到,觉得有道理。过几天想起来。试着用。用了几次,慢慢形成习惯。从"读到"到"用到",几周到几个月。

邬师这个案例:读到文章,当天丢给AI,AI拆解框架,生成463行指引和11项转化方案,他立刻在项目上做了调整——而且用同一套方法论写了文章,用同一条发布管线推到了草稿箱。

可能就几个小时。

这不是"阅读"。这是操作系统的热更新

两个做了很多年一线业务的律师之间,通过一篇文章加一台AI,完成了一次接近实时的认知传输。文章是载体,AI是加速器。真正的工作——"转化"——发生在人身上。

我把它叫作二阶影响。一阶影响靠内容吸引力,读者觉得"有道理"——谁都能拿到。二阶影响靠方法论的可迁移性,读者不光"知道了一个观点",而是"获得了一个能让AI执行的操作系统"。463行工作指引和11项转化方案,是二阶影响已经跑通的信号。

三种能力,缺一个都不行

邬师问我怎么看这个事。我回了句:"让AI去理解AI,你只需要有框架、有意识、会行动。"

这三种能力,邬师在这一件事里全展现了。

有框架。 不是背诵"什么是Agent""MCP是什么协议"。而是能识别——看到一个工作场景,判断出里面什么东西可以被结构化。邬师读到我的文章,没有停留在"写得好",他看到了里面有一个可被提取的框架、一套可被复用的规则、一个可被迁移的系统。这种识别力,不是技术能力,是一个成熟律师对"结构"的直觉。

有意识。 读到好文章,大多数人的第一反应是"有道理""收藏了"。邬师的第一反应是"打开 Claude Code 的对话框,把整篇文章投喂进去"。这不是技术动作,这是一种"可迁移性嗅觉"——看到好东西的默认反应不是赞美,而是"能不能让AI消化?能不能嵌入我的工作流?"

会行动。 框架和意识只停在脑子里,没有任何产出。邬师让我最震动的是——463行指引、11项转化方案、一篇公开发表的文章。他读完文章做的事不是转发群聊,不是写读后感。他直接打开AI,输入指令,生成方案,立刻执行。把认知蒸馏跑通了闭环。

一个简单的判断标准:一个人是不是真的"在用AI",不是看他装了多少工具,是看他碰到新方法时的第一反应。"先收藏以后再看"(通常等于永不再看),还是"马上丢给AI试试能不能用"?两种反射弧的差距,一年之内会拉出巨大的职业能力鸿沟。

大律师的60%规则

邬师说了一句让有些专业人士可能坐不住的话:"虽然不一定能理解原创100%,但60%以上应该AI能理解。"

我听到这句的时候想的是——这个人跨过那道门槛了。

传统专业主义的逻辑根深蒂固:你必须全面理解,才能行动。不全面就动手,等于"不专业"。法律行业尤甚——法律人的专业身份建立在"比别人懂得更多、更准确、更全面"之上。承认"我只理解60%",在很多场合等于承认自己不合格。

但说这话的是邬师。一个建了二十多年功力的律师,在法律专业上没有"不够"的问题。他不是在说"我不够好"。他是在描述一种新的认知策略:把"理解"这件事本身也外包一部分给AI

理解不是二元的——不是要么全懂要么全不懂。理解是一个可以分布式完成的连续工程。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 220">
  <rect width="600" height="220" fill="#fff" rx="4"/>
  <defs>
    <marker id="arr2" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
      <path d="M0,0 L8,3 L0,6 Z" fill="#333"/>
    </marker>
  </defs>
  <text x="300" y="28" text-anchor="middle" font-size="15" font-weight="700" fill="#222">两条学习路径对比</text>
  <rect x="20" y="48" width="265" height="28" rx="3" fill="#f0f0f0" stroke="#999" stroke-width="1"/>
  <text x="152" y="67" text-anchor="middle" font-size="12" fill="#555">传统路径</text>
  <rect x="20" y="82" width="120" height="36" rx="3" fill="#fff" stroke="#999" stroke-width="1"/>
  <text x="80" y="105" text-anchor="middle" font-size="12" fill="#333">学懂全部原理</text>
  <line x1="140" y1="100" x2="166" y2="100" stroke="#333" stroke-width="1.2" marker-end="url(#arr2)"/>
  <rect x="168" y="82" width="117" height="36" rx="3" fill="#fff" stroke="#999" stroke-width="1"/>
  <text x="226" y="105" text-anchor="middle" font-size="12" fill="#333">动手实践</text>
  <text x="152" y="140" text-anchor="middle" font-size="10" fill="#999">理解 → 行动(线性)</text>
  <rect x="315" y="48" width="265" height="28" rx="3" fill="#333" stroke="#333" stroke-width="1"/>
  <text x="447" y="67" text-anchor="middle" font-size="12" fill="#fff">AI 辅助路径</text>
  <rect x="315" y="82" width="120" height="36" rx="3" fill="#fff" stroke="#333" stroke-width="1"/>
  <text x="375" y="105" text-anchor="middle" font-size="12" fill="#333">有大致方向</text>
  <line x1="435" y1="100" x2="461" y2="100" stroke="#333" stroke-width="1.2" marker-end="url(#arr2)"/>
  <rect x="463" y="82" width="117" height="36" rx="3" fill="#fff" stroke="#333" stroke-width="1"/>
  <text x="521" y="105" text-anchor="middle" font-size="12" fill="#333">借AI动手</text>
  <text x="447" y="140" text-anchor="middle" font-size="10" fill="#999">行动 → 理解(循环)</text>
  <path d="M521,118 Q568,118 568,150 Q568,182 521,182 L463,182" fill="none" stroke="#333" stroke-width="1" stroke-dasharray="4,3"/>
  <text x="575" y="155" text-anchor="end" font-size="10" fill="#666">反向理解</text>
  <text x="300" y="195" text-anchor="middle" font-size="10" fill="#999">新人说"60%够了"需要警惕。邬师说"60%够了"是清醒的效率自觉。</text>
</svg>

邬师的"60%够了",不是降低标准,是换了一条效率更高的路。真正难的不是"怎么学到100%",而是"怎么判断60%已经够用了"。这种判断力,恰恰需要深厚的专业积累做底座。一个刚入行的新人说"60%够了",你得警惕。一个做了二十多年业务的大律师说"60%够了",那是非常清醒的效率自觉。

五问反射

既然"让AI去理解AI"是一种可训练的能力,能不能提炼成标准动作?

能。邬师做这件事的时候,可能连自己都没意识到,他在几秒钟之内跑了五个问题:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 280">
  <rect width="600" height="280" fill="#fff" rx="4"/>
  <text x="300" y="28" text-anchor="middle" font-size="15" font-weight="700" fill="#222">五问反射:看到一个好东西,立刻问</text>
  <rect x="18" y="48" width="106" height="80" rx="3" fill="#fafafa" stroke="#999" stroke-width="1"/>
  <text x="71" y="70" text-anchor="middle" font-size="13" font-weight="700" fill="#333">结构化?</text>
  <text x="71" y="88" text-anchor="middle" font-size="9" fill="#666">暗知识→明确步骤</text>
  <text x="71" y="102" text-anchor="middle" font-size="9" fill="#666">本质不可结构</text>
  <text x="71" y="116" text-anchor="middle" font-size="9" fill="#666">还是没试过?</text>
  <rect x="132" y="48" width="106" height="80" rx="3" fill="#fafafa" stroke="#999" stroke-width="1"/>
  <text x="185" y="70" text-anchor="middle" font-size="13" font-weight="700" fill="#333">提示词化?</text>
  <text x="185" y="88" text-anchor="middle" font-size="9" fill="#666">核心逻辑→指令</text>
  <text x="185" y="102" text-anchor="middle" font-size="9" fill="#666">十年经验→</text>
  <text x="185" y="116" text-anchor="middle" font-size="9" fill="#666">百行提示词?</text>
  <rect x="246" y="48" width="106" height="80" rx="3" fill="#fafafa" stroke="#999" stroke-width="1"/>
  <text x="299" y="70" text-anchor="middle" font-size="13" font-weight="700" fill="#333">流程化?</text>
  <text x="299" y="88" text-anchor="middle" font-size="9" fill="#666">输入→处理</text>
  <text x="299" y="102" text-anchor="middle" font-size="9" fill="#666">→输出→校验?</text>
  <text x="299" y="116" text-anchor="middle" font-size="9" fill="#666">不再依赖状态</text>
  <rect x="360" y="48" width="106" height="80" rx="3" fill="#fafafa" stroke="#999" stroke-width="1"/>
  <text x="413" y="70" text-anchor="middle" font-size="13" font-weight="700" fill="#333">工具化?</text>
  <text x="413" y="88" text-anchor="middle" font-size="9" fill="#666">能上代码?</text>
  <text x="413" y="102" text-anchor="middle" font-size="9" fill="#666">不能→Excel+AI</text>
  <text x="413" y="116" text-anchor="middle" font-size="9" fill="#666">能不能拼出来?</text>
  <rect x="474" y="48" width="108" height="80" rx="3" fill="#fafafa" stroke="#999" stroke-width="1"/>
  <text x="528" y="70" text-anchor="middle" font-size="13" font-weight="700" fill="#333">嵌入工作流?</text>
  <text x="528" y="88" text-anchor="middle" font-size="9" fill="#666">落在哪个高频</text>
  <text x="528" y="102" text-anchor="middle" font-size="9" fill="#666">动作上?不能</text>
  <text x="528" y="116" text-anchor="middle" font-size="9" fill="#666">嵌入=用不起来</text>
  <line x1="124" y1="88" x2="130" y2="88" stroke="#ccc" stroke-width="0.8"/>
  <line x1="238" y1="88" x2="244" y2="88" stroke="#ccc" stroke-width="0.8"/>
  <line x1="352" y1="88" x2="358" y2="88" stroke="#ccc" stroke-width="0.8"/>
  <line x1="466" y1="88" x2="472" y2="88" stroke="#ccc" stroke-width="0.8"/>
  <text x="300" y="153" text-anchor="middle" font-size="11" fill="#333">↓</text>
  <rect x="205" y="163" width="190" height="32" rx="16" fill="#333"/>
  <text x="300" y="184" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">消费模式 → 工程模式</text>
  <text x="300" y="215" text-anchor="middle" font-size="10" fill="#999">不需要懂代码,不需要搭Agent。只需要拨一个开关</text>
  <text x="300" y="235" text-anchor="middle" font-size="10" fill="#666">邬师:"能结构化吗?能。能提示词化吗?能。能嵌入我的写作流程吗?能。好,开干。"</text>
</svg>

邬师那句指令——"请基于陈石律师的这篇文章,为我整理一套律师使用 Claude Code 的工作指引,并对我当前的项目配置做一份转化方案"——就是这个反射的产物。三要素齐全:源材料、输出格式、应用场景。不需要学提示词工程,需要一个律师对"什么叫明确的指令"的本能理解。

不是所有好东西都要被工程化

写到这,有必要留一扇退出的门。

认知蒸馏不是"所有东西都应该被蒸馏"。有些东西的价值恰恰在于不能——一篇文学作品的阅读快感、一段音乐的情感共鸣、朋友聊天里不可复制的温度。把一切变成"可被AI解析的认知模型",最后你可能得到一堆高效工具,但失去了点更重要的东西。

保留一些"只读不拆"的阅读。保留一些纯粹为了看懂、不是为了挪用的学习。

同样,"60%够了"不永远等于"60%够了"。医疗诊断、司法裁判、桥梁结构设计——在这些领域,"先动手再反向理解"的路径不适用,试错成本不可接受。

工程化思维有一条清晰的适用边界:它适用于试错成本可承受、反馈周期足够短的领域。法律工作中的大多数"知识工作"——写作、分析、研究、沟通——落在边界内。但不是全部。

被升级的不是工具,是反射弧

回到邬师那篇文章。

他在文末写了一段话。他说感谢,说"构建者精神"——一个他自己命名的新概念。说"以身试法,莫过于此"——他写这篇文章用的就是从我那篇文章里蒸馏来的发布管线。

但整篇文章最有分量的是开头那句自述:

不是收藏。不是浮窗。是直接打开 Claude Code 的对话框。

在四明山法师AI夜校课程里我反复讲一件事:从Chatbot到工作台,再到Claude Code,看起来是工具在升级。但工具只是外壳。真正被升级的东西,是你看到问题时的第一反应——大脑里那个反射弧。

看到一个好方法,你的默认反应是什么?

"收藏以后再看"?还是"打开AI,现在试试"?

两年前这两个答案的区别只是习惯好坏。今天它们导致的职业能力差距已经开始拉开。一年以后,这个差距会大到没法用加班或者勤奋来弥补。

别人的操作系统在热更新,你的还在等下一个大版本发布。

邬师这整件事——463行工作指引、11项转化方案、一篇用自己的材料和视角写就的文章——本质上就是一次热更新。没重装操作系统,没从零学编程。他只是把一篇结构化的文章喂给AI,让AI帮他在自己的领域里长出了新东西。

这就是工程化的真实样子。不写代码的人,也可以做这件事。

只需要学会一件事:把你自己的经验,写成别人和AI能接得住、拆得开、用得起来的样子。 然后把别人的经验,用同样的方式,变成你自己的。


作者简介: 陈石律师,浙江海泰律师事务所副主任、高级合伙人、房地产与建设工程部主任,宁波市律师协会副秘书长、第七届宁波仲裁委员会仲裁员,聚焦建筑房地产、投融资、并购重组及商事争议解决。曾获多家法律媒体与专业机构认可,荣登 LegalOne 2025 中国区建工及房地产实务先锋 45 强、律新社 2025 年度管理合伙人 20 佳(华东),入选《商法》The A-List 法律精英,获评 ALB China 区域市场十五佳长三角地区律师新星,并获律新社 2024 年度并购领域品牌之星。长期为万科、华润置地、信达地产、保利置业、招商蛇口、中海地产等企业提供法律服务,承办"首宗百亿地王""长春第一高楼""台州第一高楼"等代表性项目,累计服务项目投资额超千亿。近年来持续推动 AI 与法律实务融合,强调以结构化方法打通技术逻辑、法律判断与商业场景;著有《赋能法律人:AI 底层思维与应用范式》,并在多地开展相关主题讲座与分享。