自从把 Claude Code 铺到日常开发已经整整一个月了。入行这么些年,见过不少“银弹”来了又走,所以一开始就没抱太大期望。但这次确实不一样——AI 写代码的速度是真快,快到让你产生一种错觉:好像什么都能交给它。

直到翻车。

翻车现场

我们有个 DSL 项目,Java、TypeScript、Python 三套运行时,行为要完全对齐。做过金融系统的人都知道,“一致性”这个词在交易领域意味着什么——一个字段的精度差异,一个排序的不确定性,都可能在下游引发连锁问题。这个 DSL 虽然不直接跑在交易链路上,但设计标准是按那个思路来的。

一开始用法很粗放:开个会话,把需求丢给 Claude,让它写。交付速度确实快,但很快发现几个问题反复出现。

让它改 Java,它把 TypeScript 的测试也顺手动了。你可以理解为它“热心”,但在工程上这叫越权。让它加个语法节点,它自作主张把周边代码也重构了——没人要求它这么做,它觉得“顺便优化一下”。做交易系统的人对这种“顺便”深恶痛绝,因为每一个未经审视的变更都是潜在的风险敞口。

另一个问题是遗忘。会话聊长了,前面定好的约束就丢了。“CSV 测试文件不要动”这条规矩,说了三遍,到第四次它又改了。最要命的是不可复现。同一个任务,我写的 prompt 和同事写的 prompt,出来的东西差异很大。这在团队协作中是致命的——你不知道别人那次会话里 AI 做了什么假设,埋了什么雷。

说到底,AI 编程的核心问题不在能力,在治理。它像一个经验丰富但纪律散漫的外包——活儿能干,但你得盯着。

堆规则行不通

第一反应是在 CLAUDE.md 里堆规则。写了一大堆“不要做 X”、“必须做 Y”。效果很差。规则多了之后 AI 反而抓不住重点,而且所有规则对所有任务一刀切——改 Java 的时候也要把 Python 的规范全背一遍,上下文窗口就那么大,白白浪费在不相关的信息上。

这跟我以前见过的一种管理反模式很像:出了事就加流程,加到最后流程比干活还累,大家开始绕着流程走。规则不是越多越好,得在对的时机、对的范围内生效。

Agent Harness

后来我们换了个思路。不堆规则,搭结构。

这套东西在 Claude 官方博客里叫 Agent Harness。Harness 是马具的意思——不是要替代马,而是让马跑在正确的方向上。入行这些年越来越觉得,好的架构不是在能力层做加法,而是在约束层做减法。你不需要告诉一个好的工程师所有事情应该怎么做,你只需要把不能做的事情界定清楚,剩下的交给他自己判断。AI 也一样。

这套体系分四层,和做金融系统中台的思路其实是相通的:

上下文管理 — 相当于权限隔离。每个 Subagent 只看到自己需要的文件,只能改自己负责的代码。Java Agent 碰不到 Python 的源码,测试 Agent 碰不到业务实现。不是靠约定,是文件权限表硬隔离。在金融系统里你不会让交易模块直接读写风控模块的数据库,这里也一样。

流程编排 — 相当于工作流引擎。”实现一个新语法”这件事被拆成固定的步骤:

需求收集 → 测试设计 → Java → TypeScript → Python → 文档

每一步有明确的输入输出契约,由对应的专业 Agent 执行。跟报价系统里的 STP(Straight Through Processing)一个道理——中间不要有人工介入的模糊地带。

护栏约束 — 相当于风控规则。TDD 协议要求先红后绿;Git 规范禁止直推 master;效率守卫发现你和 AI 对同一个文件改了三轮以上,直接暂停,要求你先定方案再动手。这些规则按文件路径触发,只在相关场景下加载——改 Java 的时候不会被 Python 规范干扰。

反馈循环 — 相当于定期对账。回顾历史记录,识别低效模式,把发现沉淀回规则。这层让体系能自我校准,不至于越跑越偏。

效果

切过来之后,三语言一致性问题基本没再出过。以前经常 Java 改好了 TypeScript 忘了,现在流程编排强制逐语言闭环,通过验收才进下一个。

质量波动也收窄了。不再依赖某个人写出好 prompt。规范、流程、权限都固定下来,不同的人在不同的时间做同一件事,产出差异很小。这一点在团队扩张的时候特别有价值。

效率守卫一开始觉得多余,后来发现是个好东西。AI 最容易掉两个坑:和你陷入“改来改去”的死循环,或者聊了五轮还没写一行代码。守卫规则在这些模式出现时自动刹车,比你自己意识到问题快得多。

下两篇

这套体系里有两个核心协议,我分两篇单独写:

TDD 红绿灯 — 怎么给 AI 的编码过程装上节拍器。做过量化的人应该理解,系统化交易的核心不是策略多好,而是纪律够硬。

DDR 模式 — 让 AI 审计自身。Detect → Diagnose → Remediate,跟风控里的“发现-评估-处置”一个套路。