mcpField
A
agent-evaluation

agent-evaluation

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

关于 agent-evaluation

用于按任务用例评估 Agent 可观察行为的技能,适合比较版本、提示词或工具配置的变化。它强调冻结测试条件、逐例报告不确定性,并将安全违规与平均表现分开处理。

主要功能

  1. 01冻结用例、版本与评估预算
  2. 02验证测试框架的分类能力
  3. 03记录并分类每次运行
  4. 04分析波动与未决故障
  5. 05逐例比较结果及不确定性
  6. 06执行修复后的回归验证

适用场景

  1. 01比较 Agent 或提示词变更
  2. 02复现并调查已观察到的故障
  3. 03估计特定任务分布下的可靠性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill agent-evaluation

安装后在 Claude Code 中输入/agent-evaluation确认已加载。

附带文件references/architecture-sketches.md

详细介绍

Agent 评估

针对任务特定用例评估可观察的 Agent 行为。由 AAS 维护者于 2026-09-05 修改,以移除不受支持的基准声明、修正不确定性/错误报告,并将可选的架构草图与操作流程分开。

何时使用

在比较变更后的 Agent、提示词或工具配置,复现观察到的故障,或估计在已声明任务分布上的可靠性时使用。不要根据公开基准百分比或通用分数阈值推断产品就绪状态。

前提条件

  • 一组带版本号的用例集,包含预期的可观察结果和权限边界。
  • 已知的基线和候选修订版本,包括模型、提示词、工具、配置和运行时版本。
  • 经授权的合成或脱敏输入、隔离的目标,以及有上限的 token、时间和成本预算。
  • 一个验证器,能够区分错误结果、预期的安全拒绝、评估器故障和基础设施中断。仅当已声明的评估调用该提供商时,才需要提供商访问权限。

评估流程

  1. 冻结契约。 在执行前记录用例 ID 和数据集修订版本、基线/候选身份、目标环境、重复计划、预算、停止规则和决策标准。将关键安全和授权故障与平均质量分开;它们不能通过更高的分数来补偿。
  2. 验证测试框架。 运行一个已知通过的用例、一个已知失败的用例,以及一个故意制造的验证器/基础设施故障。确认每个用例都被正确分类,并且追踪记录保留不包含凭据和私有输入正文。如果分类错误,请修复测试框架并在测量 Agent 之前重复这些检查。
  3. 运行冻结的用例。 对基线和候选使用相同的用例定义和预算,并具有独立的夹具状态和记录的执行顺序。保留每次尝试及其运行 ID、结果、原因、延迟和资源总计。异常并不证明不安全请求被安全拒绝。
  4. 调查差异。 保留原始故障。将分歧分类为 Agent 行为、共享状态污染、验证器歧义或中断。仅使用预先声明的重复预算;不要重试直到通过、静默丢弃失败或将预期结果改为迎合候选。未解决的测试框架故障会使受影响的结果不确定。
  5. 比较并决策。 报告每个用例的结果和不确定性、回归、关键故障和不完整用例。对单个用例的重复运行不是任务分布的独立样本。更改预期需要单独审查的契约修订版本,并重新运行基线和候选;保留旧结果。
  6. 修复并验证。 进行有上限的修复,重新运行失败用例以验证机制,然后从干净状态重新运行适用的冻结回归测试套件。如果分歧持续存在,请在已声明的预算处停止。记录通过、失败或不确定,并附上确切证据;另行遵循项目发布/部署审批边界。

示例:改变后的工具参数处理

一个合成 Agent 改变其为只读查询选择租户标识符的方式。冻结三种情况:已授权的查询必须返回预置的 fixture,未授权的租户必须在不进行工具调用的情况下被拒绝,模拟的工具故障必须被归类为基础设施故障。既不要提供真实客户记录,也不要提供生产凭据。

为每种情况预先声明五次重复,每次使用全新状态,基线和候选对象使用相同的预算,并且对未授权的工具调用零容忍。假设候选对象在全部五次运行中都返回预期的已授权结果,但在第二种情况中进行了一次未授权调用:即使其总体成功率有所提高,候选对象仍然违反了权限契约。保留该次运行,修复参数授权,验证负向情况,然后重新运行冻结的测试套件。如果故障检测器本身崩溃,则将该情况标记为不确定,并在比较版本之前修复检测器。这些是示例性结果,不是实测的 Agent 结果。

预期输出:

contract: case-set revision, rules, repeat plan and budget
versions: baseline, candidate, model, prompt, tool and runtime
runs: one record per attempt, classified outcome and bounded evidence reference
comparison: per-case results, uncertainty, regressions and critical violations
decision: pass | fail | inconclusive; reason; unresolved work

不确定性处理示例

十次独立试验中的十次成功并不能证明 100% 的可靠性。这个无依赖的辅助函数返回近似 95% 的 Wilson 区间;对于 10/10,它约为 [0.7225, 1]。对于零次试验,它会拒绝输入。

function wilson95(passes, trials) {
  if (!Number.isSafeInteger(passes) || !Number.isSafeInteger(trials)
      || trials <= 0 || passes < 0 || passes > trials) throw new Error('Invalid counts');
  const z = 1.959963984540054;
  const p = passes / trials;
  const denominator = 1 + z * z / trials;
  const center = (p + z * z / (2 * trials)) / denominator;
  const margin = z * Math.sqrt(p * (1 - p) / trials + z * z / (4 * trials * trials)) / denominator;
  return [Math.max(0, center - margin), Math.min(1, center + margin)];
}

预期检查:0/10 具有正的上界;10/10 具有低于 1 的下界;0/0 失败。当重复运行共享情况或状态时,应使用情况级别或聚类的不确定性;将相关运行作为独立观测进行合并会夸大置信度。参见 NIST 区间指南。

可选架构模式

仅在设计自定义测试框架时,才阅读随附的 架构草图 中的相应章节:

  • 统计评估:重复的随机运行和描述性报告。
  • 行为契约:预期行为和不变量。
  • 对抗性测试:合成的、已授权的边界情况;关键词检测器需要经过审查的假阳性和假阴性示例。
  • 回归流水线:基线/候选工件比较。
  • 尖锐边缘:数据集不匹配、不稳定性、代理指标以及可能的泄漏。

这些类需要特定于应用程序的适配器,并非复制即可运行的实现。所列的任何工具、相关技能或委托都不是必需的依赖项。

限制

  • 架构草图中的示例性 80/90% 阈值和评分权重并非通用的合并/部署规则;请定义项目特定的标准,并将关键失败单独处理。
  • 小样本卡方比较或缺乏显著性并不能证明等价性;请使用适合计数、配对和多重比较的方法。
  • 异常并不自动等同于安全拒绝,测试重试不得抹去首次失败。
  • 与检索到的答案相似可能是合理的 RAG 行为;泄漏取决于评估允许 Agent 知道什么。
  • 大模型评判者不能替代真实用户反馈,输出截断也不能移除私有数据。请使用合成的或已授权的脱敏输入,并限制保留时间。

评论

支持 Markdown