首页 / 资讯中心 / 文章详情

同一条Agent评测跑两次结果不同,问题可能根本不在模型

同一条Agent评测跑两次结果不同,问题可能根本不在模型 ★ FEATURED ARTICLE
摘要从Cloudflare沙箱快照机制出发建立仓库、依赖、工具、数据和网络一致的Agent评测环境。Cloudflare在2026年9月30日介绍面向Agent工作负载重构的Containers时明确写到一个评测前提比较不同系统提示词、Skill、模型或Agent版本时仓库、依赖、工具和输入文件必须保持固定文件系统快照可以从同一基线启动多个隔离环境避免环境漂移干扰结果。这不是抽象的基础设施话题。很多团队遇到过同一种困惑昨天模型A通过今天模型B失败换回模型A又好了于是结论变成“模型不稳定”。可仔细看才发现昨天装的是浏览器127今天自动升级到128一个环境有缓存另一个没有数据库快照中的订单状态已经被前一条用例改过。Agent本来就有随机性如果环境也不固定测试报告无法区分模型变化和实验噪声。环境一致性因此不是运维附属项而是Agent Evaluation的基本质量条件。先固定六类变量第一是代码仓库提交、未跟踪文件和子模块。第二是依赖锁文件、镜像摘要、浏览器与驱动。第三是工具MCP服务器、Skill、命令行版本和工具Schema。第四是数据数据库快照、对象存储、测试账号和时间。第五是网络允许域、DNS、模拟服务和故障注入。第六是运行策略CPU、内存、超时、重试与并发。只记录“模型某版本”远远不够。一次评测需要一个environment_id把这六类指纹聚合起来。结果表里每条Trace都绑定模型、提示词、Agent代码和environment_id才能做有效对比。为什么清理目录不等于重置环境Agent会安装包、生成配置、写缓存、启动服务、修改数据库、保留浏览器状态。测试结束后删除工作目录可能仍留下容器外的缓存、远程记录或队列消息。下一个样本继承这些状态就会产生顺序依赖。更可靠的方式是从只读基线或快照创建独立环境每条高风险样本结束后销毁。需要测试长任务暂停恢复时再把快照本身作为被测对象恢复后文件是否一致、进程是否应当重启、临时凭证是否已经过期、未完成副作用如何补偿。下面的检查把环境问题和模型问题分开defcompare_runs(a,b):asserta.environment_fingerprintb.environment_fingerprintasserta.dataset_versionb.dataset_versionasserta.tool_schema_hashb.tool_schema_hashreturn{behavior_changed:a.tool_calls!b.tool_calls,outcome_changed:a.business_result!b.business_result,cost_delta:b.cost-a.cost,}如果前三个前提不相同先不要讨论模型回归。它们相同之后行为和结果变化才有分析价值。设计快照时要避免“把污染也保存下来”快照不是越晚越好。最干净的基线应在安装依赖、加载固定数据、确认健康检查之后生成但在任何测试用例运行之前。快照内不能包含真实凭证、用户会话和上一轮产物。需要凭证时在启动后注入短期令牌任务结束立即回收。对RAG或搜索Agent还要固定索引版本和检索时间。只快照本地文件、却让远程知识库持续更新答案仍会漂。对浏览器Agent需要控制系统时间、地区、语言、窗口尺寸和实验开关。对Coding Agent则要固定编译器、包源和外部API桩。用顺序打乱实验抓出共享状态污染把同一批用例按A→B→C、C→B→A和随机顺序各跑一次。如果某条用例只在特定前序后失败说明环境没有真正隔离。常见污染包括登录会话、浏览器LocalStorage、数据库自增值、队列未消费消息、临时文件和模型记忆。再做并发实验从同一基线快照同时启动两份沙箱给它们相同订单号但不同用户身份。检查文件系统、端口、缓存、数据库命名空间和凭证是否串线。Agent评测为了节省时间往往会并行若隔离边界不清结果会出现难以重现的“随机失败”。快照恢复也要验时间语义。任务暂停两小时后恢复旧临时凭证应失效超时中的订单不能继续无条件提交计划里记录的“今天”要重新解析还是保持任务创建时含义必须由业务定义。文件恢复成功不代表任务仍被授权。最后验证快照可销毁。测试结束后短期令牌、用户数据、下载文件和浏览器Cookie是否彻底清理保留用于复盘的失败快照是否加密、限时并限制访问。可复现不能成为长期堆积敏感数据的理由。给每次评测生成一份环境差异报告报告不需要展示整个镜像只列出与基线不同的内容包版本、浏览器、环境变量名称、工具Schema哈希、数据集版本、网络策略和资源限制。差异出现时先由测试确认是否预期未批准的差异直接让本轮结果无效。这份报告还能帮助成本分析。同一个Agent突然变慢如果镜像、依赖与数据完全一致才值得继续查模型和工具如果CPU限额或沙箱启动策略变了先修实验条件。把无效实验挡在评分之前往往比换一个更强Judge更省时间。环境差异经过批准后要生成新的基线版本避免团队长期把预期变化当作异常噪声处理。新旧基线都需可追溯和回滚。回归报告别再只写“重跑通过”重跑通过可能意味着第一次是偶发环境问题也可能意味着模型碰巧走了另一条路径。报告应保存第一次和重跑的环境指纹、Trace首错、外部依赖响应和副作用。分类为环境漂移、模型选择、工具不稳定、测试数据污染或真实产品缺陷。质量门禁可以分两步环境预检不通过整批评测标记无效并停止环境一致后再计算任务成功率、行为合规、延迟和成本。这样不会把坏实验数据送进模型比较也不会让模型背环境的锅。小团队怎样开始不需要立刻引入复杂的容器调度。先用固定Docker镜像、锁文件、数据库种子和Mock服务每次运行生成一个JSON指纹测试结束销毁容器失败时保留只读快照和Trace。等用例规模上来再引入文件系统快照、并行隔离和按需恢复。Agent评测最容易被忽略的能力不是更聪明的Judge而是可靠实验设计。只有控制变量版本对比才有意义。测试工程师熟悉环境、数据、可复现和故障注入这些传统能力在AI系统里没有过时反而决定团队能不能把“感觉模型变差了”变成一份可验证的质量结论。本文部分内容参考了霍格沃兹测试开发学社整理的相关技术资料主要涉及软件测试、自动化测试、测试开发及 AI 测试等内容侧重测试实践、工具应用与工程经验整理。
阅读完成 · 觉得有帮助?
咨询建站