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 做自动评测

  • 构建长期回归数据集

相关推荐
Bode_200213 分钟前
机器人装配线的监测和预测
人工智能·机器人装配
Zhao-Jichao15 分钟前
AI Prompting for Everyone 课程笔记 - 03 联网搜索 Web Search
人工智能
忘了ʷºᵇₐ34 分钟前
Git学习笔记
笔记·git·学习
xsd2024111834 分钟前
手机扫一眼盘子算食物体积方案
人工智能
阿里云基础软件37 分钟前
Agent 任务提速 10.71%,内存占用降低 21.60%|Alibaba Cloud Linux 4 重大发布
java·linux·人工智能·操作系统·agent
服务器硬件项目经理38 分钟前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
前端 贾公子39 分钟前
将CHATGPT/Codex 26.727.51351固定在MacOS Monterey 12上
人工智能
9i编程44 分钟前
用 Codex 改代码,依据是什么?
人工智能·openai·ai编程
aixingkong9211 小时前
华为灵衢超节点参考架构白皮书深度解读
大数据·人工智能·华为
送外卖的工程师1 小时前
STM32图书馆环境监测系统(机智云)
人工智能·语音识别