第39章 企业级 DataAgent 评测体系设计与 Benchmark 构建¶
企业级 DataAgent 的评测对象不是一段最终回答,而是一条数据任务链。SQL 可能碰巧得到正确数字,却用了错误 Metric;报告可能语言流畅,却把相关关系写成因果;任务最终完成,也可能绕过权限或通过不可复现的路径得到结果。
因此,一个可用于发布决策的 Benchmark 必须同时回答:结果是否正确,模型得到的语义上下文是否正确,执行轨迹是否合理,安全边界是否守住,以及完成任务付出了多少成本。
企业 DataAgent Benchmark 的目标不是产生一个漂亮总分,而是把“在哪些任务上可靠、在哪些约束下必须停下来”变成可重复验证的发布边界。
39.1 Benchmark 不是题库:它是一套可复现的质量协议¶
一个合格 Benchmark 至少包含四部分:
- 任务定义:明确测什么能力和边界;
- 可复现数据:数据快照、权限和上下文固定;
- 统一执行/判分流程:不同版本按相同协议运行;
- 可解释指标:分数能回到具体失败类型。
只有“问题 + 黄金答案”而没有数据版本、语义口径、执行环境和评测脚本,更接近练习题,不适合作为生产回归。
图39-1:从 LLM Benchmark 到企业 DataAgent Benchmark 的演进时间线。来源:本书自绘。Alt text:时间轴从早期通用 NLP benchmark、Text-to-SQL(Spider)、多步 workflow(Spider 2.0)到企业内部任务集,标注评测对象逐步从单句 SQL 扩展到全链路任务。
评测对象经历了明显扩展:传统 NLP 关注固定输入输出;MMLU、BIG-Bench、HELM、C-Eval、CMMLU 评通用模型能力;AgentBench、WebArena、OSWorld 开始评工具和环境交互;WikiSQL、Spider、BIRD、Spider 2.0 评数据库和企业式 Text-to-SQL;BEAVER、Workspace-Bench、Deep Research 类 benchmark 又继续增加领域知识、依赖关系、开放报告和多步任务。
公开 Benchmark 适合提供方法论和能力下限,但企业是否上线仍要看自己的表、Metric、权限、用户问题和运行轨迹。 一个模型在 Spider 上得分高,不能证明它理解公司的经营 GMV 或能正确处理无权限用户。
39.2 评测对象:结果、语义上下文、轨迹、安全与成本¶
图39-2:DataAgent 评测对象分层图。来源:本书自绘。Alt text:自上而下分层,最终答案、解释与口径、SQL/代码正确性、执行轨迹,每层标注对应评测方式,体现评测须覆盖结果与过程多层而非只看答案。
可以把质量拆为:
$$ Score_{quality} = w_r Score_{result} + w_s Score_{semantic} + w_t Score_{trajectory} + w_{safe} Score_{safety} $$
若还要考虑运行效率:
$$ Score_{agent}=Score_{quality}-w_c\cdot CostPenalty $$
这些权重只是一种表达,生产中更重要的是区分“可加权指标”和“硬门禁”。越权、敏感泄漏、未审批写操作等通常应直接失败,不能让一个很高的语言质量分把风险平均掉。
表39-1:评测层与典型问题。来源:本书整理。
| 评测层 | 核心问题 | 典型方法 |
|---|---|---|
| Result | 数字、表格、Artifact 是否正确 | 执行比对、数值断言 |
| Semantic | Metric、schema、source、Memory、Policy 是否正确 | 必需 source / context 精准率召回率 |
| Trajectory | 工具、状态、权限检查、恢复路径是否合理 | eval_trace、规则、source graph |
| Safety | 是否越权、泄漏、绕过审批 | 硬规则 / Safety Set |
| Cost/Latency | 正确任务的运行代价是否可接受 | Trace 成本和时延 |
结果正确不能掩盖口径错误、越权路径或不可复现轨迹。 同样,轨迹不必和“参考脚本”逐步一致,只要必要证据、控制点和业务结果都成立。
39.3 任务空间:先画能力地图,再填样本¶
Benchmark 容易被大量简单问数“刷满”。更好的方式是先定义任务空间,再要求每个分桶达到最低覆盖。
图39-3:企业 DataAgent Benchmark 任务空间矩阵。来源:本书自绘。Alt text:矩阵以"任务类型(查询/归因/预测)"和"难度(单表/多表/多步)"为轴,每格放一类代表任务,体现 benchmark 按任务空间均衡覆盖而非随意堆题。
至少考虑三组维度:
任务意图:查询、对比、诊断、归因、预测、解释、报告、拒答/审批。
执行复杂度:单表、多表 Join、多事实表、跨源、历史快照、多轮、长上下文、多个 Artifact。
企业约束:Metric 歧义、权限差异、数据冲突、新鲜度、人工确认、安全限制、业务修订。
覆盖率可以写成:
$$ Coverage = \frac{\sum_{d \in D} I(count(d)\ge min(d))\cdot weight(d)} {\sum_{d \in D} weight(d)} $$
这样 1000 道单表查询不会掩盖“高风险审批样本只有 2 道”。
样本集也应分用途:
- Golden Set:高质量人工确认,稳定比较核心能力;
- Regression Set:历史故障和已修复问题;
- Safety Set:越权、敏感数据、拒答、Prompt Injection 等;
- Stress Set:长上下文、多表、工具故障、资源限制;
- Open Report Set:开放式分析/报告,需要 rubric;
- Candidate Pool:线上新问题,尚未完成准入。
Benchmark 的样本数量是次要指标,关键是它是否覆盖真实任务分布和不能承受的失败。
39.4 确定性评测优先:能用程序判定的,不要先交给 Judge¶
SQL、数字、权限和结构化 Artifact 应优先使用确定性评测。
SQL 至少区分“能否执行”和“结果是否正确”。不同 SQL 文本可能语义等价,因此结果比较前要标准化列、类型、排序、NULL 和浮点格式:
$$ ResultHit= \mathbf{1}[Normalize(R_{pred})=Normalize(R_{ref})] $$
数值任务使用绝对/相对容差:
$$ NumHit(x,x^)= \mathbf{1}\left[ |x-x^|\le \max(\epsilon_{abs},\epsilon_{rel}|x^*|) \right] $$
多个关键数值可加权:
$$ Score_{num}=\frac{\sum_i w_i NumHit(x_i,x_i^*)}{\sum_i w_i} $$
开放式报告也可以先做断言,例如:
- 是否出现正确 Metric/version;
- 所有关键数字是否存在于 SQL/Python Artifact;
- 必须结论是否覆盖;
- EvidenceRef 是否存在且可打开;
- 禁止字段是否没有出现;
- 报告是否正确进入 HITL。
这些断言通过后,才让第40章的 LLM-as-Judge 评价“解释是否完整、语言是否适合 CFO、建议是否可执行”。
模型裁判应补充程序无法稳定表达的开放质量,而不是替代已经可以严格验证的事实。
39.5 三层核心评测:Result、Semantic Context、Trajectory¶
图39-4:结果评测、语义上下文评测与轨迹评测。来源:本书自绘。Alt text:三种评测并列,结果评测比对最终答案、语义上下文评测检查口径与解释、轨迹评测核对执行步骤,箭头表示三者结合才能定位失败发生在哪一层。
Result¶
看最终数据、图表、报告和结构化字段是否正确。对开放式答案允许多种表达,但关键事实必须一致。
Semantic Context¶
看 Planner 决策前是否拿到正确、足够且有权访问的材料。可以把参考必需材料 S_ref 与实际 Context Package 中的 S_pred 比较:
$$ ContextRecall=\frac{|S_{pred}\cap S_{ref}|}{|S_{ref}|} $$
$$ ContextPrecision=\frac{|S_{pred}\cap S_{ref}|}{|S_{pred}|} $$
不仅要防“漏看关键 Metric”,也要防“塞入大量无关 source”扰乱模型。
Trajectory¶
看外显动作是否符合生产边界。例如:
- 指标歧义时是否先消歧;
- 计算是否真正调用工具,而不是模型心算;
- Tool Result 是否回灌 Planner;
- 权限检查是否发生在副作用前;
- EvidenceRef 是否来自真实读取过的 Artifact;
- 不可恢复错误是否停止重试。
轨迹允许多解。A Agent 可以先查指标字典再 SQL,B Agent 可以先查语义 View,只要都覆盖必要 source 和控制点,就不应因为步骤不同被判错。
39.6 eval_trace:用半标准化轨迹避免被框架锁死¶
LangGraph、AutoGen、OpenAI Agents SDK 和自研 Runtime 的原始 Trace 格式不同。评测平台不应直接绑定某一框架,而应在入口归一成最小公共骨架:
{
"run_id": "run_fin_042",
"steps": [
{
"step_id": "s1",
"type": "context_pack",
"inputs": ["turn_001", "schema_finance_v12"],
"outputs": ["ctxpkg_042"]
},
{
"step_id": "s2",
"type": "tool_call",
"tool": "sql_executor",
"inputs": ["ctxpkg_042"],
"outputs": ["sql_result_042"],
"status": "succeeded"
}
]
}
常见公共 step type:
context_pack
model_call
tool_call
policy_check
memory_read / memory_write
artifact_write
human_review
handoff
评测使用 eval_trace,原始 Trace 仍由第38章的观测系统保存。
进一步可以抽取 source graph:
$$ G_{trace}=(V,E) $$
节点是 Turn、Metric、Schema、Memory、Tool Result、Artifact;边是 reads、generates、references、derives。参考图不必规定完整行动顺序,而可以规定“必须读取哪些 source、禁止哪些 source、哪些依赖必须成立”。
一个简化评分:
$$ SourceGraphScore= \eta_v\frac{|V_{pred}\cap V_{ref}|}{|V_{ref}|} +\eta_e\frac{|E_{pred}\cap E_{ref}|}{|E_{ref}|} -\eta_n Noise(G_{pred}) $$
完整 source graph 标注成本较高,因此可以分层:核心 Golden Set 标完整图;普通 Regression 只标关键 source/禁止 source;线上失败在事故复盘时逐步补充。
轨迹标准化的目的不是强制所有 Agent 按相同步骤工作,而是让不同实现都能被同一套生产控制点检验。
39.7 公开 Benchmark 怎么用:校准方法,不替代企业准入¶
表39-2:公开 Benchmark 的借鉴重点。来源:本书整理。
| 类型 | 代表 | 可借鉴 | 企业仍需补齐 |
|---|---|---|---|
| Text-to-SQL | WikiSQL、Spider | SQL 泛化与执行评测 | 私有 Metric、权限 |
| 大规模 SQL | BIRD、Spider 2.0 | 复杂 schema / enterprise workflow | 企业语义层和组织流程 |
| 企业 SQL | BEAVER | 私有仓库、领域知识、子任务诊断 | 完整多轮 Agent 轨迹 |
| Agent | AgentBench、WebArena、OSWorld | 工具与环境交互 | 企业数据/审计 |
| Deep Research | DeepResearch Bench、ResearchRubrics | 证据与开放报告 rubric | SQL、权限、Metric |
| Workspace | Workspace-Bench | source/file dependency graph | 数据分析专属契约 |
公开排行榜适合看模型/方案能力趋势,也适合学习 dataset version、runner、submission、leaderboard 的运营方式。企业则应维护私有 leaderboard,将模型、Prompt、Tool、语义层、Policy 和 Runtime 版本放到同一批内部任务上比较。
39.8 持续评测平台:Benchmark 要进入发布流水线¶
一个可运行的持续评测平台至少包含:
Dataset Registry
Eval Runner
Deterministic Evaluators
LLM Judge / Human Review
Trace Adapter
Metrics / Leaderboard
Release Gate
Sample Lifecycle
每次 Eval Run 都绑定:
eval_run_id
benchmark_version
model_version
prompt_version
tool_version
semantic_layer_version
policy_version
data_snapshot_version
runtime_version
judge/evaluator_version
否则“这次准确率低 2%”无法解释是谁变了。
评测频率也要分层:
- Smoke Eval:PR/小改动快速检查;
- Regression Eval:Prompt、Tool、Runtime 变更;
- Safety Eval:权限/Policy/模型重大变更;
- Nightly Eval:固定跨场景趋势;
- Release Eval:重大版本完整门禁。
高风险 Safety Set 失败直接阻断,不能被总分拉回。成本和运行时长也应进入 leaderboard;如果质量提升 1% 但成本翻倍,是否发布是产品选择,而不是单纯“分数更高”。
评测只有真正能阻断发布、指导灰度和触发回滚时,才从报告变成平台基础设施。
39.9 样本生命周期:从线上问题成长为质量资产¶
Benchmark 会随业务变化。Metric 升级、流程废止、权限改变后,旧样本可能不再适合当前门禁,因此需要状态:
每条样本至少记录:来源、业务域、适用版本、Ground Truth 构造依据、EvidenceRef、owner、裁定人、最近通过版本和退役原因。
线上失败、人工驳回、用户修订、审计问题和高成本任务都可以进入 Candidate Pool,但进入正式集前要完成:脱敏、去重、口径确认、数据快照固定、评分规则确认。
退役不是删除。历史样本仍用于解释旧版本,只是不再影响当前发布门禁。
还要防 Benchmark 污染:长期只围绕公开/固定题调 Prompt,会让分数上升而泛化不变。保留隐藏样本,持续吸收真实线上长尾,是维持 benchmark 有效性的关键。
评测集本身也是生产资产,需要版本、owner、准入、复审和退役,而不是越积越大的静态题库。
本章小结¶
企业级 DataAgent 评测需要把 Result、Semantic Context、Trajectory、Safety 和 Cost 分开观察。能够确定判断的 SQL、数字、权限和 Evidence 应优先由程序校验,开放式解释和报告再交给 Judge/专家。
Benchmark 按真实任务空间覆盖,而不是靠简单问题堆数量;eval_trace 和 source graph 让不同 Agent 实现能够共享控制点评测。公开 benchmark 提供方法,内部 Gold/Regression/Safety 才决定上线。
成熟的评测体系最终不是告诉团队“模型得了多少分”,而是明确:哪些场景已经可以自动完成,哪些失败会阻断发布,某次改动修复了哪些真实问题,又有没有破坏其它任务。
参考文献¶
Hendrycks, D. et al. (2021). Measuring Massive Multitask Language Understanding. ICLR. https://arxiv.org/abs/2009.03300
Srivastava, A. et al. (2023). Beyond the Imitation Game: BIG-Bench. TMLR. https://arxiv.org/abs/2206.04615
Liang, P. et al. (2023). Holistic Evaluation of Language Models (HELM). TMLR. https://arxiv.org/abs/2211.09110
Huang, Y. et al. (2023). C-Eval. https://arxiv.org/abs/2305.08322
Li, H. et al. (2023). CMMLU. https://arxiv.org/abs/2306.09212
Jimenez, C. E. et al. (2024). SWE-bench. ICLR. https://arxiv.org/abs/2310.06770
Liu, X. et al. (2024). AgentBench. ICLR. https://arxiv.org/abs/2308.03688
Zhou, S. et al. (2024). WebArena. ICLR. https://arxiv.org/abs/2307.13854
Xie, T. et al. (2024). OSWorld. https://arxiv.org/abs/2404.07972
Zhong, V., Xiong, C., & Socher, R. (2017). WikiSQL / Seq2SQL. https://arxiv.org/abs/1709.00103
Yu, T. et al. (2018). Spider. EMNLP. https://arxiv.org/abs/1809.08887
Li, J. et al. (2023). BIRD. NeurIPS Datasets and Benchmarks. https://arxiv.org/abs/2305.03111
Lei, F. et al. (2024). Spider 2.0. https://arxiv.org/abs/2411.07763
Chen, P. B. et al. (2024). BEAVER. https://arxiv.org/abs/2409.02038
Du, M. et al. (2025). DeepResearch Bench. https://arxiv.org/abs/2506.11763
Sharma, T. et al. (2025). ResearchRubrics. https://arxiv.org/abs/2511.07685
Tang, Z. et al. (2026). Workspace-Bench 1.0. https://arxiv.org/abs/2605.03596
Muennighoff, N. et al. (2023). MTEB. EACL. https://arxiv.org/abs/2210.07316



