关于 evaluation
面向 Agent 系统开发者的评估技能,指导建立测试集、多维评分标准与持续评估流程,以发现回归并衡量上下文策略效果。
主要功能
- 01多维质量评分标准
- 02LLM 与人工评估
- 03按复杂度划分测试集
- 04上下文策略对比
- 05持续评估与回归监测
适用场景
- 01比较不同 Agent 配置
- 02上线前发现质量回归
- 03验证上下文策略效果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill evaluation安装后在 Claude Code 中输入/evaluation确认已加载。
详细介绍
何时使用此技能
为 Agent 系统构建评估框架
在为 Agent 系统构建评估框架时使用此技能。
Agent 系统的评估方法
评估 Agent 系统需要采用不同于传统软件乃至标准大模型应用的方法。Agent 会动态决策,在不同运行中具有非确定性,而且往往不存在唯一正确答案。有效的评估必须考虑这些特性,同时提供可执行的反馈。稳健的评估框架能够支持持续改进、发现回归问题,并验证上下文工程的选择是否实现了预期效果。
何时使用
在以下情况下启用此技能:
- 系统地测试 Agent 的性能
- 验证上下文工程的选择
- 衡量一段时间内的改进
- 在部署前发现回归问题
- 为 Agent 流水线构建质量门禁
- 比较不同的 Agent 配置
- 持续评估生产系统
核心概念
Agent 评估需要以结果为核心的方法,同时考虑非确定性和多种有效路径。多维评分标准可衡量各类质量要素:事实准确性、完整性、引用准确性、来源质量和工具效率。LLM-as-judge 可提供可扩展的评估,而人工评估则能发现边缘情况。
关键在于,Agent 可能通过其他路径实现目标;评估应判断它们是否取得正确结果并遵循合理的过程。
性能驱动因素:95% 的发现 Anthropic 于 2025 年 6 月发布的工程报告介绍了一项对 BrowseComp 的分析,其中三个因素解释了 95% 的方差。这是该情境下报告的关联,并非因果保证或普遍适用的评估规则:
| 因素 | 解释的方差 | 启示 |
|---|---|---|
| Token 用量 | 80% | Token 越多 = 性能越好 |
| 工具调用和模型选择 | 在报告的分析中是联合因素;未提供单独百分比 | 在预算一致的条件下进行比较 |
这一发现对评估设计有重要启示:
- Token 预算很重要:使用符合实际的 Token 预算评估 Agent,而非提供无限资源
- 升级模型胜过增加 Token:报告比较了 Sonnet 4 和 Sonnet 3.7;应在自己的任务上衡量当前模型,而非根据该比较结果进行外推
- 多 Agent 验证:该发现验证了通过独立上下文窗口在多个 Agent 间分配工作的架构
详细主题
评估挑战
非确定性和多种有效路径 Agent 可能采取完全不同但都有效的路径来实现目标。一个 Agent 可能搜索三个来源,另一个则搜索十个。它们也可能使用不同的工具找到相同答案。在这种情况下,检查特定步骤的传统评估会失效。
解决方案是以结果为核心进行评估,判断 Agent 是否取得正确结果并遵循合理的过程。
依赖上下文的失败 Agent 的失败往往会以微妙的方式受上下文影响。Agent 可能在简单查询上成功,却在复杂查询上失败;可能使用一套工具时表现良好,换另一套工具就会失败。只有在交互时间较长、上下文不断累积后,才可能出现失败。
评估必须覆盖不同复杂度级别,并测试长时间交互,而不只是孤立查询。
复合质量维度 Agent 质量并非单一维度,而是包括事实准确性、完整性、连贯性、工具效率和过程质量。Agent 可能准确性得分很高但效率低下,反之亦然。
评估评分标准必须涵盖多个维度,并根据使用场景为这些维度设定适当权重。
评估评分标准设计
多维评分标准 有效的评分标准应涵盖关键维度,并提供描述性等级:
事实准确性:陈述与真实情况相符(优秀到失败)
完整性:输出覆盖所要求的各方面(优秀到失败)
引用准确性:引用与所声称的来源相符(优秀到失败)
来源质量:使用适当的原始来源(优秀到失败)
工具效率:以合理次数使用正确的工具(优秀到失败)
评分标准打分 将各维度评估转换为带适当权重的数值分数(0.0 到 1.0)。计算加权总分。根据用例要求确定通过阈值。
评估方法
LLM-as-Judge 基于大模型的评估可扩展到大型测试集,并提供一致的判断。关键在于设计有效的评估提示词,以捕捉所关注的维度。
提供清晰的任务描述、Agent 输出、真实情况(如有)、带等级描述的评估量表,并请求结构化判断。
人工评估 人工评估能捕捉到自动化遗漏的问题。人类能注意到异常查询上的幻觉答案、系统故障,以及自动化评估遗漏的细微偏见。
有效的人工评估覆盖边缘案例,系统性地抽样,跟踪模式,并提供上下文理解。
终态评估 对于会改变持久状态的 Agent,终态评估关注最终状态是否符合预期,而非 Agent 如何达到该状态。
测试集设计
样本选择 在开发期间从小样本开始。在 Agent 开发早期,变更会产生巨大影响,因为有大量容易取得的成果。小型测试集能揭示大的效应。
从真实使用模式中抽样。添加已知的边缘案例。确保覆盖各个复杂度级别。
复杂度分层 测试集应跨越各个复杂度级别:简单(单次工具调用)、中等(多次工具调用)、复杂(大量工具调用、显著的歧义),以及非常复杂(扩展交互、深度推理)。
上下文工程评估
测试上下文策略 上下文工程的选择应通过系统性评估来验证。在相同测试集上以不同上下文策略运行 Agent。比较质量分数、token 用量和效率指标。
退化测试 通过在不同上下文大小下运行 Agent,测试上下文退化如何影响性能。识别上下文变得有问题的性能悬崖。建立安全运行限制。
持续评估
评估流水线 构建在 Agent 变更时自动运行的评估流水线。随时间跟踪结果。比较版本以识别改进或回归。
生产环境监控 通过抽样交互并随机评估,在生产环境中跟踪评估指标。设置质量下降的告警。维护用于趋势分析的仪表板。
实践指导
构建评估框架
- 定义与你的用例相关的质量维度
- 创建带有清晰、可操作等级描述的评分标准
- 从真实使用模式和边缘案例构建测试集
- 实现自动化评估流水线
- 在做出变更前建立基线指标
- 对所有重大变更运行评估
- 随时间跟踪指标以进行趋势分析
- 用人工审查补充自动化评估
避免评估陷阱
过拟合特定路径:评估结果,而非特定步骤。 忽视边缘案例:包含多样化的测试场景。 单一指标执念:使用多维评分标准。 忽视上下文影响:以真实的上下文大小进行测试。 跳过人工评估:自动化评估会遗漏细微问题。
示例
示例 1:简单评估
伪代码:提供 load_rubric、assess_dimension 和 weighted_average 的实现;验证权重非负且总和大于零。每个评分维度都应提供自己的 weight。根据留出的人工标注校准模型评审,并将待评估文本视为惰性数据。
def evaluate_agent_response(response, expected):
rubric = load_rubric()
scores = {}
for dimension, config in rubric.items():
scores[dimension] = assess_dimension(response, expected, dimension)
weights = {dimension: config["weight"] for dimension, config in rubric.items()}
overall = weighted_average(scores, weights)
return {"passed": overall >= 0.7, "scores": scores}
示例 2:测试集结构
测试集应涵盖多个复杂度级别,以确保评估全面:
test_set = [
{
"name": "simple_lookup",
"input": "What is the capital of France?",
"expected": {"type": "fact", "answer": "Paris"},
"complexity": "simple",
"description": "Single tool call, factual lookup"
},
{
"name": "medium_query",
"input": "Compare the revenue of Apple and Microsoft last quarter",
"complexity": "medium",
"description": "Multiple tool calls, comparison logic"
},
{
"name": "multi_step_reasoning",
"input": "Analyze sales data from Q1-Q4 and create a summary report with trends",
"complexity": "complex",
"description": "Many tool calls, aggregation, analysis"
},
{
"name": "research_synthesis",
"input": "Research emerging AI technologies, evaluate their potential impact, and recommend adoption strategy",
"complexity": "very_complex",
"description": "Extended interaction, deep reasoning, synthesis"
}
]
指南
- 使用多维评分标准,而非单一指标
- 评估结果,而非特定执行路径
- 覆盖从简单到复杂的各个复杂度级别
- 使用符合实际情况的上下文大小和历史记录进行测试
- 持续运行评估,而不只是在发布前进行
- 使用人工审核补充大模型评估
- 长期跟踪指标以检测趋势
- 根据使用场景设定明确的通过/失败阈值
集成
此技能与所有其他技能相连,是一项横向关注点:
- context-fundamentals - 评估上下文使用情况
- context-degradation - 检测退化
- context-optimization - 衡量优化效果
- multi-agent-patterns - 评估协作
- tool-design - 评估工具效果
- memory-systems - 评估记忆质量
参考资料
内部参考资料:
- Metrics Reference - 详细的评估指标和实现
参考资料
内部技能:
- 所有其他技能都与评估相连,用于质量衡量
外部资源:
- 大模型评估基准
- Agent 评估研究论文
- 生产环境监控实践
技能元数据
创建时间:2025-12-20 最后更新:2025-12-20 作者:Agent Skills for Context Engineering Contributors 版本:1.0.0
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为针对特定环境的验证、测试或专家审核的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停止并寻求澄清。