0Pricing
AI Agents · 课时

构建黄金测试集

整理 50–200 个高质量的(输入、预期输出)样本对,覆盖真实使用中的长尾情况。

构建黄金测试集 是 CoddyKit 上的免费 AI Agents 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

什么是黄金集?

“黄金测试集”(或“黄金集”)是经过筛选的(输入、预期输出)对的集合,用于定义什么样的行为才是良好的。

每次修改都要根据这个集合进行衡量。

优秀黄金集的特征

  • 多样——涵盖常见 AND 边界情况
  • 由人工筛选——不是自动生成的
  • 有版本管理——冻结在 YOUR 代码库中
  • 有文档说明——每个案例都有理由说明

需要多少案例?

经验法则:

  • 50 个案例——最低可行数量
  • 200 个案例——良好的覆盖范围
  • 1000 个以上案例——成熟的产品

质量 > 数量。精心选择的 50 个案例胜过随机选择的 500 个。

案例来源

  1. 用户访谈——真实用户会提出什么问题
  2. 生产日志——实际收到的问题
  3. 错误报告——每个错误都变成一次评测
  4. 对抗性生成——要求 LLM 攻破智能体

Mining Bad Production Traces

for trace in last_week_traces():
    if trace.has_thumbs_down or trace.had_error:
        case = {
            'input': trace.input,
            'why_bad': trace.feedback_comment,
            'expected': None   # to be filled by human reviewer
        }
        save_to_review_queue(case)

预期输出:精确匹配与启发式判断

预期输出有两种形式:

  • 精确匹配——用于提取、分类和计算
  • 启发式判断——用于开放式问答,评估是否出现了关键事实

Heuristic Scoring

def score_answer(actual, expected_facts):
    return sum(1 for f in expected_facts if f.lower() in actual.lower()) / len(expected_facts)

case = {
    'input': 'What is our refund policy?',
    'expected_facts': ['30 days', 'unopened', 'receipt required'],
    'min_score': 0.66   # at least 2 of 3 facts mentioned
}

actual_answer = "You can return items within 30 days if they are unopened."
score = score_answer(actual_answer, case['expected_facts'])
print(f"Score: {score:.2f} (min required: {case['min_score']})")

对抗性案例

请纳入困难案例:

  • 超出范围的问题(“火星上的天气怎么样?”)
  • 含糊的查询
  • 提示词注入尝试
  • 外语输入
  • 非常长的输入

黄金集的版本管理

将其以 JSON 格式存储在您的代码库中。每个更新该集合的 PR 都必须说明原因:

// gold-set.json
[
  {
    "id": "refund-policy-001",
    "input": "What is your refund policy?",
    "expected_facts": ["30 days", "unopened", "receipt required"],
    "added_by": "alice@",
    "added_at": "2025-08-12",
    "reason": "Top customer support question"
  }
]

测试集/保留集划分

要检测过拟合,请划分为:

  • 开发集——用于迭代(您会看到这部分数据)
  • 测试集——用于衡量(您不得针对它进行调优)
  • 保留集——仅在重大版本发布前使用

帕累托标记

按类别标记案例,以便查看 WHERE 发生了回归:

tag1 = {'tags': ['policy', 'common-question']}
tag2 = {'tags': ['math', 'edge-case']}
print(tag1)
print(tag2)

# Run eval and report:
print("Category 'policy': 0.92")
print("Category 'math': 0.68   <- regression here")

评测评分标准

对于复杂输出,请编写评分标准:必须包含什么、必须 NOT 包含什么,以及哪些内容更理想:

rubric = {
    'must_include': ['30 days'],
    'must_not_include': ['no refunds'],
    'preferably_includes': ['receipt']
}
for k, v in rubric.items():
    print(f"{k}: {v}")

案例来源

评测案例的最高信号来源是什么?

回顾

至少 50 个经过筛选的案例,来源于真实用户和生产环境故障。为其进行版本管理和标记,并划分为开发集/测试集/保留集。每出现一个错误就扩充它。

常见问题解答

「构建黄金测试集」课时是免费的吗?

是的 — 「构建黄金测试集」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「构建黄金测试集」这节课中我会学到什么?

整理 50–200 个高质量的(输入、预期输出)样本对,覆盖真实使用中的长尾情况。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「构建黄金测试集」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 面向评估的智能体开发
  2. 构建黄金测试集
  3. LLM 作为评判者的陷阱
  4. 基准测试套件:SWE-Bench、GAIA、ToolBench
← 返回 AI Agents