HiDeepSeekDev
空闲特惠
评测对比BFCLFunction CallingAgent 评测

用 BFCL 评测 DeepSeek 工具调用:从函数参数到多轮 Agent 任务

使用 Berkeley Function Calling Leaderboard 检查 DeepSeek 的函数选择、参数生成、拒绝调用与多轮工具使用能力。

Agent 是否可靠,首先取决于模型能否选择正确函数、生成合法参数,并在不该调用工具时保持克制。Berkeley Function Calling Leaderboard(BFCL)提供可执行的函数调用评测,从单轮调用扩展到并行、多函数、多轮以及更接近真实 Agent 的任务。

一、BFCL 测的不是普通问答

  • Simple:选择一个函数并生成正确参数。
  • Multiple / Parallel:在多个候选函数间选择或并行调用。
  • Relevance:判断用户需求是否应该触发工具。
  • Multi-turn / Agentic:结合工具结果继续规划,并处理错误和状态。

二、生成和评分是两个阶段

pip install -e ./berkeley-function-call-leaderboard

# 先选择已配置的模型名和小规模类别
bfcl generate --model MODEL_NAME \
  --test-category simple_python,relevance \
  --num-threads 1

bfcl evaluate --model MODEL_NAME \
  --test-category simple_python,relevance

如果 DeepSeek 的具体模型版本尚未出现在 BFCL 的支持列表中,需要新增或复用 OpenAI 兼容 handler,并在模型配置中声明是否使用原生 Function Calling。不能为了跑通命令而冒用另一个模型名称。

三、原生 Tool Calls 与 Prompt 模拟要分榜

一种方式是把函数定义放进 API 的 tools 字段,让服务返回结构化 tool call;另一种方式是把函数说明写进系统 Prompt,要求模型输出约定文本。两种模式的解析难度和可靠性不同,结果不应混合比较。

四、重点看错误类型

  1. 选错函数,或在无关问题上强行调用工具。
  2. 参数缺失、类型错误、枚举越界或日期格式错误。
  3. 并行调用丢失、重复调用或依赖顺序错误。
  4. 工具报错后无法修正参数,陷入重复循环。
  5. 返回了看似正确但无法执行的 JSON 或代码。

五、从 Benchmark 走向业务 Harness

BFCL 分数通过后,还要加入企业自己的函数 schema、鉴权规则、危险操作确认、幂等性和超时恢复测试。所有实际工具应在沙箱或 mock 环境中执行,禁止评测任务直接修改生产数据。

工具调用准确率只是 Agent 的入口指标。可执行、可恢复、受权限约束,才是生产系统真正需要的可靠性。

参考资料

本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。

  1. 01BFCL 官方仓库与运行文档github.com
  2. 02BFCL 数据集说明github.com
  3. 03vLLM BFCL 压测说明github.com
  4. 04DeepSeek API Tool Calls 指南api-docs.deepseek.com
阅读至此返回学习中心