别再给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辅助生成

相关文章
|
16天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23521 12
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
4天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
1303 7
|
5天前
|
人工智能 BI 持续交付
Claude Code 深度适配 DeepSeek V4-Pro 实测:全场景通关与真实体验报告
在 AI 编程工具日趋主流的今天,Claude Code 凭借强大的任务执行、工具调用与工程化能力,成为开发者与自动化运维的核心效率工具。但随着原生模型账号稳定性问题频发,寻找一套兼容、稳定、能力在线的替代方案变得尤为重要。DeepSeek V4-Pro 作为新一代高性能大模型,提供了完整兼容 Claude 协议的 API 接口,只需简单配置即可无缝驱动 Claude Code,且在任务执行、工具调用、复杂流程处理上表现极为稳定。
1405 3
|
10天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
2556 4
|
3天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
975 0
|
20天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
6082 22
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
21天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
7345 18