AI测试工程笔记:AI Agent评测体系设计(从数据集到质量验证)

一、背景:为什么AI系统必须做评测

传统系统,测试的核心是验证"功能是否正确",系统行为是确定性的。

在 AI Agent 系统中,是:

  • 输出是生成的,不是固定结果

  • 系统具备决策能力(是否调用 Tool)

  • 同样输入,可能产生不同结果

这就带来问题:

生成 ≠ 正确,系统可用性无法通过单次结果判断

所以说:

AI系统测试,本质上是一个"评测问题"

需要通过系统化的方法,验证其在不同场景下的行为与输出是否可靠。


二、系统拆解:从"功能测试"转向"链路测试"

为了更好地设计测试方案,需先对系统进行拆解:

复制代码
输入层 → LLM决策层 → Tool调用层 → 状态存储(JSONL)→ 输出层

对应含义:

  • 输入层:用户输入(记录 / 查询 / 模糊表达)

  • 决策层:LLM判断是否调用 Tool

  • 执行层:调用具体 Tool(写入 / 查询)

  • 状态层:日志以 JSONL 形式存储

  • 输出层:生成日报或返回结果

测试思路:

测试不再只看最终输出,而是基于整条链路进行验证


三、评测模型设计:三层质量验证体系(核心)

基于链路拆解,我设计了一套三层评测模型:

AI评测 = 行为(Tool) + 状态(数据) + 输出(结果)


3.1 行为层(Tool 调用)

核心关注:

  • 是否误触发 Tool(不该调却调了)

  • 是否漏触发 Tool(该调却没调)

  • 是否越权调用(调用了不允许的操作)

本质:验证系统"决策是否正确"


3.2 状态层(数据一致性)

核心关注:

  • 数据是否正确写入(JSONL)

  • 是否存在污染或重复写入

  • 查询结果是否与状态一致

本质:验证系统"数据是否可信"


3.3 输出层(结果质量)

核心关注:

  • 日报是否完整

  • 内容是否准确

  • 是否具备可读性与可用性

本质:验证系统"结果是否可用"


四、数据集设计:回归集 + Bad Case

在评测上,没有采用单次测试,而是设计了数据集驱动的方式。


4.1 回归数据集(Regression)

用于验证:

  • 核心业务流程是否正常

  • Tool调用是否符合预期

  • 状态写入是否稳定

典型场景:

  • 记录工作日志

  • 查询当日记录

  • 正常生成日报


4.2 Bad Case 数据集(关键)

用于覆盖异常与边界场景,例如:

  • 情绪表达(非业务输入)

  • 模糊指令

  • 越权请求


五、典型问题:情绪输入误触发 Tool

在实际测试中,我发现了一个典型问题:


Case:

用户输入:

"今天太累了,啥都不想干"


预期:

  • 不调用任何 Tool

  • 不写入状态


实际:

  • 调用了查询 Tool(get_fragments_by_date)

问题分析:

  • LLM 将"今天"识别为时间条件

  • 将情绪表达误判为查询意图


原因:

意图识别不准确 + Prompt约束不足


优化方向:

  • 增强输入分类(业务 / 非业务)

  • 增加拒答或过滤策略

  • 在评测中增加类似 Bad Case 覆盖


六、评测执行方式(当前阶段)

当前阶段采用:

  • 数据集驱动(JSONL)

  • 每条 Case 定义:

    • expectation(预期)

    • actual(实际)

  • 人工评估结果(pass / fail)

说明:

当前以"最小闭环验证"为主,后续可扩展为自动化评测


七、稳定性补充:评测结果的可信性

在评测过程中,也发现:

评测本身依赖系统稳定性

例如:

  • JSONL 在并发写入时出现空行

  • 导致解析异常(KeyError)

这类问题会直接影响评测结果的准确性。

后续在测试中:

  • 稳定性(并发 / 写入一致性)

  • 作为评测体系的辅助验证维度


八、总结:AI测试的核心变化

小结:


传统测试关注"功能是否正确"

AI测试关注"系统是否始终做出正确决策"


进一步抽象为三点:

  • 行为是否可控(Tool调用)

  • 状态是否可信(数据一致性)

  • 输出是否可用(结果质量)


九、后续规划

当前已完成:

  • 评测模型设计

  • 数据集初步构建

  • 典型问题验证

后续计划:

  • 增加 Bad Case 覆盖

  • 引入自动化评测执行

  • 构建可复现评测流程


AI测试不是验证一个结果,而是验证一个"会做决策的系统"。

相关推荐
经济元宇宙13 小时前
全场景 AI 智能交互 专业级语音机器人推荐什么?
人工智能·机器人·语音识别
我是发哥哈13 小时前
主流AI框架生产环境性能对比:5大关键维度深度评测
大数据·人工智能·学习·机器学习·ai·chatgpt·ai-native
隔壁大炮13 小时前
Day07-RNN介绍
人工智能·pytorch·rnn·深度学习·神经网络·算法·numpy
程序员老刘13 小时前
当全网都在喊“程序员要被AI取代了”,Flutter给了另一种答案
flutter·ai编程·客户端
最强小杰13 小时前
OpenClaw 安装踩坑全记录:npm 和 Bun 两种方式的原理差异与实战配置(2026)
ai编程·mcp
羑悻的小杀马特13 小时前
零成本搞定!异地访问 OpenClaw 最简方案:SSH 端口映射组网!
运维·服务器·人工智能·docker·自动化·ssh·openclaw
雷帝木木13 小时前
Python 并发编程的高级技巧与性能优化
人工智能·python·深度学习·机器学习
ai大模型中转api测评13 小时前
OpenAI再次定义生产力!GPT-image-2发布:当AI绘图学会思考
人工智能·gpt·自动化·api
jinanwuhuaguo13 小时前
OpenClaw协议霸权——从 MCP 标准到意图封建化的政治经济学(第十八篇)
android·人工智能·kotlin·拓扑学·openclaw
tanis_314 小时前
MinerU MCP Server 部署与工作流实战:Claude Desktop / Cursor / Cline 接入指南
ai编程·mcp