SuperAPI AI 工具集

eval-harness

测试与质量

查看项目

更新于 10-15 10:54

技能介绍

用途

Eval Harness 是一个针对 Claude Code 会话的正式评估框架,实现评估驱动开发(EDD)原则。它把评估类比为“AI 开发的单元测试”,用于在 AI 辅助工作中建立可衡量、可回归的评估流程。

适用场景包括:为 AI 辅助工作流设置评估驱动开发(EDD);为 Claude Code 任务完成定义通过/失败标准;使用 pass@k 指标衡量智能体可靠性;为提示词或智能体变更创建回归测试套件;跨模型版本对智能体性能进行基准测试。

核心理念

评估驱动开发将评估视为“AI 开发的单元测试”,其原则包括:

  • 在实现之前定义预期行为
  • 在开发过程中持续运行评估
  • 每次变更都跟踪回归
  • 使用 pass@k 指标衡量可靠性

评估类型

能力评估(Capability Evals)

测试 Claude 能否完成以前做不到的事,格式示例:

[CAPABILITY EVAL: feature-name]
Task: Description of what Claude should accomplish
Success Criteria:
  - [ ] Criterion 1
  - [ ] Criterion 2
  - [ ] Criterion 3
Expected Output: Description of expected result

回归评估(Regression Evals)

确保变更不会破坏现有功能,格式示例:

[REGRESSION EVAL: feature-name]
Baseline: SHA or checkpoint name
Tests:
  - existing-test-1: PASS/FAIL
  - existing-test-2: PASS/FAIL
  - existing-test-3: PASS/FAIL
Result: X/Y passed (previously Y/Y)

评分器类型

1. 基于代码的评分器

使用代码进行确定性检查,例如:

# Check if file contains expected pattern
grep -q "export function handleAuth" src/auth.ts && echo "PASS" || echo "FAIL"

# Check if tests pass
npm test -- --testPathPattern="auth" && echo "PASS" || echo "FAIL"

# Check if build succeeds
npm run build && echo "PASS" || echo "FAIL"

2. 基于模型的评分器

使用 Claude 评估开放式输出:

[MODEL GRADER PROMPT]
Evaluate the following code change:
1. Does it solve the stated problem?
2. Is it well-structured?
3. Are edge cases handled?
4. Is error handling appropriate?

Score: 1-5 (1=poor, 5=excellent)
Reasoning: [explanation]

3. 人工评分器

标记需要人工审查的内容:

[HUMAN REVIEW REQUIRED]
Change: Description of what changed
Reason: Why human review is needed
Risk Level: LOW/MEDIUM/HIGH

指标

pass@k

表示“k 次尝试中至少一次成功”:

  • pass@1:首次尝试成功率
  • pass@3:3 次尝试内成功
  • 典型目标:pass@3 > 90%

pass^k

表示“k 次试验全部成功”,可靠性要求更高:

  • pass^3:连续 3 次成功
  • 用于关键路径

评估工作流

1. 定义(编码之前)

## EVAL DEFINITION: feature-xyz

### Capability Evals
1. Can create new user account
2. Can validate email format
3. Can hash password securely

### Regression Evals
1. Existing login still works
2. Session management unchanged
3. Logout flow intact

### Success Metrics
- pass@3 > 90% for capability evals
- pass^3 = 100% for regression evals

2. 实现

编写代码以通过已定义的评估。

3. 评估

# Run capability evals
[Run each capability eval, record PASS/FAIL]

# Run regression evals
npm test -- --testPathPattern="existing"

# Generate report

4. 报告

EVAL REPORT: feature-xyz
========================

Capability Evals:
  create-user:     PASS (pass@1)
  validate-email:  PASS (pass@2)
  hash-password:   PASS (pass@1)
  Overall:         3/3 passed

Regression Evals:
  login-flow:      PASS
  session-mgmt:    PASS
  logout-flow:     PASS
  Overall:         3/3 passed

Metrics:
  pass@1: 67% (2/3)
  pass@3: 100% (3/3)

Status: READY FOR REVIEW

集成方式

  • 实现前:/eval define feature-name,在 .claude/evals/feature-name.md 创建评估定义文件
  • 实现期间:/eval check feature-name,运行当前评估并报告状态
  • 实现后:/eval report feature-name,生成完整评估报告

评估存储

评估在项目中存储结构:

.claude/
  evals/
    feature-xyz.md      # Eval definition
    feature-xyz.log     # Eval run history
    baseline.json       # Regression baselines

最佳实践

  • 在编码之前定义评估——强制清晰思考成功标准
  • 频繁运行评估——尽早发现回归
  • 持续跟踪 pass@k——监控可靠性趋势
  • 尽可能使用代码评分器——确定性优于概率性
  • 安全相关使用人工审查——绝不完全自动化安全检查
  • 保持评估快速——慢评估不会被运行
  • 评估与代码一起版本管理——评估是一等工件

示例:添加认证

## EVAL: add-authentication

### Phase 1: Define (10 min)
Capability Evals:
- [ ] User can register with email/password
- [ ] User can login with valid credentials
- [ ] Invalid credentials rejected with proper error
- [ ] Sessions persist across page reloads
- [ ] Logout clears session

Regression Evals:
- [ ] Public routes still accessible
- [ ] API responses unchanged
- [ ] Database schema compatible

### Phase 2: Implement (varies)
[Write code]

### Phase 3: Evaluate
Run: /eval check add-authentication

### Phase 4: Report
EVAL REPORT: add-authentication
==============================
Capability: 5/5 passed (pass@3: 100%)
Regression: 3/3 passed (pass^3: 100%)
Status: SHIP IT

产品评估(Product Evals,v1.8)

当行为质量无法仅由单元测试捕获时,使用产品评估。

评分器类型:

  • 代码评分器(确定性断言)
  • 规则评分器(正则/模式约束)
  • 模型评分器(LLM 作为评判的评分标准)
  • 人工评分器(对模糊输出进行人工裁定)

pass@k 指导:

  • pass@1:直接可靠性
  • pass@3:受控重试下的实用可靠性
  • pass^3:稳定性测试(3 次运行必须全部通过)

建议阈值:

  • 能力评估:pass@3 >= 0.90
  • 回归评估:发布关键路径 pass^3 = 1.00

评估反模式

  • 将提示词过拟合到已知评估示例
  • 只测量正常路径输出
  • 追求通过率时忽略成本和延迟漂移
  • 在发布门禁中允许不稳定的评分器

最小评估工件布局

  • .claude/evals/<feature>.md 定义
  • .claude/evals/<feature>.log 运行历史
  • docs/releases/<version>/eval-summary.md 发布快照

限制

资料未提供具体的收费、价格、平台要求或安装方式等信息,暂未提供。