2026 年 7 月 8 日下午两点,我在宁波银行总行讲了一堂 AI Agent 法律场景实践课,时长三小时。讲完打开视频号,刷到腾讯 WorkBuddy 创始人汪晟杰的访谈。看了几分钟我就愣了——他在访谈里说的几乎每一个核心判断,和我刚在课上讲的完全吻合。不是"英雄所见略同"那种模糊的重合,而是概念命名、底层逻辑、甚至比喻方式都一一对应。这不是巧合。
下午的课,我从 Agent 的底层结构讲起。开场就问了一个问题:Chatbot 和 Agent 到底差在哪?
我的回答是:Chatbot 只有嘴,Agent 有手。Chatbot 能回答你,但落不了地——你得自己把答案复制粘贴到文件里。Agent 能直接在你电脑上建文件夹、写文件、改文件、调外部工具,按你设定的规则从头跑到尾。
晚上看汪晟杰的访谈,他的表述是:WorkBuddy 不是聊天工具,是"AI 打工人"。
同一句话,两种说法。
Agent = 模型 + Harness。这是我下午课程的核心公式,也是汪晟杰的产品哲学。
下午我在白板上写了这个等式:Agent = 模型 + Harness。 模型是大脑,Harness 是控制框架——原意是马具,烈马需要缰绳和嚼子,大模型也一样。大模型天生不确定,同样的输入大概率产出不同的输出。这在闲聊场景下没什么,在工作场景下是致命的。Harness 的作用就是控制这种不确定性,让输出稳定、可预期、贴合你的工作场景。
汪晟杰的访谈里,几乎是同一个判断。他说:同一个模型,用不同的控制框架,效果天差地别。WorkBuddy 的底层来自 CodeBuddy——腾讯做了三年的 AI 编程工具——把 AI Coding 的任务执行范式、工具调用能力、上下文管理迁移到办公场景。
一个是从使用者端讲"为什么 Harness 比模型重要",一个是从产品端讲"为什么我们要把 AI Coding 的基建复用到办公场景"。同一个逻辑的两面。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 280">
<rect width="600" height="280" fill="#fff" rx="6"/>
<text x="300" y="30" text-anchor="middle" font-size="16" font-weight="700" fill="#333">两个视角,同一个结论:Harness 比模型更重要</text>
<rect x="20" y="55" width="260" height="30" rx="3" fill="#333"/>
<text x="150" y="75" text-anchor="middle" font-size="12" fill="#fff" font-weight="600">陈石(使用者视角)</text>
<rect x="20" y="95" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="111" text-anchor="middle" font-size="11" fill="#555">Agent = 模型 + Harness(马具)</text>
<text x="150" y="124" text-anchor="middle" font-size="9" fill="#999">烈马需要缰绳控制方向</text>
<rect x="20" y="137" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="153" text-anchor="middle" font-size="11" fill="#555">当前模型能力已经够用</text>
<text x="150" y="166" text-anchor="middle" font-size="9" fill="#999">纠结哪个模型更好意义不大</text>
<rect x="20" y="180" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="196" text-anchor="middle" font-size="11" fill="#555">规则是一步一步生长出来的</text>
<text x="150" y="209" text-anchor="middle" font-size="9" fill="#999">每次纠正沉淀一条规则</text>
<rect x="20" y="223" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="239" text-anchor="middle" font-size="11" fill="#555">Agent 是工作伙伴,不是工具</text>
<text x="150" y="252" text-anchor="middle" font-size="9" fill="#999">像带实习生一样教它</text>
<text x="300" y="80" text-anchor="middle" font-size="22" fill="#999">⟷</text>
<text x="300" y="118" text-anchor="middle" font-size="22" fill="#999">⟷</text>
<text x="300" y="162" text-anchor="middle" font-size="22" fill="#999">⟷</text>
<text x="300" y="205" text-anchor="middle" font-size="22" fill="#999">⟷</text>
<text x="300" y="243" text-anchor="middle" font-size="22" fill="#999">⟷</text>
<rect x="320" y="55" width="260" height="30" rx="3" fill="#333"/>
<text x="450" y="75" text-anchor="middle" font-size="12" fill="#fff" font-weight="600">汪晟杰(产品端视角)</text>
<rect x="320" y="95" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="111" text-anchor="middle" font-size="11" fill="#555">同一个模型,不同控制框架,效果天差地别</text>
<text x="450" y="124" text-anchor="middle" font-size="9" fill="#999">WorkBuddy 底座是 CodeBuddy 的基建</text>
<rect x="320" y="137" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="153" text-anchor="middle" font-size="11" fill="#555">模型一定不会拉齐</text>
<text x="450" y="166" text-anchor="middle" font-size="9" fill="#999">训练数据、反馈、场景共同塑造模型</text>
<rect x="320" y="180" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="196" text-anchor="middle" font-size="11" fill="#555">工作区记忆是核心护城河</text>
<text x="450" y="209" text-anchor="middle" font-size="9" fill="#999">换台电脑就不懂了</text>
<rect x="320" y="223" width="260" height="35" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="239" text-anchor="middle" font-size="11" fill="#555">AI 是徒弟,不是主人</text>
<text x="450" y="252" text-anchor="middle" font-size="9" fill="#999">人设目标、定边界、做监督、验结果</text>
</svg>
关于"模型不会拉齐"——我们给出了同一个判断,用了同一个比喻。
下午课上有人问:现在模型这么多,该选哪个?
我的回答是:头部模型在法律场景里都够用了。95 分和 100 分的差距,远没有"你怎么用"的差距大。我更建议你把精力放在建规则上,而不是追模型。
汪晟杰的访谈里有一个更彻底的表述:模型一定不会拉齐。他的理由是——大模型不是静态参数,而是训练数据、用户反馈、应用场景、后训练体系共同塑造的动态系统。他用了一个比喻:训练一只小狗听话,需要持续反馈和奖励,但把这智商迁移到另一只狗身上,很难。
他甚至点出了一个我课上没展开讲的逻辑:国内大模型厂商都在做 CLI 和 Agent 产品——Claude Code、Codex、CodeBuddy、WorkBuddy、Trae——因为这些产品不只是用户工具,更是模型进化的数据入口。谁拥有更高频、更真实的用户任务场景,谁就拥有更好的模型进化土壤。
这个判断比我课上的更锋利。但我课上的结论和他殊途同归:不要追模型,要建自己的 harness。
工作区规则不是写出来的,是长出来的。这是下午课的核心方法论,也是 WorkBuddy 的产品设计前提。
下午课上我花了最长的时间讲一件事:怎么从零构建一个工作区。
我在现场演示了一个完整流程——新建"法律咨询"文件夹,用 WorkBuddy 打开,在对话框里描述需求:
"每次法律咨询用时间+关键词新建子文件夹。先理解问题,拆解,检索本地知识库,按权威等级规则做研究。然后调用北大法宝 MCP 核验所有法条的准确性。所有来源标注标签。默认输出 markdown 文件。"
三分钟,WorkBuddy 自动生成了完整的规则文件。
然后我现场测试了一个问题——"担保保证期间的法律规定"。Agent 按规则新建了文件夹,拆分了子问题,检索了本地知识库,调用了北大法宝,输出了结构化解答。全程不需要我写一行代码。
但重点不在"三分钟建工作区"。重点在接下来的步骤:发现问题,迭代规则。
第一次测试跑完,我发现两个问题:原始问题没有存档,"结论先行"的表述不对我的口味。就在对话框里说了一句——"原始问题必须存档。'结论先行'改成'结论'。"下一次测试,全改过来了。
我在课上反复说:规则不是一蹴而就的,是一步一步生长出来的。每次纠正一次,规则就厚一层。一个月后,你就会有一个完全适配你工作习惯的规则体系。 这就是把隐性知识变成显性规则的过程——你大脑里的专业判断,通过一次次纠错,蒸馏成了 Agent 的行为规则。
汪晟杰的访谈里没有讲这么细的操作,但他产品设计的底层假设和我的方法论完全一致。他说 WorkBuddy 做 PPT 做得好,不是因为模型会做 PPT,而是因为它在用户的电脑里积累了资料、风格、偏好——"我的电脑换到别人那边去,它就不懂了。"这就是工作区记忆。他说 Vibe Coding 的核心是"创意为导向,你的想法能跟 AI 说明白,就能不断对话、记录过程、形成产物"。这不就是"每次纠正一次,规则就厚一层"?
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 220">
<rect width="600" height="220" fill="#fff" rx="6"/>
<text x="300" y="30" text-anchor="middle" font-size="16" font-weight="700" fill="#333">规则生长的循环</text>
<rect x="40" y="55" width="120" height="45" rx="6" fill="#333"/>
<text x="100" y="73" text-anchor="middle" font-size="12" fill="#fff" font-weight="600">描述需求</text>
<text x="100" y="89" text-anchor="middle" font-size="9" fill="#ccc">自然语言即可</text>
<text x="175" y="82" text-anchor="middle" font-size="16" fill="#999">→</text>
<rect x="195" y="55" width="120" height="45" rx="6" fill="#f0f0f0" stroke="#bbb" stroke-width="1"/>
<text x="255" y="73" text-anchor="middle" font-size="12" fill="#444">自动生成规则</text>
<text x="255" y="89" text-anchor="middle" font-size="9" fill="#999">.workbody 文件夹</text>
<text x="330" y="82" text-anchor="middle" font-size="16" fill="#999">→</text>
<rect x="350" y="55" width="120" height="45" rx="6" fill="#f0f0f0" stroke="#bbb" stroke-width="1"/>
<text x="410" y="73" text-anchor="middle" font-size="12" fill="#444">测试验证</text>
<text x="410" y="89" text-anchor="middle" font-size="9" fill="#999">跑真实任务</text>
<text x="485" y="82" text-anchor="middle" font-size="16" fill="#999">→</text>
<rect x="40" y="120" width="120" height="45" rx="6" fill="#f0f0f0" stroke="#bbb" stroke-width="1"/>
<text x="100" y="138" text-anchor="middle" font-size="12" fill="#444">发现问题</text>
<text x="100" y="154" text-anchor="middle" font-size="9" fill="#999">漏步骤/表述不对</text>
<text x="175" y="147" text-anchor="middle" font-size="16" fill="#999">→</text>
<rect x="195" y="120" width="120" height="45" rx="6" fill="#333"/>
<text x="255" y="138" text-anchor="middle" font-size="12" fill="#fff" font-weight="600">一句话纠正</text>
<text x="255" y="154" text-anchor="middle" font-size="9" fill="#ccc">自然语言即可</text>
<text x="330" y="147" text-anchor="middle" font-size="16" fill="#999">→</text>
<rect x="350" y="120" width="120" height="45" rx="6" fill="#f0f0f0" stroke="#bbb" stroke-width="1"/>
<text x="410" y="138" text-anchor="middle" font-size="12" fill="#444">规则自动更新</text>
<text x="410" y="154" text-anchor="middle" font-size="9" fill="#999">下次生效</text>
<text x="485" y="147" text-anchor="middle" font-size="16" fill="#999">↺</text>
<rect x="40" y="180" width="550" height="28" rx="4" fill="#fafafa" stroke="#ddd" stroke-width="1"/>
<text x="315" y="199" text-anchor="middle" font-size="11" fill="#666">每一次纠正 = 一条隐性知识被显性化 = 一条规则被沉淀 = Agent 越来越像你</text>
</svg>
一个观点,两个独立来源,同日发表。
这件事最有意思的地方,不是汪晟杰的观点和我一致——而是我们是从完全不同的起点,走到了完全相同的结论。
我从一个律师的角度出发。两年前开始用 Claude Code,从命令行学起,踩了无数坑。慢慢摸索出一套方法论:按场景建工作区,写 CLAUDE.md,拆 Skill,积累 memory,每次纠错就沉淀一条规则。这套方法不是看论文看出来的,是用了两年 Agent、做了几百次法律咨询、审了无数合同之后,自然形成的。
汪晟杰从一个产品副总裁的角度出发。他在腾讯做了三年 CodeBuddy,看着 AI Coding 的基建越来越厚,然后决定把这套能力外溢到办公场景。他的方法论不是写文章写出来的,是产品迭代、用户反馈、工程实践逼出来的。
一个法律人,一个产品人。一个从使用者端往上拱,一个从产品端往下探。在同一天,说了同一套话。 这意味着什么?意味着这不是某个人的偏好或运气,而是 Agent 产品的底层规律——不管你是谁、从哪个方向进入,只要你深入到这个层面,你都会得出同样的结论。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 200">
<rect width="600" height="200" fill="#fff" rx="6"/>
<text x="300" y="30" text-anchor="middle" font-size="16" font-weight="700" fill="#333">独立到达相同结论的两条路径</text>
<rect x="20" y="55" width="260" height="28" rx="3" fill="#333"/>
<text x="150" y="74" text-anchor="middle" font-size="12" fill="#fff" font-weight="600">陈石(法律人 / 使用者)</text>
<rect x="20" y="92" width="260" height="28" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="110" text-anchor="middle" font-size="10" fill="#555">用了两年 Agent → 从命令行学起 → 踩坑摸索</text>
<rect x="20" y="128" width="260" height="28" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="146" text-anchor="middle" font-size="10" fill="#555">按场景建工作区 → 写规则 → 每次纠错就迭代</text>
<rect x="20" y="164" width="260" height="28" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="150" y="182" text-anchor="middle" font-size="10" fill="#555">结论:Harness > 模型,隐性知识显性化是核心路径</text>
<text x="290" y="105" text-anchor="middle" font-size="14" fill="#999">→ 相同的底层规律 ←</text>
<text x="290" y="140" text-anchor="middle" font-size="14" fill="#999">→ 相同的核心结论 ←</text>
<rect x="320" y="55" width="260" height="28" rx="3" fill="#333"/>
<text x="450" y="74" text-anchor="middle" font-size="12" fill="#fff" font-weight="600">汪晟杰(腾讯 / 产品人)</text>
<rect x="320" y="92" width="260" height="28" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="110" text-anchor="middle" font-size="10" fill="#555">做了三年 CodeBuddy → AI Coding 基建积累</text>
<rect x="320" y="128" width="260" height="28" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="146" text-anchor="middle" font-size="10" fill="#555">把基建外溢到办公场景 → 包装为普通人可用的产品</text>
<rect x="320" y="164" width="260" height="28" rx="3" fill="#f5f5f5" stroke="#ddd" stroke-width="1"/>
<text x="450" y="182" text-anchor="middle" font-size="10" fill="#555">结论:工作区记忆是护城河,模型不会拉齐</text>
</svg>
对法律行业意味着什么
下午的课,宁波银行的同事们提了很多实务问题:长周期案件怎么保持状态?幻觉怎么控制?保密怎么处理?Agent 权限太大怎么办?
我的回答归结起来是一个方向:法律人要从"亲手做每一步"转向"设计流程、把关依据、承担判断"。
汪晟杰的访谈给了一个产品端的佐证。他说 WorkBuddy 的高频场景之一是"把复杂文字变成 HTML 报告和交互小应用"。他说未来的 Agent 不是聊天框,而是一个持续运行的工作体——电脑上执行任务,手机上查看进度,云端保存状态。
对法律行业来说,这意味着:真正有价值的法律 AI 产品,不是"法律 ChatGPT",而是一组能持续理解案件背景、客户偏好、律师风格和交付标准的 Agent 系统。它们的关键不是模型能力,而是是否接入了资料库、是否理解个人风格、是否能长期记忆、是否能嵌入真实办案流程。
这也是我在课上反复讲的最后一句话:你的规则,就是你的核心竞争力。 工具可以换,模型可以换,但你沉淀的规则和数据是你的个人资产。汪晟杰的产品可以做得很漂亮,但它只能给你通用预设。只有你自己,在使用中发现问题、纠错、迭代,才能养出一个真正贴合你工作场景的 Agent。
模型不是终局,Harness 才是。
工具不是终局,规则才是。
一次生成不是终局,长期记忆和反馈闭环才是护城河。
作者简介: 陈石律师,浙江海泰律师事务所副主任、高级合伙人、房地产与建设工程部主任,第十届宁波市律师协会常务理事、第七届宁波仲裁委员会仲裁员,聚焦建筑房地产、投融资、并购重组及商事争议解决。曾获多家法律媒体与专业机构认可,荣登 LegalOne 2025 中国区建工及房地产实务先锋 45 强、律新社 2025 年度管理合伙人 20 佳(华东),入选《商法》The A-List 法律精英,获评 ALB China 区域市场十五佳长三角地区律师新星,并获律新社 2024 年度并购领域品牌之星。长期为万科、华润置地、信达地产、保利置业、招商蛇口、中海地产等企业提供法律服务,承办"首宗百亿地王""长春第一高楼""台州第一高楼"等代表性项目,累计服务项目投资额超千亿。近年来持续推动 AI 与法律实务融合,强调以结构化方法打通技术逻辑、法律判断与商业场景;著有《赋能法律人:AI 底层思维与应用范式》,并在多地开展相关主题讲座与分享。四明山法师 AI 夜校(legalAGI.cn)发起人。