VAKRA 基准测试分析:智能体推理、工具使用与失败模式
TL;DR
Hugging Face 发布了 VAKRA 基准测试,这是一个包含 62 个领域、超过 8,000 个本地托管 API 的可执行套件,用于测试 AI 智能体在组合推理、工具选择、多跳工作流和策略合规性方面的表现;目前的先进模型表现不佳,暴露了在实际部署中的关键差距。
什么是 VAKRA?
VAKRA 是一个以工具为基础的可执行基准测试,旨在评估 AI 智能体在类企业环境中的推理和行动能力。与传统的孤立技能测试不同,VAKRA 通过要求智能体执行完整的多步工作流并提供执行轨迹进行验证,来衡量跨 API 和文档的组合推理能力。
关键统计数据:
- 8,000+ 由真实数据库支持的本地托管 API。
- 62 个领域,涵盖商业智能、仪表板和文档检索。
- 任务涉及 3–7 步推理链,将结构化 API 调用与非结构化文档检索相结合。
- 四个能力组测试不同的技能集(API 链式调用、工具选择、多跳推理以及带有策略约束的多源推理)。
该基准测试、数据集、排行榜和代码已在 Hugging Face 和 GitHub 上公开。
能力 1 – 使用商业智能 API 进行 API 链式调用
- 实例: 跨 54 个领域的 2,077 个实例。
- 工具集: SLOT‑BIRD(7 个通用工具)和 SEL‑BIRD(扩展的领域特定获取器)。
- 工作流: 从
get_data(tool_universe_id)开始加载轻量级预览并配置服务器,随后进行 1–12 次链式工具调用以进行过滤和选择数据。 - 示例 JSON 请求(简化版):
{ "query": "Which football team has a build‑up play speed of 31 …?", "tool_calls": [ {"name": "get_data", "arguments": {"tool_universe_id": "..."}, "label": "retrieved_data_1"}, {"name": "select_data_equal_to", "arguments": {"data_label": "retrieved_data_1", "key_name": "play_speed", "value": 31}, "label": "FILTERED_DF_0"}, .. ], "answer": "FC Barcelona" } - 挑战: 从庞大且动态的集合中选择正确的工具,并提供许多可选参数。
能力 2 – 使用仪表板 API 进行工具选择
- 实例: 跨 17 个领域的 1,597 个实例。
- 工具集: REST‑BIRD,通过 FastAPI 提供并由 MCP 服务器封装。
- 领域规模: 每个领域包含 6–328 个工具(平均 116 个)。
- 约束: OpenAI 对工具列表有 128 项的限制,这迫使智能体必须实现一种筛选机制;基准测试使用简单的启发式筛选器。
- 目标: 为查询识别出唯一的正确端点式 API。
能力 3 – 使用仪表板 API 进行多跳推理
- 实例: 跨 38 个领域的 869 个实例。
- 要求: 1–5 个逻辑跳跃;每一步都必须调用正确的 API 并传递适当的参数。
- 观察: 准确率随跳跃深度增加而急剧下降,证实了链式调用多个 API 是当前模型的主要难点。
能力 4 – 多跳、多源推理与策略遵循
- 实例: 跨 41 个领域的 644 个实例。
- 特性:
- 多源: 查询可能需要一系列步骤,如 API → 文档检索 (RAG) → API,通过源去污染确保每一步的答案仅能从单一来源获取。
- 多轮: 提供对话上下文;智能体只需回答当前轮次。
- 工具使用策略: 纯文本约束规定了可以使用哪些知识源(例如,“技术查询仅使用文档检索器”)。
- 策略执行: 基准测试智能体在提示词前添加约束句;开发者可以实现更复杂的检查。
评估框架
VAKRA 使用以执行为中心的瀑布式流水线,从工具执行正确性和最终答案质量两个方面验证智能体。
- 策略遵循(仅限能力 4)——通过程序验证。
- 工具调用序列验证 ——执行预测的调用;将响应与地面真值(ground-truth)响应进行比较。
- 如果精确匹配失败,则使用基于 LLM 的评估器(改编自 CRAG)检查预测的轨迹是否检索了所有必需信息,允许替代但有效的工具序列。
- 最终响应评估 ——LLM 裁判确认答案基于已执行的工具输出,并在事实层面与参考答案匹配。
评分
四个能力权重相等:
$$\text{Leaderboard Score}=\frac{1}{4}\sum_{i=1}^{4}\text{Capability}_i$$
- 能力 1-3: 简单准确率(正确查询数 / 总查询数)。
- 能力 4: 多源查询权重翻倍,以反映更高的难度。
错误分析 – 智能体在哪里崩溃
分析按第一个崩溃点对失败进行了分类:
- 工具选择错误。
- 缺失或幻觉参数。
- 参数值错误。
- 最终响应错误或无依据。
API 链式调用 (能力 1)
- 最佳模型: GPT‑OSS‑120B,主要归功于其对工具 Schema 的卓越理解以及对可选参数的稳健处理。
- 错误模式: 使用 SLOT‑BIRD 集合的模型在参数命名方面表现挣扎;使用 SEL‑BIRD 的模型由于工具集更大,犯了更多的工具选择错误。
仪表板工具选择 (能力 2)
- 最佳模型: Gemini‑3‑flash‑preview,在所有错误类别中表现优于其他模型。
- 主要错误: 工具选择失败和参数值错误;即使工具调用成功,合成最终答案仍然是一个挑战。
多跳推理 (能力 3)
- 趋势: 准确率随跳跃深度下降(1 跳 > 2 跳 > 3+ 跳)。所有模型都表现出相同的模式,证实了链式调用多个 API 会放大误差传播。
多跳多源与策略 (能力 4)
- 混合跳跃: 需要同时进行 API 调用和文档检索的实例最难;与纯 API 或纯 RAG 跳跃相比,性能大幅下降。
- 策略影响: 模型通常对策略的遵循较差;当策略限制了最相关的来源时,大多数模型会出现明显的准确率下降。Granite‑4.0‑h‑Small‑32B 是一个例外,退化较少。
- 具体观察: GPT‑OSS‑120B 经常跳过单跳 RAG 调用,转而从内部知识中回答;Gemini‑3‑flash‑preview 在 2 跳 API-RAG 组合上表现出色,可能利用了其在仪表板 API 上的优势。
对智能体开发的启示
- 工具能力 $ eq$ 可靠性: 选择正确的 API 只是问题的一部分;智能体还必须管理参数、执行多步工作流并遵守外部约束。
- 以执行为中心的指标至关重要: 传统的仅针对答案的评分掩盖了中间步骤的失败;VAKRA 基于轨迹的评估揭示了这些差距。
- 策略处理是一个弱点: 实际部署通常会施加合规或安全策略;当前模型在将此类约束融入推理方面表现挣扎。
- 基准测试作为开发目标: 通过揭示智能体在哪里崩溃,VAKRA 为改进工具使用模块、筛选机制和具备策略意识的提示词提供了具体的路线图。
如何尝试 VAKRA
- 数据集: https://huggingface.co/datasets/ibm-research/VAKRA
- 排行榜与提交: https://github.com/IBM/vakra?tab=readme-ov-file#submitting-to-the-live-leaderboard
- 代码与评估器: https://github.com/IBM/vakra
在基准测试中运行您的智能体,以发现它是在工具选择、多跳推理还是策略合规性方面失败,并根据 VAKRA 提供的详细错误细分进行迭代。