Golden Dataset 是经过人工确认、用于稳定回归的案例集合。第一版不需要数千条;先写 10—20 个高价值案例,覆盖常见 路径、边界值和已知事故。
一个案例应包含什么
from dataclasses import dataclass
@dataclass(frozen=True)
class Example:
question: str
order_id: str
expected_answer: str
expected_tool: str
完整数据集在 offline_eval.py下载 中。除输入和期望外,生产数据还应记录来源、 场景标签、难度、标注人和隐私级别。
期望不一定是一段标准答案
开放式 Agent 可能有多条正确路径。你可以记录:
- 必需事实和禁止事实。
- 必需工具、禁止工具和参数约束。
- 状态不变量,例如“审批必须先于退款”。
- 最终业务断言,例如账本状态。
- 允许的答案集合或 Rubric。
不要强制逐字匹配一条参考回复。
数据从哪里来
- 产品需求和业务规则。
- 专家手写的典型与边界案例。
- 生产失败 Trace,经脱敏和审核后回流。
- 合成扩展,但必须从可信种子出发并人工抽检。
Split 防止过拟合
- Train/Dev:开发 Prompt、Retriever 或 Judge 时可见。
- Validation:选择版本和阈值。
- Test:发布门禁,只在正式比较时使用。
- Holdout:长期隐藏,用来发现团队对公开测试集的过拟合。
数据泄漏指模型、Prompt 作者或调参流程提前看到了 Test 期望,导致分数虚高。
版本和血缘
案例变化时生成新 Dataset 版本。实验必须同时记录 Dataset、模型、Prompt、Tool Schema 和 Runtime 版本,才能重现。 不要静默修改旧期望后继续比较历史分数。
下一步
阅读 RAG 评测,把检索、证据和生成分开测量。