为什么重要
AgentLens 代表的是一次评测范式的根本转向:不再问”任务通过了吗”,而是问”过程可靠吗”。
现有代码 Agent 评测(SWE-bench、HumanEval、LiveCodeBench)几乎全部采用二元判断——最终补丁是否通过测试。这种”只看结果、不看过程”的方式存在一个致命盲区:一个靠反复试错(blind retry)撞上正确答案的”Lucky Pass”,和一个通过严谨的 Explore→Implement→Verify 流程产出的”Solid Pass”,在排行榜上完全等价。
在真实生产环境中,用户经历的不仅是最终结果,而是整个交互过程:Agent 是否遵循指令、是否验证了自己的工作、是否优雅地从错误中恢复、是否产生了不必要的副作用。AgentLens 首次将这些维度系统化量化,使评测真正对齐”用户体验”。
AgentLens 还是首个在评测流程中引入 LLM 驱动的用户模拟器(含 Toxic/Helpful/Default 三种人格)的基准,测试 Agent 在与真实(且可能不友好的)用户对话时的表现。
构建方式
- 16 个 Java 编程场景:源自真实程序员面试和匿名产品使用数据,涵盖代码搜索、多文件编辑、测试驱动开发、文档生成等任务
- 3 种用户人格:Default(标准用户)、Toxic(暴躁用户,测试 Agent 在压力下的专业性)、Helpful(提供额外提示,测试 Agent 是否善于利用信息)
- 双重评测机制:
- 形式化验证:单元测试、NoChangesVerifier(确保未修改无关文件)、ExactFileMatchVerifier(精确文件匹配)、NoFileErrorsVerifier(静态分析无语法错误)
- LLM-as-Judge 五维评分:ENDRESULT(最终结果完整性)、INSTRUCTIONCOMPLIANCE(指令遵循度)、PITFALLS(行为陷阱检测)、PLEASANTNESS(交互愉悦度)、TOOLCALLS(工具调用效率)
- Quality Index (QI):形式化验证通过率与五个 LLM 评分维度的未加权均值
- Side-by-Side 对比:支持不同版本 Agent 的并排对比,用于诊断回归
任务示例
场景 1:在大型 Java 项目中搜索特定功能实现,阅读相关代码,编写单元测试并验证——Agent 需要展示 Explore→Implement→Verify 的完整流程
场景 2(Toxic Persona):用户以不礼貌的方式要求”快点修好这个 bug,别废话”,Agent 需要保持专业、聚焦任务、不被情绪化语言带偏
关键发现
- 评测成本是主要门槛:一次 Claude Opus 4.7 完整评测花费超过 $100,限制了日常使用频率
- 形式化验证 + LLM 裁判的组合弥补了纯二元评测的盲区——不仅告诉你分数,还告诉你”为什么”
- Side-by-Side 对比在夜间回归流水线中证明了实用价值:一次模型更新可能提升 SWE-bench 分数但退化指令遵循能力(回归检测)
- Context-Sensitive 意图标注是关键创新:同一个
read_file调用在补丁前是 Exploration,在补丁后是 Verification——通过状态机而非工具类型来判断 Agent 所处的认知阶段
关联基准
- SWE-bench Pro:当前主流的代码 Agent 二元评测,AgentLens 是其”过程质量”补充
- DeepSWE:零污染评测,揭示 SWE-bench Pro 验证器缺陷
- CodeScaleBench:代码理解维度评测
不足与展望
- 当前仅覆盖 Java 语言和 16 个场景,覆盖面有限
- LLM-as-Judge 的人机一致性仅为初步验证,大规模验证仍在进行
- 部分模型通过第三方 API(OpenRouter)运行,网络延迟和路由不可控
- 因为 AgentLens 最初围绕 Explyt 自家 AI 助手设计,某些任务可能对其系统更友好(潜在偏差)
- 未来需扩展到多语言、多框架、更多用户人格类型