mcpField
E
evaluation

evaluation

github.com/sickn33测试与质量48.8k163 次安装今天更新
代码仓库

关于 evaluation

面向 Agent 系统开发者的评估技能,指导建立测试集、多维评分标准与持续评估流程,以发现回归并衡量上下文策略效果。

主要功能

  1. 01多维质量评分标准
  2. 02LLM 与人工评估
  3. 03按复杂度划分测试集
  4. 04上下文策略对比
  5. 05持续评估与回归监测

适用场景

  1. 01比较不同 Agent 配置
  2. 02上线前发现质量回归
  3. 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. 定义与你的用例相关的质量维度
  2. 创建带有清晰、可操作等级描述的评分标准
  3. 从真实使用模式和边缘案例构建测试集
  4. 实现自动化评估流水线
  5. 在做出变更前建立基线指标
  6. 对所有重大变更运行评估
  7. 随时间跟踪指标以进行趋势分析
  8. 用人工审查补充自动化评估
避免评估陷阱

过拟合特定路径:评估结果,而非特定步骤。 忽视边缘案例:包含多样化的测试场景。 单一指标执念:使用多维评分标准。 忽视上下文影响:以真实的上下文大小进行测试。 跳过人工评估:自动化评估会遗漏细微问题。

示例

示例 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"
    }
]

指南

  1. 使用多维评分标准,而非单一指标
  2. 评估结果,而非特定执行路径
  3. 覆盖从简单到复杂的各个复杂度级别
  4. 使用符合实际情况的上下文大小和历史记录进行测试
  5. 持续运行评估,而不只是在发布前进行
  6. 使用人工审核补充大模型评估
  7. 长期跟踪指标以检测趋势
  8. 根据使用场景设定明确的通过/失败阈值

集成

此技能与所有其他技能相连,是一项横向关注点:

  • 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

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为针对特定环境的验证、测试或专家审核的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并寻求澄清。

评论

支持 Markdown