别再给Agent写单元测试了——那是给确定性软件准备的武器

简介: 本文揭示Agent测试的范式陷阱:传统断言式测试无法捕捉非确定性行为(如死循环、状态漂移)。团队重建评估体系,转向“行为链”评估,构建三层任务成功标准、人工校准的LLM-as-Judge及行为回归集,显著提升模型迭代验证效率。(239字)

 

你的测试框架,可能根本没在测Agent

去年10月,我们团队上线了一个客服Agent。发布前,测试覆盖率82%,所有case绿灯,压测通过。上线72小时后,用户反馈涌进来:Agent在某类投诉场景下会反复追问用户同一个问题,形成死循环。

回去查代码——没有bug。回去看测试——所有断言都在验证"输出是否包含关键词"。没有一条测试在验证"多轮对话里Agent会不会陷入逻辑死循环"。

这就是我们踩的坑:用测确定性软件的思路,去测一个非确定性系统。


测试范式的断层在哪

传统软件测试的底层假设是:相同输入,得到相同输出。这个假设在Agent身上完全不成立。

Agent有三个根本性的挑战:LLM输出有随机性,同样输入可能产生不同输出;外部工具状态随时变化;执行路径由Agent自主决定。三条加在一起,意味着你之前写的那套断言脚本,充其量只是在验证"这个输出里有没有某个字符串",根本碰不到Agent真正的行为边界。

更残酷的是,就连行业通用的基准测试都开始出现信任危机。有团队用10行Python代码利用pytest钩子机制篡改测试结果,拿下了SWE-bench满分;研究发现28个模型提交存在作弊行为,8大主流基准集体沦陷(来源:AtomGit开源社区,2026年4月)。公开榜单被刷穿,内部评估又没建起来——很多团队其实处于"盲飞"状态。


我们重建评估体系的过程

痛定思痛,我们花了将近六周重建了一套面向Agent的评估体系。核心思路转变只有一句话:从验证输出,转向评估行为链。

具体做了三件事。

第一,把"任务成功"拆成三个层次:能完成任务、没搞坏其他流程、在边界情况下行为合理。这个框架参考了Descript的实践——他们围绕"不出错、严格遵循要求、做得好"三个维度构建评估,从手动评分演进到LLM评分器,并定期和人工校准(来源:Anthropic工程博客《Demystifying evals for AI agents》,2026年1月)。

第二,引入LLM-as-Judge,但加了一道人工校准门。我们发现LLM评分器有一个致命偏向:它倾向于给长输出打高分,跟实际质量相关性很弱。我们每两周抽100条,人工重新打一遍,跟LLM评分做diff,一旦偏差超过15%就重新对齐。

第三,建了一套"行为回归集",专门记录历史上出现过的异常行为模式——死循环、无限追问、跨轮遗忘、工具调用错误累积——每次Prompt迭代后跑一遍。升级Claude Sonnet 4.6那次,全套回归跑完不到4小时。有评估体系的团队,换模型时几天内就能完成验证;没有的,要花数周手动测,这个差距在我们自己身上验证过了。


一个让我至今没想清楚的问题

传统评估只看最终任务结果,忽视了Agent在过程中的推理、工具调用和中间步骤。对于执行长序列动作的自主Agent,只看成功/失败会错过"为什么成功或失败"的关键信息(来源:arxiv Agent-as-a-Judge论文,2025)。

这引出了一个我们内部还在争论的问题:Agent测试的终极目标,是保证"行为可预测",还是保证"结果可接受"?

如果是前者,测试成本会是传统软件的5到10倍,而且永远追不上模型迭代速度。如果是后者,你要解决的问题变成:谁来定义"可接受",在哪个粒度上定义?

我现在的倾向是后者,但没办法说服团队里所有人。


讨论问题

  1. 你们团队现在对Agent系统的测试,是仍在用传统脚本+断言,还是已经建起了独立的评估体系?两者的维护成本差距有多大?
  2. LLM-as-Judge你们用吗?有没有发现它在哪类场景下完全不可信?

声明:图片AI辅助生成

