name: evaluation description: 为智能体系统构建评估框架。在测试智能体性能、验证上下文工程选择或衡量随时间改进时使用。
智能体系统评估方法
智能体系统的评估需要不同于传统软件甚至标准语言模型应用的方法。智能体做出动态决策,在多次运行之间具有非确定性,并且通常缺乏单一正确答案。有效的评估必须考虑这些特性,同时提供可操作的反馈。一个稳健的评估框架能够实现持续改进、捕捉回归,并验证上下文工程选择是否达到预期效果。
何时激活
在以下情况下激活此技能:
- 系统性地测试智能体性能
- 验证上下文工程选择
- 衡量随时间改进
- 在部署前捕捉回归
- 为智能体流水线构建质量门
- 比较不同的智能体配置
- 持续评估生产系统
核心概念
智能体评估需要以结果为中心的方法,考虑非确定性和多种有效路径。多维度的评分标准捕捉各种质量方面:事实准确性、完整性、引用准确性、来源质量和工具效率。LLM作为评判者提供可扩展的评估,而人工评估则捕捉边缘情况。
关键见解是,智能体可能找到实现目标的替代路径——评估应判断它们是否在遵循合理过程的同时实现了正确的结果。
性能驱动因素:95%的发现 关于BrowseComp评估(测试浏览智能体查找难以找到信息的能力)的研究发现,三个因素解释了95%的性能差异:
| 因素 | 解释的差异 | 含义 |
|---|---|---|
| Token使用量 | 80% | 更多Token = 更好性能 |
| 工具调用次数 | ~10% | 更多探索有帮助 |
| 模型选择 | ~5% | 更好的模型倍增效率 |
这一发现对评估设计有重要影响:
- Token预算很重要:用现实的Token预算评估智能体,而不是无限资源
- 模型升级胜过Token增加:升级到Claude Sonnet 4.5或GPT-5.2比在先前版本上加倍Token预算带来更大收益
- 多智能体验证:该发现验证了将工作分配给具有独立上下文窗口的多个智能体的架构
详细主题
评估挑战
非确定性和多种有效路径 智能体可能采取完全不同的有效路径来达到目标。一个智能体可能搜索三个来源,而另一个搜索十个。它们可能使用不同的工具来找到相同的答案。检查特定步骤的传统评估在这种情况下会失败。
解决方案是以结果为中心的评估,判断智能体是否在遵循合理过程的同时实现了正确的结果。
上下文相关的失败 智能体失败通常以微妙的方式依赖于上下文。一个智能体可能在简单查询上成功,但在复杂查询上失败。它可能在一个工具集上工作良好,但在另一个上失败。失败可能只在上下文积累后的扩展交互中显现。
评估必须覆盖一系列复杂性级别,并测试扩展交互,而不仅仅是孤立的查询。
复合质量维度 智能体质量不是单一维度。它包括事实准确性、完整性、连贯性、工具效率和处理质量。一个智能体可能在准确性上得分高,但在效率上得分低,反之亦然。
评估标准必须捕捉多个维度,并根据用例进行适当的加权。
评估标准设计
多维度评分标准 有效的评分标准涵盖关键维度,并具有描述性级别:
事实准确性:声明与事实相符(优秀到失败)
完整性:输出涵盖请求的方面(优秀到失败)
引用准确性:引用与声称的来源匹配(优秀到失败)
来源质量:使用适当的主要来源(优秀到失败)
工具效率:使用正确的工具,调用次数合理(优秀到失败)
评分标准打分 将维度评估转换为数值分数(0.0到1.0),并进行适当的加权。计算加权总体分数。根据用例要求确定通过阈值。
评估方法
LLM作为评判者 基于LLM的评估可扩展到大型测试集,并提供一致的判断。关键是设计有效的评估提示,捕捉感兴趣的维度。
提供清晰的任务描述、智能体输出、事实(如果可用)、具有级别描述的评价量表,并请求结构化判断。
人工评估 人工评估捕捉自动化遗漏的内容。人类注意到不寻常查询上的幻觉答案、系统故障以及自动化评估遗漏的细微偏见。
有效的人工评估涵盖边缘情况、系统抽样、跟踪模式并提供上下文理解。
最终状态评估 对于改变持久状态的智能体,最终状态评估关注最终状态是否符合预期,而不是智能体如何达到该状态。
测试集设计
样本选择 在开发期间从小样本开始。在智能体开发的早期,变化具有显著影响,因为有丰富的低垂果实。小测试集揭示大效果。
从实际使用模式中抽样。添加已知的边缘情况。确保跨复杂性级别的覆盖。
复杂性分层 测试集应跨越复杂性级别:简单(单次工具调用)、中等(多次工具调用)、复杂(多次工具调用、显著模糊性)和非常复杂(扩展交互、深度推理)。
上下文工程评估
测试上下文策略 上下文工程选择应通过系统评估进行验证。在同一测试集上使用不同的上下文策略运行智能体。比较质量分数、Token使用量和效率指标。
退化测试 通过在不同上下文大小下运行智能体来测试上下文退化如何影响性能。识别上下文变得有问题的性能悬崖。建立安全操作限制。
持续评估
评估流水线 构建在智能体更改时自动运行的评估流水线。随时间跟踪结果。比较版本以识别改进或回归。
监控生产 通过抽样交互和随机评估来跟踪生产中的评估指标。为质量下降设置警报。维护趋势分析仪表板。
实用指导
构建评估框架
- 定义与您的用例相关的质量维度
- 创建具有清晰、可操作级别描述的评分标准
- 从实际使用模式和边缘情况构建测试集
- 实现自动化评估流水线
- 在进行更改前建立基线指标
- 对所有重大更改运行评估
- 随时间跟踪指标进行趋势分析
- 用人工审查补充自动化评估
避免评估陷阱
过度拟合特定路径:评估结果,而不是特定步骤。 忽略边缘情况:包括多样化的测试场景。 单一指标痴迷:使用多维度评分标准。 忽视上下文影响:用现实的上下文大小进行测试。 跳过人工评估:自动化评估遗漏细微问题。
示例
示例1:简单评估
def evaluate_agent_response(response, expected):
rubric = load_rubric()
scores = {}
for dimension, config in rubric.items():
scores[dimension] = assess_dimension(response, expected, dimension)
overall = weighted_average(scores, config["weights"])
return {"passed": overall >= 0.7, "scores": scores}
示例2:测试集结构
测试集应跨越多个复杂性级别以确保全面评估:
test_set = [
{
"name": "simple_lookup",
"input": "法国的首都是什么?",
"expected": {"type": "fact", "answer": "巴黎"},
"complexity": "simple",
"description": "单次工具调用,事实查找"
},
{
"name": "medium_query",
"input": "比较苹果和微软上季度的收入",
"complexity": "medium",
"description": "多次工具调用,比较逻辑"
},
{
"name": "multi_step_reasoning",
"input": "分析Q1-Q4的销售数据并创建带有趋势的摘要报告",
"complexity": "complex",
"description": "多次工具调用,聚合,分析"
},
{
"name": "research_synthesis",
"input": "研究新兴AI技术,评估其潜在影响,并推荐采用策略",
"complexity": "very_complex",
"description": "扩展交互,深度推理,综合"
}
]
指南
- 使用多维度评分标准,而不是单一指标
- 评估结果,而不是特定的执行路径
- 覆盖从简单到复杂的复杂性级别
- 用现实的上下文大小和历史进行测试
- 持续运行评估,而不仅仅是在发布前
- 用人工审查补充LLM评估
- 随时间跟踪指标以进行趋势检测
- 根据用例设置清晰的通过/失败阈值
集成
此技能作为跨领域关注点连接到所有其他技能:
- context-fundamentals - 评估上下文使用
- context-degradation - 检测退化
- context-optimization - 测量优化效果
- multi-agent-patterns - 评估协调
- tool-design - 评估工具效果
- memory-systems - 评估内存质量
参考文献
内部参考:
- Metrics Reference - 详细的评估指标和实现
参考文献
内部技能:
- 所有其他技能都连接到评估以进行质量测量
外部资源:
- LLM评估基准
- 智能体评估研究论文
- 生产监控实践
技能元数据
创建时间:2025-12-20 最后更新:2025-12-20 作者:Agent Skills for Context Engineering Contributors 版本:1.0.0