作为测试开发工程师:如何对 Agent(Workflow 类)做一套“能上线”的测评体系
每类任务明确成功条件与失败条件明确动作边界与权限规则workflow agent 今天像聪明助理,明天可能像会乱按按钮的小朋友——而且按钮还连着生产数据库。测评要从“回答质量”升级为“验收 + 故障演练 + 回归门禁 + 线上监控”,才真的能上线、能长期跑。
最近要入职字节了,字节组里的内容可能会涉及到一些agent评测,我在美团做的也是工作流的相关内容,以我自己的视角来写一些对工作流评测的看法。
workflow/工具型 Agent 不是作文生成器,它更像一个“会调用工具的分布式系统”。你真正要测的是:任务闭环能力、过程可控性、异常可恢复性、安全边界、成本与性能。
这里我给出一套工程化、可落地的指标体系与测评方法,适用于:RAG agent、工具调用 agent、工作流编排 agent(workflow)、多轮对话 agent 等。
1. 先把测评对象说清楚:Agent 到底在“完成什么任务”
对 workflow agent 来说,最怕的不是“答得差”,而是“你根本不知道它算成功还是失败”。
在开始测评之前,为每一类任务写清楚:
- 输入规范:必填字段、可缺省字段、允许的自然语言表达范围
- 成功条件(硬验收):能自动判定的完成条件
例:创建工单成功 + 字段正确 + 返回工单ID;退款成功 + 账务一致 + 有审计记录 - 动作边界:允许做什么、不允许做什么(权限、审批、写操作范围)
- 可接受输出:格式、结构、引用要求(尤其 RAG)
如果你无法自动判断“这次是否完成任务”,后面所有分数都只是“感觉不错”。
2. 指标体系:别只看回答质量,要看“闭环 + 风险 + 成本”
2.1 任务结果层(Outcome)——“做成没”
核心指标:
- 任务成功率(Task Success Rate, TSR):按明确成功条件判定
- 结果正确率 / 一致性:字段、数值、约束、业务口径是否正确
- 业务指标映射:例如降低人工进线率、提升转化率、减少工单流转时长等
测评方法:
- 给每类任务建立 自动验收器(verifier):成功/失败/部分成功
- 定义硬性验收规则:不满足就 fail,别让“看起来差不多”过关
2.2 过程与推理层(Process)——“怎么做成的,有没有乱来”
对 workflow agent,这层比“语言好不好”更关键。
关键指标:
- 计划质量:步骤是否必要,顺序是否合理,是否遗漏关键步骤
- 工具调用正确率
- Tool Precision:该调用才调用(不乱调用)
- Tool Recall:需要调用就调用(不瞎猜)
- 参数正确率:API字段、ID、时间范围、权限参数是否正确
- 分支选择准确率(routing accuracy):条件分支/路由是否走对
- 自我修复能力(Recovery):失败后是否能重试、降级、换路径
测评方法:
- 打通 trace 记录:节点链路、工具调用、返回码、重试与fallback
- 给每个节点做 节点级断言(node-level assertions)
例:检索节点必须返回≥K条候选且包含关键字段;写库节点必须返回200且落库可查
2.3 鲁棒性层(Robustness)——“脏输入、坏环境还能活吗”
关键指标:
- 异常输入鲁棒性:错别字、缺字段、矛盾信息、上下文污染
- 提示注入鲁棒性(prompt injection):RAG内容/工具返回夹带恶意指令
- 工具故障鲁棒性:超时、500、限流、返回空、schema 变更
- 稳定性(Consistency):同一输入多次运行波动(成功率、结果、路径)
测评方法:
- Fuzz / 变异测试:对同一用例做扰动(拼写、同义改写、字段缺失、顺序打乱)
- 故障注入(fault injection):mock 工具超时/500/慢响应/空结果,观察是否按预期降级
- 多次运行统计:同一case跑 N 次,统计成功率方差与路径漂移
2.4 安全合规层(Safety & Compliance)——“别把公司送走”
关键指标:
- 越权与数据泄露:敏感信息、密钥、隐私是否外泄
- 策略遵循:是否遵循业务规则(审批、风控、退款改价等)
- 注入抵抗:能否识别并拒绝执行恶意指令
- 审计可追溯性:关键决策是否可追踪(触发者、数据来源、为何执行)
测评方法:
- 红队用例集:注入、社会工程、越权指令、数据外带(exfiltration)
- 权限矩阵:不同角色/租户/环境对同一任务的访问边界验证
- 输出扫描:敏感信息模式检测(token、手机号、证件号、access key等)+ DLP规则
2.5 性能成本层(Performance & Cost)——“跑得起吗”
关键指标:
- 端到端延迟(p50/p95/p99):别看平均数自欺欺人
- 成本:token、工具调用次数、检索次数、外部API费用
- 吞吐与并发:并发下成功率是否下降、队列是否堆积
- 资源效率:重复检索、无效循环、无意义 tool-call
测评方法:
- 压测:不同并发下跑固定用例,观察延迟分布与失败类型
- 成本剖析:统计每节点 token/调用次数/耗时,定位“烧钱节点”
2.6 体验与可运营层(UX & Operability)——“能长期稳定跑吗”
关键指标:
- 可解释性:输出是否给出可验证依据/引用(尤其RAG)
- 可观测性:trace、日志、指标、告警是否完善
- 可维护性:流程/提示词/规则变更是否容易引入回归
- 回归风险:版本升级后成功率、成本、路径分布是否漂移
测评方法:
- 基线回归集 + 版本对比报告(diff report)
- 线上灰度/A-B:监控业务指标、安全指标与成本指标
3. Workflow Agent 的“专属必测点”(很多团队会漏掉)
- 节点级正确性:每个节点有输入输出契约(schema),不符合直接 fail fast
- 分支覆盖率:所有 if/else/路由必须被用例覆盖,否则上线等于开盲盒
- 幂等性:重复触发不会重复扣费/重复下单/重复写库
- 重试与退避:避免无限重试和雪崩(重试次数、间隔、熔断)
- 回滚/补偿:写操作失败是否能补偿(事务/补偿任务)
- 循环/卡死检测:最大步数、最大token、最大tool-call数的熔断限制
4. 测评落地流程:从“用例”到“门禁”的一条流水线
Step 0:定义任务验收标准(必须可自动判定)
- 每类任务明确成功条件与失败条件
- 明确动作边界与权限规则
Step 1:构建分层用例集(覆盖面 + 高价值失败)
建议至少包含:
- Happy path:标准成功流程
- 边界/异常:缺字段、冲突信息、极端数值
- 对抗/安全:注入、越权、诱导泄露
- 工具故障:超时/500/空结果/schema变更
- 长对话:多轮反复修改需求、上下文干扰
- 回归集:线上真实失败沉淀(最值钱)
别迷信“1000条随机用例”,一半是噪音;真正值钱的是 失败案例沉淀 + 可复现的回归集。
Step 2:建立自动验收器与打分器(Outcome + Process + Cost)
建议统一输出结构:
outcome:success / partial / failerrors:失败原因枚举(参数错/工具错/分支错/幻觉/越权…)trace:节点序列 + tool-call 详情cost:token/调用次数/耗时/外部费用
Step 3:离线批跑 + 稳定性统计
- 每条 case 跑 N 次(3~10)
- 看:成功率均值、方差、失败类型分布、成本/延迟分布、路径漂移
Step 4:定位瓶颈并给出可行动改进
失败必须能落到“节点级归因”,否则只能开会聊天:
- 检索差:召回不足?排序差?query构造差?
- 工具差:schema不匹配?参数错?重试策略不对?
- 规划差:步骤遗漏?顺序错?循环?
- 安全差:注入没挡住?权限没校验?
Step 5:上线门禁(Gating)+ 上线后监控
门禁建议包含:
- 关键任务 TSR ≥ X
- 越权/泄露 = 0(硬门禁)
- p95 延迟 ≤ Y
- 单次成功成本 ≤ Z
线上监控重点:
- 成功率漂移与错误 TopN
- 工具失败率与重试率
- 成本异常(token/tool-call 暴涨通常是“开始瞎查”)
- 安全告警(注入命中、敏感信息命中)
5. 建议的“指标面板”(最小但很管用)
- Outcome:TSR、Partial Rate、可自动判定的幻觉率
- Process:Tool Precision/Recall、Branch Accuracy、Recovery Success
- Robustness:Fuzz 后 TSR、故障注入 TSR
- Safety:越权率、注入成功率、敏感泄露命中率
- Perf/Cost:p95延迟、平均token、平均tool-calls、单位成功成本(cost/success)
结语:把 Agent 当系统测,而不是当人测
workflow agent 今天像聪明助理,明天可能像会乱按按钮的小朋友——而且按钮还连着生产数据库。
测评要从“回答质量”升级为“验收 + 故障演练 + 回归门禁 + 线上监控”,才真的能上线、能长期跑。
更多推荐

所有评论(0)