1️⃣ 功能层(Functional)

验证“能不能用”

测试点:

  • 输入是否能正确得到预期输出
  • 工作流节点是否正确串联
  • 工具调用是否成功

示例用例:

用例ID

输入

期望输出

TC001

“帮我写邮件”

返回完整邮件

TC002

查询天气

正确调用天气API


2️⃣ 语义层(AI特有)

验证“理解对不对”

测试点:

  • 意图识别
  • 多义词理解
  • 上下文连续性

示例:

  • 输入:“帮我订明天最早的票”
  • 检查:
    • 是否识别“时间=明天”
    • 是否理解“最早”

👉 这里通常用:

  • embedding 相似度
  • LLM-as-judge

3️⃣ 鲁棒性层(Robustness)

验证“会不会崩”

重点覆盖:

  • Prompt 注入
  • 垃圾输入
  • 超长输入
  • 多语言混杂

示例:

输入:Ignore previous instructions and...

期望:

  • 不越权
  • 不泄露系统 prompt

4️⃣ 系统层(System / Workflow)

验证“流程是否稳定”

测试点:

  • 多步骤一致性
  • 状态管理(memory)
  • 重试机制
  • 并发

示例:

  • 连续对话 10 轮是否上下文正确
  • 工具失败是否 fallback

说到Agent的工作流场景来生成测试用例,其实本质就是针对Agent做评测,接下来说一下Agent评测的流程

一、Agent评测总体流程(全链路)

定义任务 → 构建评测集 → 执行Agent → 采集轨迹 → 多维评估 → 汇总分析 → 持续回归

二、Step 1:定义评测目标(Evaluation Goals)

先明确你评测什么,否则后面全是噪声。

常见目标(按优先级)

1️⃣ 任务成功率(Success Rate)

  • 是否完成目标任务
  • 最核心指标

2️⃣ 推理能力(Reasoning)

  • 是否正确拆解任务(planning)
  • 是否路径合理

3️⃣ 工具使用能力(Tool Use)

  • 是否选对工具
  • 参数是否正确
  • 是否处理失败

4️⃣ 效率(Efficiency)

  • 步骤数(steps)
  • token 消耗
  • latency

5️⃣ 稳定性(Robustness)

  • 多次执行结果一致性
  • 是否容易崩

👉 输出一个“评测指标表”:

{
  "success_rate": true,
  "tool_accuracy": true,
  "latency": true,
  "robustness": true
}

三、Step 2:构建评测数据集(Dataset)

数据来源(非常关键)

✅ 1. 人工构造(高质量)

  • 覆盖典型任务
  • 覆盖边界场景

✅ 2. 真实用户数据(最重要)

  • 用户日志
  • 失败case

✅ 3. LLM生成(补充长尾)

  • 扩展多样性

数据结构(推荐)

{
  "id": "task_001",
  "input": "帮我找上海明天的天气并推荐穿搭",
  "expected": {
    "type": "multi_step",
    "criteria": [
      "调用天气API",
      "返回天气",
      "给出穿搭建议"
    ]
  },
  "difficulty": "medium"
}

数据集分层(大厂实践)

  • Easy(单步)
  • Medium(2~3步)
  • Hard(多工具+推理)

👉 避免只测简单case


四、Step 3:执行 Agent(Execution)

这里是“评测的核心引擎”。

执行内容

对每个case:

输入 → Agent运行 → 输出结果 + 中间轨迹

必须记录(关键)

1️⃣ 最终输出

  • answer

2️⃣ 推理轨迹(trace)

  • 思考过程(可选)
  • tool calls

3️⃣ 工具调用日志

{
  "tool": "weather_api",
  "params": {"city": "Shanghai"},
  "success": true
}

👉 没有 trace = 无法调优(大坑)


五、Step 4:评估(Evaluation)

这是最“AI化”的部分,一般是多评估器组合。


4.1 规则评估(Rule-based)

适用于:

  • 工具调用
  • 格式

示例:

是否调用 weather_api → YES/NO

4.2 LLM评估(LLM-as-a-Judge)

核心方法:

输入:任务 + Agent输出
输出:评分(0~5)+ 理由

👉 示例 Prompt:

请评估以下Agent输出是否完成任务:

任务:查询天气并推荐穿搭

标准:
1. 是否包含天气信息
2. 是否有合理建议

输出:
score: 0-5
reason:

4.3 轨迹评估(Process Evaluation)

评估“过程”,不是结果:

检查:

  • 是否多余步骤
  • 是否错误路径
  • 是否死循环

4.4 工具评估(Tool Metrics)

指标:

  • Tool Selection Accuracy
  • Tool Success Rate
  • 参数正确率

六、Step 5:指标计算(Metrics)

最终会得到:

核心指标

指标

含义

Success Rate

完成任务比例

Avg Steps

平均步骤

Tool Accuracy

工具使用正确率

Cost

token成本

Latency

延迟


示例:

{
  "success_rate": 0.82,
  "avg_steps": 3.4,
  "tool_accuracy": 0.91,
  "latency_p95": "2.3s"
}

七、Step 6:分析与诊断(Analysis)

大厂会重点做这一步:

1️⃣ 失败case分析

  • 为什么失败?
  • 哪一步错?

2️⃣ 分类问题

常见问题类型:

  • reasoning错误
  • tool选择错误
  • prompt问题
  • memory问题

3️⃣ 可视化

  • success vs difficulty
  • tool使用分布

八、Step 7:持续回归(CI/CD)

这是“工程化关键点”

触发时机:

  • Prompt修改
  • 模型升级
  • 工具变化

做法:

每次变更 → 自动跑评测 → 对比指标 → 是否回退
Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