专题/Agent Evals 与测试实践 · 从输出评分到系统验收

ADPS 专题研究

Agent Evals 与测试实践 · 从输出评分到系统验收

组合确定性测试、轨迹评估、外部验收与生产反馈,建立 Agent 发布证据。

发布日期
2026-08-14
文档类型
横切专题
状态
专题研究底稿
依据
ADPS 研讨会、企业案例与公开 Eval 方法
许可
CC BY 4.0

专题整理跨模块的工程问题。引用的模式定义、具名案例和研讨会记录以各自页面为准。

传统软件测试在 Agent 时代仍然有效。数据结构、权限、工具契约、幂等性和业务账本继续由确定性测试锁住。新增的难题来自概率性输出、多条可行路径、外部工具和延迟结果。一次运行可能换一条轨迹仍能完成任务,也可能文字回答漂亮而外部状态已经写错。

Agent Evals 测量这类不确定行为。它与单元测试、集成测试、沙箱验收、生产监控和人工复核共同构成验证体系。

概念定义

名称 主要任务 典型产物
Test 对确定性契约作断言 通过/失败、差异、错误位置
Eval 在不确定行为和多次运行上测量能力与回归 样本级证据、分数、通过率与失败簇
Monitoring 观察真实生产流量中的行为 运行事件、指标、告警与样本
Acceptance 由用户或业务规则判定交付是否成立 外部回执、可见结果、审批或签收

测试和 Eval 的边界可以重叠。一个确定性 grader 既能出现在测试套件中,也能作为 Eval 的评分器。工程上更重要的是说清证据来自哪里,由谁维护,它能支持哪一类发布决策。

被测对象

被测对象包括:

对象不同,评测数据、执行环境、评分器和发布门都会变。例如,工具适配器主要看 schema、权限和幂等;长程 Agent 还要看目标保持、checkpoint、预算与故障恢复。

六个评估切面

切面 要问的问题 证据示例
最终结果 外部世界是否达到目标状态 数据库事实、业务回执、真实请求结果
执行轨迹 工具、顺序与参数是否合理 trace、ActionEvent、任务图节点
单步决策 路由、召回、压缩或审批判断是否正确 决策标签、候选集、理由与事实对照
安全与权限 Agent 是否越界,拒绝和升级是否有效 负例、沙箱事件、审批与拒绝记录
恢复与长程进度 中断、重试和交接后能否回到正确任务 checkpoint、幂等键、目标版本、进度账本
资源与时效 质量改善是否在可接受的延迟和成本内 试次分布、token、延迟、工具调用数

最终结果是主要裁决依据,轨迹评估用于发现潜在风险和定位失败。对存在多条正确路径的任务,严格匹配一条 golden trajectory 会把有效解法判错。只要结果、权限和必要约束正确,轨迹可以保留一定自由度。

Agent 测试金字塔

               生产影子流量 / 金丝雀 / 业务结果
                    人工与校准后的模型评分
                 轨迹回放、沙箱与故障注入
              工作流、外部验收与系统集成
           工具契约、权限、状态机与幂等性
        schema、解析、函数、规则与确定性组件测试

下层快、稳定、定位清楚,适合每次提交。上层更接近真实价值,同时运行慢、成本高、方差大。发布门需要组合多层证据,不能把一个综合分数当成全部结论。

评分器的优先级

  1. 外部事实和确定性断言。
  2. 代码、规则、schema 和状态机检查。
  3. 业务验收器或独立模拟环境。
  4. 经过校准的模型评分器。
  5. 专家或真实用户对含糊标准作最终判断。

模型评分器适合语义相关性、风格、完整性和复杂轨迹等难以写成硬规则的项目。它需要与人工判断校准,并定期重新检查偏差。用同一套未校准的模型同时生成、评分和改写标准,会弱化裁决的独立性。

Eval Contract

eval_id: gis-publish-regression-v7
system_under_test: gis-agent@v5
task: publish_and_verify_layer
input_fixture: fixtures/s57-small-03
environment: geoserver-sandbox@2.25
allowed_tools: [inspect, publish, verify_get_map]
authority: no_production_write
expected_outcomes:
  - layer_is_queryable
  - get_map_contains_visible_content
forbidden_outcomes:
  - modify_unrelated_workspace
graders:
  - schema_contract
  - external_get_map_probe
trials: 5
release_gate:
  capability: all_required_cases_pass
  regression: no_blocking_case_regresses
evidence: artifacts/evals/gis-v7/
owner: geo-platform

合同同时记录任务、环境、权限、正负结果、评分器、试次和发布门。随机性较强的任务需要多次 trial,同时保留每次轨迹,否则平均分会掩盖稀有却严重的失败。

评测集的生命周期

  1. 从规格和业务验收条件生成最初能力集。
  2. 将真实失败、bad case 和事故压缩成可重放的回归样本。
  3. 补入边界、权限、对抗、空输入和未知输入,同时保留正例与负例。
  4. 给数据、环境、评分器和预期结果分别编版。
  5. 定期阅读失败轨迹,删除失效样本,拆分过于宽泛的评分项。

能力评测追问系统现在能否完成目标任务,回归评测防止旧能力被新变更损害。两组样本的选择逻辑不同,发布时需要同时运行。

三组工程案例

外部验收取代内部“成功”

玄宿科技 GIS 数据发布 Agent 曾遇到一类典型假成功:发布接口返回成功,真实 GetMap 仍可能返回 LayerNotDefined,且某些错误响应的 HTTP 状态仍是 200。最终验收器从用户一侧发出真实 GetMap 或 GetTile 请求,检查协议结果、内容类型和可见图像。

任务图同时承载执行与验收

东方屹腾执行型 Agent 用任务 DAG 和节点状态机管理严格依赖。节点完成要通过验收器,业务 ID 的来源、工具回执和审批事件进入同一时间线。这样既能判断结果,也能定位跳步、漏步和重复执行。

同一能力在三种环境中验证

反思模块研讨提出三种环境:基准环境运行稳定样本,日常环境承接真实工作,测试环境允许新 Skill 和新提示词参与。候选能力先与现行版本并存,评测通过后再升级,避免一次经验直接改变全局行为。

发布证据流

生产失败或新规格
        ↓
复现并固化成样本
        ↓
补入回归集,定义评分器和环境
        ↓
修改候选组件
        ↓
运行能力集 + 回归集 + 负例
        ↓
阅读失败轨迹并复核 grader
        ↓
发布、影子流量或回滚

新失败应进入回归集,但不是每个线上样本都值得永久保留。团队需要去重、定期退役过期样本,并区分模型波动、环境故障、grader 错误与真实能力缺陷。

常见失效方式

后续议题

专题研讨建议带上四件东西:一个真实 bad case,一份 Eval Contract,一条失败轨迹,以及这个样本如何影响发布的记录。这样才能比较不同团队的被测对象、评分口径和权限边界。

资料与来源

引用建议:ADPS,《Agent Evals 与测试实践 · 从输出评分到系统验收》,ADPS 专题研究,2026-08-14。

专题目录 · CC BY 4.0