!封面
上周有学员在群里问了一个问题:"陈律师,万一哪天Claude Code不能用了,我们学的这些东西不就白费了吗?"
好问题。值得认真回答。
如果答案是"对,白费了",那我们整个课程的设计逻辑就出了问题——五节课里整整三节半讲Claude Code。这个工具明天消失,学员的投入就打水漂了?
我的答案是:不会。你学到的技能,一分都不会浪费。
这不是安慰。是Agent这个品类的底层架构决定的。
Agent = 模型 + Harness
任何一个AI Agent工具,拆开来看,就两个部分。
模型(Model),是你雇的员工。它提供智力——理解你的问题、检索知识、生成回答、执行任务。模型可以换。今天用DeepSeek,明天用GPT,后天用国产开源模型。员工能换,能力有高低,基本职能是一样的。
Harness,是你的管理制度。它决定了:员工接到任务后按什么流程走、能调用哪些工具、参考哪些规则、输出什么格式、什么情况下需要向你请示。Harness包括规则文件、技能定义、外部工具接口、工作区结构、权限控制和反馈循环。
五节课,四节半在讲Harness。
不是偏爱。是模型谁都能用,Harness才是差距的来源。
现在的模型,中国的美国的,做一般法律工作的智力都够用了。你使用大模型的差异,更多来自你对整个AI框架的理解——对Harness的理解。它是放大人与人之间应用大模型不同呈现的那个杠杆。
从Claude Code到Codex:一键映射
第五节课上,我给学员做了一个现场演示。
先让大家看Codex的界面——OpenAI的Agent产品,桌面端,图形化,跟Claude Code的命令行风格完全不同。看起来像两个东西。
然后我开始做映射。
Claude Code的核心控制文件叫CLAUDE.md,Codex的叫AGENTS.md。名字不同,写法完全一样——都是Markdown,都是规则描述,都在每次任务启动时自动加载。
Claude Code有Skills——把重复性工作封装成标准化操作手册。Codex也有。Skills文件在两个Agent之间几乎可以直接复用,本质上就是一段Markdown格式的岗位说明书。唯一的区别:Claude Code的项目级Skills放在.claude/skills/,Codex的放在.codex/skills/。
MCP(Model Context Protocol)——让Agent调用外部工具和数据的接口——在两个产品中完全通用。它本来就是一个跨产品的开放标准。
Subagent、Hooks、CLI工具调用——两个产品都有,逻辑完全一致。
讲到这里,学员的表情开始变了。
然后我做了最关键的一步:在某个项目目录下新建了一个AGENTS.md文件,里面只写了一句话——"请读取CLAUDE.md,并遵循其中的所有规则。"
启动Codex,加载这个项目。
它自动读了AGENTS.md,顺着指令找到了CLAUDE.md,加载了我在Claude Code里搭建的整套工作区规则——合同审核流程、风险分级标准、输出模板。全部生效。
一个文件,一句话,两个Agent之间就通了。
不是什么高深的技术。只是一个设计选择:Agent产品的创建者们,不约而同地采用了同一套架构范式。
趋同不是巧合
Claude Code长期排名Agent领域第一。它开创并引领了这个品类的范式。后来的产品——Codex、Gemini CLI、开源社区的OpenCode、国内的龙虾——底层架构上,基本沿袭同一条路。
规则文件 → 技能封装 → 外部工具接口 → 并发代理 → 事件触发。
这五个要素构成的Harness体系,正在成为Agent产品的标准配置。
甚至连前端界面都开始趋同。VS Code最近推出了一个叫"智能体窗口"的新模式——左边工作区列表和技能管理,中间对话窗口,右边文件预览。你把它的截图和Codex桌面版放在一起,去掉Logo,很难分辨谁是谁。
当一个品类的底层架构和前端交互都开始收敛,你学习的不再是"某个产品的使用方法"——你学习的是"这个品类的操作逻辑"。
就像你会开大众,换丰田只需要适应一下按钮位置。驾驶逻辑是一样的。
法律工作的天然适配
法律工作天然适合这套方法论。
三个特征:标准化程度高(起诉状、代理词、法律意见书都有固定结构),输出质量要求高(格式、论证、引用一点不能错),重复模式多(同类案件的审查要点、风险清单、法律依据高度复用)。
这三个特征,恰好是Harness最擅长的领域。
一个建设工程案件的争议焦点分析框架,写成一套工作区规则,配上法条和司法解释作为知识库,再用Skill定义标准输出格式——这套东西,Claude Code能跑,Codex能跑,未来出现的任何Agent都能跑。
你投在规则搭建上的时间,不是沉没成本。是可迁移资产。
这就是我反复说的"法律与AI的双语者"的真正含义:不是学一个工具,是掌握一种翻译能力——把法律问题翻译成AI能理解的指令体系,把法律工作流程翻译成Agent能执行的操作规程。
这种能力,不绑定任何一个产品。
诚实地说
不是所有Agent都完全一样。有差异——交互方式不同(命令行 vs 桌面端)、插件生态不同、模型接入策略不同、对国内用户的门槛不同。
但这些差异在表皮。在骨架层面——也就是Harness的五要素体系——一致性远大于差异性。
学会了一套工作区规则的设计方法,迁移到另一个Agent的成本,不是"重学一遍",是"改一下文件名和目录结构"。这不是乐观估计,是我在两个产品之间实际切换后的真实体感。
还有一个事实:即使不切换工具,Claude Code本身也支持接入第三方模型。通过CCSwitch这个小工具,你可以把Claude Code的后端模型从Claude换成DeepSeek、换成GPT、换成任何你喜欢的模型。工具还是那个工具,Harness还是那套Harness,员工可以随便换。
所以我跟学员说:哪怕Anthropic这家公司某一天真的倒闭了,你失去的是一个员工,你没有失去管理能力。
四明山法师AI夜校第三期即将开放报名。
我们选Claude Code作为教学工具,不是因为它唯一——恰恰是因为它把Agent的方法论暴露得最清晰。每一个Harness组件都有明确的文件位置、清晰的加载逻辑和丰富的社区实践。用它学会了方法论,再去看Codex、Gemini CLI、任何新出来的Agent,一个下午就能上手。
你在这里学到的是方法。方法不会过时。
培养法律与AI的双语者。第三期见。
作者简介: 陈石律师,浙江海泰律师事务所副主任、高级合伙人、房地产与建设工程部主任,宁波市律师协会副秘书长、第七届宁波仲裁委员会仲裁员,聚焦建筑房地产、投融资、并购重组及商事争议解决。曾获多家法律媒体与专业机构认可,荣登 LegalOne 2025 中国区建工及房地产实务先锋 45 强、律新社 2025 年度管理合伙人 20 佳(华东),入选《商法》The A-List 法律精英,获评 ALB China 区域市场十五佳长三角地区律师新星,并获律新社 2024 年度并购领域品牌之星。长期为万科、华润置地、信达地产、保利置业、招商蛇口、中海地产等企业提供法律服务,承办"首宗百亿地王""长春第一高楼""台州第一高楼"等代表性项目,累计服务项目投资额超千亿。近年来持续推动 AI 与法律实务融合,强调以结构化方法打通技术逻辑、法律判断与商业场景;著有《赋能法律人:AI 底层思维与应用范式》,并在多地开展相关主题讲座与分享。四明山法师 AI 夜校(legalAGI.cn)发起人。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 320">
<defs>
<style>
text { font-family: "PingFang SC", "Microsoft YaHei", sans-serif; }
</style>
</defs>
<rect width="600" height="320" fill="#fff"/>
<text x="300" y="32" text-anchor="middle" font-size="18" font-weight="700" fill="#1a1a1a">Agent Harness 五要素体系</text>
<!-- 中心:Harness -->
<rect x="215" y="120" width="170" height="50" rx="8" fill="#1a1a1a"/>
<text x="300" y="150" text-anchor="middle" font-size="16" font-weight="700" fill="#fff">Harness</text>
<!-- 五个要素 -->
<rect x="30" y="55" width="155" height="42" rx="4" fill="#f5f5f5" stroke="#ccc" stroke-width="1"/>
<text x="107" y="72" text-anchor="middle" font-size="12" font-weight="700" fill="#444">📄 规则文件</text>
<text x="107" y="88" text-anchor="middle" font-size="10" fill="#888">CLAUDE.md / AGENTS.md</text>
<line x1="185" y1="76" x2="215" y2="145" stroke="#ccc" stroke-width="1"/>
<rect x="30" y="170" width="155" height="42" rx="4" fill="#f5f5f5" stroke="#ccc" stroke-width="1"/>
<text x="107" y="187" text-anchor="middle" font-size="12" font-weight="700" fill="#444">🔧 技能封装</text>
<text x="107" y="203" text-anchor="middle" font-size="10" fill="#888">Skills / Plugins</text>
<line x1="185" y1="191" x2="215" y2="150" stroke="#ccc" stroke-width="1"/>
<rect x="30" y="235" width="155" height="42" rx="4" fill="#f5f5f5" stroke="#ccc" stroke-width="1"/>
<text x="107" y="252" text-anchor="middle" font-size="12" font-weight="700" fill="#444">🔌 工具接口</text>
<text x="107" y="268" text-anchor="middle" font-size="10" fill="#888">MCP / CLI 调用</text>
<line x1="185" y1="256" x2="215" y2="155" stroke="#ccc" stroke-width="1"/>
<rect x="415" y="55" width="155" height="42" rx="4" fill="#f5f5f5" stroke="#ccc" stroke-width="1"/>
<text x="492" y="72" text-anchor="middle" font-size="12" font-weight="700" fill="#444">🤖 并发代理</text>
<text x="492" y="88" text-anchor="middle" font-size="10" fill="#888">Subagent / Agent Team</text>
<line x1="415" y1="76" x2="385" y2="145" stroke="#ccc" stroke-width="1"/>
<rect x="415" y="170" width="155" height="42" rx="4" fill="#f5f5f5" stroke="#ccc" stroke-width="1"/>
<text x="492" y="187" text-anchor="middle" font-size="12" font-weight="700" fill="#444">⚡ 事件触发</text>
<text x="492" y="203" text-anchor="middle" font-size="10" fill="#888">Hooks / Triggers</text>
<line x1="415" y1="191" x2="385" y2="150" stroke="#ccc" stroke-width="1"/>
<rect x="155" y="265" width="290" height="36" rx="4" fill="#e8f5e9" stroke="#a5d6a7" stroke-width="1"/>
<text x="300" y="287" text-anchor="middle" font-size="12" font-weight="700" fill="#2e7d32">→ 控制模型输出 → 稳定、可预期的工作成果</text>
<text x="300" y="315" text-anchor="middle" font-size="10" fill="#aaa">五要素在 Claude Code / Codex / Gemini CLI 中通用</text>
</svg>