智能体上线前,你需要一套评估方法来回答"它到底行不行"这个问题。
做完了智能体,怎么知道它好不好用?很多人靠"自己试几轮感觉一下"就上线了,结果用户一用就翻车。智能体的评估需要系统化方法,不能只靠主观感觉。本文介绍一套实用的评估框架。
| 层次 | 评估对象 | 方法 | 目标 |
|---|---|---|---|
| 组件级 | 单个工具/提示词 | 单元测试 | 各模块独立可用 |
| 任务级 | 完整任务流程 | 测试用例集 | 端到端正确完成 |
| 体验级 | 用户主观感受 | 人工评审/用户反馈 | 实际使用满意 |
三个层次由内到外,组件级保证基础质量,任务级验证功能正确,体验级衡量真实价值。
测试用例集是智能体评估的核心资产。一个好的测试用例包含四个部分:
建议按以下比例准备用例:
正常流程用例 60% —— 覆盖主要使用场景
边界情况用例 20% —— 极端输入、空输入、超长输入
错误处理用例 15% —— 工具失败、数据缺失时的表现
安全测试用例 5% —— 越权操作、敏感内容、注入攻击
能用数字衡量的,就不要靠人眼看。以下是几类可自动计算的指标:
最核心的指标:在测试用例集中,智能体成功完成任务的比例。需要明确"成功"的定义——是输出格式正确就算成功,还是内容质量也要达标?
智能体选择正确工具并传入正确参数的比例。计算方式:
工具调用准确率 = (选对工具且参数正确的次数) / (总工具调用次数)
这个指标能定位是"决策层"还是"执行层"的问题。
完成同样任务需要的对话轮次数。轮次越少,效率越高,用户体验越好。如果完成一个简单查询需要5轮对话,说明规划或工具选择有问题。
这三个指标直接影响用户体验和运营成本,需要持续监控。
自动指标只能衡量"对不对",内容质量好不好还需要人工评审。推荐使用"盲评打分法":
评审员不需要知道哪个是智能体的回答,这样能避免"对AI有偏见"或"对AI过于宽容"的倾向。
用另一个模型来评估智能体输出,是近两年流行的做法。具体流程:
eval_prompt = f"""
请评估以下智能体回答的质量。
用户问题:{question}
标准答案:{expected}
智能体回答:{actual}
请按以下维度打分(1-5分):
1. 准确性:信息是否正确
2. 完整性:是否覆盖了问题的所有方面
3. 简洁性:是否有多余内容
4. 格式:是否符合要求的输出格式
请给出每项分数和理由,最后给出总分。
"""
LLM辅助评估的优势是成本低、速度快,适合大规模评测。缺点是评估模型本身可能不准,建议与人工评审交叉验证,确认LLM评估结果与人工评估的一致性后再大规模使用。
智能体的评估不是一次性的。每次修改提示词、更换模型或更新工具后,都应该跑一遍回归测试,确保没有引入新问题。
推荐做法:
评估的最终目的不是打分,而是发现问题和指导优化。一个有效的评估体系应该能告诉你"哪里不行"和"为什么不行",而不只是"总分多少"。