AI测试工程笔记 05:AI评测实践(从数据集到自动评测闭环)

一、背景:为什么要做AI评测

在 AI WorkLog Agent 项目中,系统核心流程:

输入 → LLM决策 → Tool调用 → 状态存储 → 输出

和传统系统不同,这类系统:

系统"能运行",不代表"决策是对的"

例如:

  • 情绪输入被当成查询

  • 记录请求未触发写入

  • 越权操作没有被拒绝

这些问题,传统测试很难覆盖。

所以,需要一套:

👉 可复现、可量化的评测机制


二、评测设计思路(核心框架)

这次评测围绕 Agent 决策链路,设计两类数据集:

1. 回归数据集(Regression)

用于验证正常流程:

  • 记录类(record_fragment)

  • 查询类(get_fragments_by_date)

  • 拒绝类(reject)


2. 异常数据集(Bad Case)

用于验证异常场景:

  • 情绪输入(如:今天太累了)

  • 模糊指令(如:帮我做点啥)

  • 非法输入(如:12345)

  • 越权请求(如:删除记录)

  • 多意图输入(如:查完再总结)


三、数据集结构设计(关键)

每条测试用例统一结构如下:

复制代码
{
  "case_id": "B001",
  "case_type": "badcase",
  "input": {...},
  "precondition": {...},
  "expectation": {
    "expected_tool": null,
    "should_write_state": false
  }
}

核心设计点:

  • 使用 expected_tool 作为核心判断标准

  • 使用 should_write_state 判断是否影响系统状态

  • 保证每条case可复现、可执行


四、评测执行:自动化评测脚本

评测脚本 run_eval.py,核心流程:

评测流程

  1. 读取 JSONL 数据集

  2. 逐条执行测试用例

  3. 调用 Agent 核心函数

  4. 提取实际执行结果(tool_called)

  5. 与 expectation 对比

  6. 判定 pass / fail

  7. 输出结果与统计


判定规则(简化版)

复制代码
expected_tool == actual_tool → pass
否则 → fail

五、评测结果(关键)

第一阶段:种子数据验证

  • 用例数:4

  • 通过:3

  • 失败:1

  • 通过率:75%

失败案例:

情绪输入被误识别为查询请求


第二阶段:扩展数据集评测

  • 用例数:16

  • 通过:8

  • 失败:8

  • 通过率:50%


六、问题归因分析(核心)

通过评测,识别出三类核心问题:


1. 意图识别错误(最主要问题)

表现:

  • 情绪输入 → 被识别为查询

  • 无效输入 → 触发 Tool

原因:

LLM 决策层缺乏明确的"拒绝边界"


2. 记录意图识别失败

表现:

  • "帮我记一下..." 未触发 record

原因:

record 关键词识别不完整 / 优先级不足


3. 越权与多意图处理问题

表现:

  • 删除请求未拒绝

  • 多步骤指令未拆解

原因:

缺乏安全约束与指令分解机制


七、优化方向(思路)

基于问题分析,提出优化方向:

1. Prompt约束增强

  • 非任务型输入禁止调用 Tool

  • 明确 record / query / reject 边界


2. 规则层补充

  • 增加关键词过滤

  • 增加越权操作拦截


3. 意图优先级调整

  • record > query > fallback

八、总结:AI评测的核心价值

核心不是"写脚本",而是:

构建一套可复现的评测方法

相比传统测试,这种方式可以:

  • 发现"决策错误",而非仅功能错误

  • 对AI系统质量进行量化评估(通过率)

  • 支持持续回归与优化验证


九、延伸思考

后续可以进一步扩展:

  • 引入 LLM 作为评判(LLM as Judge)

  • 接入 CI 做自动评测

  • 构建长期回归数据集

相关推荐
问心无愧051316 小时前
ctf show web入门111
android·前端·笔记
唐某人丶16 小时前
模型越来越强,我们还需要 Agent 工程吗?—— 从价值重估到 Harness 实践
前端·agent·ai编程
程序员cxuan17 小时前
为每个任务配一套 harness:Claude Code 里的动态工作流
人工智能
程序员cxuan17 小时前
Claude Fable 5 来了
人工智能·后端·程序员
云边云科技_云网融合17 小时前
云边云科技亮相 2026 WOD 制造业数智化博览会 云网融合赋能制造焕新
人工智能·科技·安全·制造
Σίσυφος190017 小时前
激光三角 光平面标定-多高度误差分析
人工智能·计算机视觉·平面
JS菌17 小时前
手写一个 AI Agent 全栈项目:从沙箱执行到子智能体的完整实现
前端·人工智能·后端
lqqjuly17 小时前
前沿算法深度解析(二)
人工智能·算法·机器学习
Bode_200217 小时前
基于大数据分析的全生命周期质量追溯质量评估体系落地方案
大数据·人工智能
分布式存储与RustFS17 小时前
RustFS S3 Table 开源后,我重新梳理了一下 Iceberg 数据湖的选型思路
人工智能·开源·minio·dpu·rustfs·ai存储·s3 table