一份合约,每个模型:为AI编程代理打造运作标准
我想分享最近做的一项工程,它改变了我对使用AI编程代理(AI coding agents)的看法。这件事始于我脱口而出的一个天真的问题:"我能不能让Sonnet和Opus表现得像前沿模型一样?" 最终的结果比这个问题本身更有价值。
简短版:你无法让较小的模型达到较大模型的能力。那是权重的差异,任何提示都无法改变权重。但能力并不是区分一次好的代理调用和一次平庸调用的唯一因素。另一半是行为准则:代理如何沟通,何时停止,如何证明其工作,在决策前分析多么深入。而行为准则完全可移植。 你只需编写一次,将其作为系统提示层应用,然后每个模型层级——昂贵的和便宜的——都会按照同样的合约运作。
本文既是论述也是蓝图。所有内容都能适配你自己的技术栈;我会指出哪些是可复用的模式,哪些是我的具体示例。
坦率地说出问题
我维护一个相当庞大的代码库:一个基于区块链的金融协议、二十多个后端微服务、几个Next.js前端、智能合约以及一个Kubernetes集群。我主要通过Claude Code和一组专门的子代理来驱动大部分工作。在任何一天,架构代理运行在最强大的模型上,实现代理运行在中档模型上,快速研究代理运行在小模型上。三种不同的智能,同一个代码库,同一套标准。
摩擦从来不在于廉价模型笨,而在于廉价模型表现不同。它会在未运行测试的情况下声明任务"完成"。它会在最终消息中开篇就是一大段实现细节,而不是给出答案。它会仅凭一次grep就做出更改,而不追溯影响范围。它会在任务中途停下来,问一个它自己能解决的问题。昂贵的模型默认就能正确处理这些事;便宜的模型则需要被明确告知。