评估智能体这件事,正在从“写几个测试用例跑一遍”变成“给评估器本身装上棘轮”。AWS 和汇丰合作提出的这套被称为 Double Ratchet 的方案,核心就一句话:评分器要随智能体一起自进化,而不是拿一套固定的标准去量一个每天都在变的系统。这个思路听起来很合理,但真正落地的时候,牵涉的问题比想象中多得多——评估器进化得太快,历史成绩就失去对比意义;进化得太慢,又测不出智能体的真实能力边界。这篇文章我想从问题根源、机制设计、实操落地和避坑经验几个角度,把这套思路讲透。
1. 智能体评估为什么越来越难
1.1 智能体在进化,评估器却在“刻舟求剑”
过去几年我们评估大模型应用,基本路径是:准备一批测试题,跑一遍,算准确率,完事。这套逻辑在单轮问答时代勉强够用,但到了智能体阶段,问题开始变得尖锐。
智能体不是一个固定的模型实例,它是模型、工具调用、记忆系统、外部API、多轮规划策略的组合体。模型升级一次,工具链调整一次,提示词工程迭代一次,智能体的行为模式就会发生显著变化。这时候拿三个月前的测试集去测今天的智能体,得到的分数可能仍然很高,但高得毫无意义——因为那些测试题对应的能力场景,可能只是当前智能体能力覆盖范围内一个非常小的切片。
更麻烦的是评估结果本身在失真。一个智能体系统在迭代过程中,开发者往往会对测试集产生“隐性过拟合”:今天发现一个失败案例,修一下提示词;明天发现一个工具调用错误,调整一下路由逻辑。修来修去,智能体在测试集上的表现越来越好,但到真实业务场景里一跑,新的问题照样冒出来。这不是开发者不努力,而是静态评估集天然存在时效性和覆盖度两层天花板。
1.2 为什么不能拿静态基准硬套
有人会说,那我就把测试集做大做全,覆盖面广一点,总能测出来吧。这个想法有一定道理,但实际执行时会发现两个硬约束。
第一个约束是成本。智能体评估不是跑一遍API就完事,它涉及工具调用、外部依赖、多轮上下文。一套像样的测试集跑下来,可能几百上千个用例,每次全量评估都要真金白银地烧token和API调用费。如果评估集还持续膨胀,成本会以非线性方式增长。
第二个约束是标准漂移。所谓“正确”的答案本身在变。三个月前一个智能体需要调用某个外部数据库才能回答的问题,如今模型自身参数知识里已经有了;反过来,三个月前模型熟知的某个业务规则,如今业务变了,正确答案也应该变。静态评估集在这种动态环境下不只是“不准”,它会主动误导开发方向——你越努力拟合一套过时的标准,智能体离真实需求就越远。
所以问题的本质不是评估集不够大,而是评估体系缺少“同步进化”的机制。这就是 Double Ratchet 方案试图解决的核心矛盾:评估器本身需要一条和智能体同步滚动的轨道,而不是站在岸上刻舟求剑。
2. Double Ratchet 机制到底在讲什么
2.1 借“棘轮”这个名字的深意
如果你接触过密码学或者即时通讯协议的实现,会知道 Double Ratchet 原本是端到端加密里的一套密钥协商机制(Signal 协议的核心部分),它的设计特点是:每次消息往返都会推进一次密钥状态,而且这个推进是单向的,无法回退。每个参与方维护两条棘轮链——发送链和接收链,密钥会随对话持续更新,旧密钥无法推导新密钥,新密钥也无法还原旧密钥。
AWS 和汇丰借了这个名字来描述智能体评估的演进机制,我觉得非常准确。他们想表达的核心语义是:进化是单向的、持续的和联动的。评分器不能回退到旧版本,智能体每一次能力跃迁、每一次行为模式变化,都要在评估侧形成对应的状态推进。
这里的“双棘轮”指的是两条需要同步滚动的链条:一条是智能体的能力与行为轨迹,另一条是评估器的标准与观测手段。只有两条链一起转,评估才有意义。单独升级智能体而不同步升级评分器,等于让运动员和裁判按照两套互不认识的规则比赛。
2.2 评估器进化的三个联动部件
把“评分器进化”这句话拆开,实际操作层面至少包含三块内容。
第一块是测试集或者更准确地说,观测样本集的持续更新。旧的能力场景要保留一部分作为回归基线,新出现的能力场景要及时补充进去,已经过时或不再代表真实业务形态的样本要标记出来,而不是无限累积。很多团队做评估集维护时只做“加法”,不做“减法”,结果就是测试集越来越像历史仓库,噪音远大于信号。
第二块是评分标准的动态调整。同样的智能体输出,在不同阶段应该获得不同评价。早期版本能正确调用工具就已经值得表扬,后期版本如果还在为工具调用的成败纠结,说明评分粒度太粗了。评分标准应该从“能不能调通”演进到“调用路径是否最优”再到“工具选择背后的决策逻辑是否合理”,这个梯度的推进本身就是评分器在“进化”。
第三块是评分器本身的模型或规则更新。如果你用某个模型作为裁判(比如让一个更强的大模型给智能体输出打分),那么这个裁判模型的行为模式同样需要随评估任务的变化而微调。这里的“微调”不是让你去重新训练一个大模型,而是指通过上下文、评分模板、示例标注等方式,让裁判模型的评估偏好跟上当前智能体的能力水平。
2.3 双向进化的反馈闭环
Double Ratchet 里最关键的设计不是“评分器会进化”这个静态结论,而是进化背后的驱动信号从哪里来。
我理解的答案是:驱动信号来自智能体行为的差分观测。什么意思呢?当智能体在某类新任务上表现出能力跃迁,评估系统要能识别出这是一个新的能力维度,并决定为这个维度分配评估资源;反过来,当智能体在某个旧能力维度上持续稳定输出,评估系统要敢于降低这个维度的采样密度,把资源腾给新的观察窗口。
这要求评分器和智能体之间不仅仅是被测与测试的关系,还得有信号交互。评分器不是隔一段时间看一眼智能体表现然后更新自己,而是在智能体运行的连续过程中持续采集行为轨迹、识别行为模式变化、形成评估需求,再反馈到下一轮评估任务的设计里。
这套机制如果做得完整,本质上是在智能体之上又建立了一个“评估智能体”——它会自己判断该测什么、怎么测、用什么标准测,以及什么时候该换标准。
3. 实操落地:在自己项目里怎么搭这套进化评估机制
3.1 最低成本的第一步:行为轨迹仓库
如果你现在正在做智能体项目,想引入“评分器随智能体自进化”的思路,我建议不要一开始就搞复杂的评分模型、动态标准,先做一件事:把你拥有的所有评估数据变成结构化仓库。
具体来说,每次评估记录里除了最终打分,至少要保存这几类信息:
- 智能体当时的版本标识(模型版本、提示词版本、工具列表版本)
- 输入的任务样本及来源
- 智能体的完整推理轨迹,而不仅仅是最终输出
- 评分结果以及评分依据(为什么给这个分数)
- 评估时使用的标准版本
很多团队评估结果不可追溯,就是因为打分完了就完了,没留数据。没有历史轨迹,你连“智能体行为模式有没有变”都判断不了,更别说驱动评分器一起进化了。
行为轨迹仓库是双棘轮的第一条链——智能体的行为状态。有了它,你才能在下一次评估时对比前后差异,识别“新能力出现了”还是“旧能力退化了”。
3.2 引入影子集来驱动测试集更新
第二步,在维持原有官方测试集的基础上,建立影子集。
影子集是什么?就是在生产环境或预发环境中,以低流量比例收集真实业务请求,不透出给智能体,直接打分。它的作用是回答一个问题:官方测试集能不能代表真实业务。
智能体在官方测试集上的表现通常过度乐观,因为官方测试集里的用例都是你写过的、调试过的。影子集不一样,它来自真实用户,每一条都可能是你没想到的边界情况。方法是定期把影子集成批转正——选出那些能暴露智能体真实短板、且具备回归价值的新用例,通过可解释性审查后并入正式回归集。
这和静态测试集的最大区别是:你的测试集始终由“积分”驱动做增量迭代。
3.3 让评分标准跟着能力水平走
评分标准升级这件事,很多人第一步就卡住了,因为不知道怎么界定“标准过时了”。
我提供一个比较笨但有效的方法:能力维度阶梯法。
把智能体的关键能力拆成几个维度,每个维度定出从低到高的评价阶梯。比如工具调用这个维度,可以分成四层:
- 能识别需要调用工具的场景
- 能选择正确工具并生成合法参数
- 能在首次失败后自主纠正工具调用错误
- 能在多工具竞争场景中做出最优路径选择
每次评估时,不仅给智能体打分,也评估一下它已经稳定跨过了哪几个阶梯。当绝大多数样本都稳定停留在第4层时,说明这个维度已经不需要再作为重点观测对象,可以把评估重心转移到新出现的能力维度上。
这套方法的可操作性在于:阶梯的跨度是渐进式的,你不会面临“标准突然全变了,历史成绩全部作废”的灾难性局面——新版评分器变得越严格,必须是建立在“知道更高质量样本长什么样”的基础上逐步收紧,而不是拍脑袋换规则。
3.4 用元评估保证进化方向不跑偏
评分器进化最大的风险是走错方向、评错标准。防止这种问题要靠元评估——用一套更高的标尺来评估评分器本身。
元评估的核心手段是人工抽查。定期从评估记录中抽取一定比例的样本,由人工(或更高级的评估流程)复核评分器给出的分数是否合理。统计评分器与人工判断的一致性。如果一致性持续下降,说明评分器的进化方向出现了偏离;如果一致性保持稳定或上升,说明当前的进化方式有效。
实际操作中,我会把元评估结果设计成一个“分数可信度”指标,每次跑完自动评估,同时输出这次评估的分数可信度。如果某个维度上可信度掉到阈值以下,先不用智能体的真实表现去分析,优先调整评分器——因为不解决这个问题,评估结果信语音。
扩展一下,这套机制还可以配合信号强度管理。不是说每一次发现评分器与人工判断不一致就立刻推翻评分器重新设计,而是累积足够多的不一致样本,从统计层面确认偏离模式的普遍性,再对评分模板进行针对性修订。
4. 常见问题与排查技巧实录
4.1 历史成绩无法对比怎么办
“评分器动过一次之后,新分数和旧分数不可比,回归报表没法看了”这个是我被问得最多的问题。说实话,这其实是进化机制的必然代价,但可以通过设计来降低伤害。
我的做法是:保留多套分数并存的策略。每次自动评估时,用新评分器跑完整流程,同时针对本次评估覆盖的样本,额外用上一版本的评分器跑一遍。表格里同时展示新旧两套分数,标注差异。开发团队关注的是趋势,而不是绝对值。保住“趋势可比”也有一个前提——回归集的样本构成不能大面积变动,这和前面提到的“回归集维护做增量阶梯演进”是要配套设计的。
如果某个版本的评分器变化实在太大,历史评估记录难以拉通,果断直接放弃跨版本对比,把旧版本分数从活跃报表里撤下,只保留最近N个版本的信号作为趋势基线。
4.2 评分器被“带偏”了,过度拟合新样本
进化评估机制有个很隐蔽的陷阱:如果影子集并入主回归集的频率过高,而影子集又主要来自某个时期的业务流量,评分器很可能在某个时间段内被带偏。这时如果加入了分值偏离不大的同质新样本,可能会降低在另一类分布上的测试敏感性,导致评估结果虚假繁荣。
排查方法很简单:每一轮并入官方回归集的新样本,都打上来源批次标签。看评分器对某个批次来源样本的通过率是否显著高于其他批次。如果出现异常偏差,就要怀疑这个批次的样本在设计上过于狭窄。
更好的做法是,主动控制每次影子集转正时“引入新用例”的上限比例,比如不超过总样本数的10%,确保官方回归集的核心分布保持稳定均衡。
4.3 人工审核的边界划在哪里
评估体系进化到最后,人工还能不能当“最终裁决人”?我的体会是,人要把控方向、否决机制性偏差,而那些机械性、重复性的判断交给自动化流程更可靠。人只需要关注高价值样本和关键能力的跳变事件,不必每次都去钻入细枝末节的个案里。
具体操作上,我会把人工审核分成两类:一类是按比例抽样的例行复核,另一类是基于异常触发的定向复核。异常触发包括:某维度分数可信度骤降、智能体在某类未见过的新任务上出现能力突变、以及用户在真实场景中反馈了严重偏差行为。
4.4 每轮全量重评的成本问题
如果你完全践行“评分器进化”逻辑,理论上每次评分器更新都要全量回归集重跑一遍。但这个成本会让任何团队肉疼。双重棘轮的实操妥协方案是分级回归。
把回归集分成三个级别:P0核心集(覆盖最关键的业务场景,每次评分器更新都必须跑)、P1扩展集(覆盖次核心维度,按周或按版本次数跑)、P2全景集(完整覆盖所有历史样本,按月度或按里程碑跑)。这样评分器进化带来的评估成本增长是可控的,同时又能让关键路径上的质量信号保持实时性。
5. 写在趋势边上的一些体会
AWS 和汇丰这套 Double Ratchet 方案目前更像是一个体系性的框架提案,还没有变成开箱即用的产品。但方向我很认可——评估这件事会从“造尺子”变为“让尺子本身会跟着物体变化而生长”,这是容量评估与系统评估交织发展阶段的必然趋势。
我自己的实操体会是,不要被“自进化”这三个字吓住,觉得需要一个很强的算法和平台才能实施。最小的落地方案可以非常朴素:一条行为轨迹记录表、一套能力阶梯描述、一组影子集转正规则、一张分级回归节奏表,加起来一页文档就能说清。
真正难的不是工具,是想明白“进化的信号在哪里”。信号不在评分器内部,而在智能体行为和真实业务需求的交叉点上。每次评估结束之后你问自己一句:这次测出来的结果推动智能体的下一步迭代了吗?如果答案是“没有”,说明评分器本身需要一次进化了。
这套评估观做半年,你会明显感觉到团队对智能体能力的把握从“猜测”变成了“有标尺的观测”;再跑一年,评估体系就不再是成本中心,而是牵引迭代方向的核心地图。