相关文章
|
29天前
|
XML 前端开发 程序员
初级程序员必备的十大技能之 API 接口与前后端联调(一)
教程来源 http://qeext.cn/ 本文系统讲解API设计规范(RESTful/GraphQL)、HTTP协议核心(方法、状态码、头信息)、前后端联调流程及调试工具,助你打造标准化、高可用接口,打破前后端协作孤岛。
|
28天前
|
人工智能 程序员 API
Claude Code 的 Agent View,让我看到 AI 编程真正麻烦的地方
这两天 Claude Code 又更新了一个东西,叫 Agent View。 一开始我以为这就是个小功能,后来仔细看完官方文档,感觉这事儿有点东西。 它解决的不是模型会不会写代码的问题。 它解决的是当你同时让几个 AI 去干活时,人到底怎么盯、怎么插手、怎么拍板。 官方变更记录里,Agent View 被放在 Claude Code v2.1.139 里,还是 Research Pre
|
2月前
|
SQL 数据采集 自然语言处理
智能问数上线后,到底该怎么运营,业务人员才会真正用起来?
智能问数落地关键不在模型能否回答,而在是否建成可持续的数据服务。本体语义路线聚焦四层运营:语义治理、问题供给、口径固化、组织推广,适配央国企等跨系统、跨角色复杂组织,但需前置语义建模与持续知识运营。
|
29天前
|
人工智能 搜索推荐 JavaScript
别再手动刷热搜了——我让Hermes每天自动分析热点和产品的结合点,还帮我出好了选题
Hermes Agent是Nous Research开源的自进化AI智能体(MIT协议),支持私有部署、持久记忆与闭环学习。本文介绍如何用它自动抓取微博、抖音等多平台热点,结合你的产品信息每日生成精准选题与大纲——三步配置,省去手动刷榜筛热的低效劳动。
552 2
|
存储 传感器 安全
「Arm Arch」 初识 Arm(下)
「Arm Arch」 初识 Arm(下)
1442 0
|
28天前
|
智能设计 人工智能 数据可视化
入选顶会ACM!阿里云DashChat重塑数据看板设计:从辅助工具进阶为智能设计伙伴
近日,阿里云DataV团队的论文《DashChat: Interactive Authoring of Performance Dashboard Design Prototypes through Conversation with LLM-Powered Agents》在经历多轮评审后,正式被计算机人机交互领域的全球顶级学术会议——ACM CHI 2026录用,将在会议全新改革的Poster赛道上进行宣读和展示。
138 2
入选顶会ACM!阿里云DashChat重塑数据看板设计:从辅助工具进阶为智能设计伙伴
|
29天前
|
人工智能 运维 Rust
智谱市值5000亿背后,我的传统RAG项目正被AgentRAG“逼宫”
本文剖析AgentRAG如何革新传统RAG范式:通过ReAct循环实现“思考→检索→评估→再检索”,将复杂问题命中率从40%提升至89%,显著降低幻觉率。对比实测揭示其本质是“前置理解+动态规划”,虽延迟略增,但准确率跃升。文末探讨循环轮次设定等现实挑战。(239字)
95 4
|
28天前
|
数据采集 存储 并行计算
基于MATLAB解决车辆路径问题(VRP)
基于MATLAB解决车辆路径问题(VRP)
284 4
|
28天前
|
人工智能 自然语言处理 算法
2026:AIGS来了,软件正在被AI重新定义一遍
2026年是“Agent落地年”,软件正从“买系统”迈向“编服务”。AIGS(AI生成服务)取代AIGC,聚焦可运行、可调度的生产级服务,而非静态内容。向量空间JBoltAI在Java生态率先实现Function Call、MCP与思维链工程化整合,推动AI从“能说话”到“能办事”的范式变革。
|
30天前
|
机器学习/深度学习 人工智能 JSON
别被“HTML 万能论”带偏:Markdown 才是人机协作的真正基石
Claude工程师提出“未来AI只需输出HTML,Markdown已是过去式”的观点。本文从AI底层运行逻辑、Token经济学、注意力机制与真实协作场景出发,指出该观点混淆了表现层与数据层,低估了人类微调的必要性。Markdown之所以不可替代,恰恰因为它信息纯净、容错高、对人与AI都极为友好——它是未来很长一段时间里的“认知JSON”。
194 5