一场意外的评测
我们原本只是想为自己的项目选一个Function Calling能力最强的模型。但当我们对比了市面上的公开评测后,发现大部分评测都太简单了——只测试了单一函数调用,没有覆盖多函数、嵌套调用、错误恢复等复杂场景。
于是我们决定自己设计一套评测。100个测试用例,覆盖8个难度级别,6个主流模型。测试结果让我们重新审视了Function Calling的格局。
评测设计
测试模型:GPT-4o、Claude 4 Sonnet、Gemini 2.5 Pro、Qwen3-235B、DeepSeek-V3、Llama-4 Maverick
测试场景:
- 简单单一函数调用(如"查天气")
- 带可选参数的函数调用(如"搜索商品,可以按价格排序")
- 多函数选择(如"这可能是查订单也可能是查物流")
- 并行函数调用(如"同时查天气和查新闻")
- 链式函数调用(如"先查用户ID,再根据ID查订单")
- 错误恢复(如"函数调用失败后能否正确重试")
- 模糊需求(如"帮我看看那个东西怎么样了")
- 多轮对话中的函数调用
评测结果
综合排名:
Claude 4 Sonnet:准确率94%。在复杂场景(多函数选择、链式调用、错误恢复)中表现最稳定,几乎没有幻觉函数调用。
GPT-4o:准确率91%。在简单场景中无可挑剔,但在模糊需求场景中偶尔会"过度自信"——在本该要求用户澄清时直接调用了函数。
Gemini 2.5 Pro:准确率89%。在并行调用上表现最好,但在错误恢复场景中偶尔会"陷入循环"——反复调用同一个失败的函数。
Qwen3-235B:准确率86%。中文场景的Function Calling表现最好,但英文场景略逊于前三名。
DeepSeek-V3:准确率82%。在链式调用上表现出色,但函数选择的准确性有待提升。
Llama-4 Maverick:准确率78%。开源模型中的最佳表现,但与闭源模型仍有明显差距。
关键发现
发现一:函数调用能力与模型大小不完全正相关。 Claude 4 Sonnet(中等规模)在函数调用上超越了更大规模的GPT-4o和Gemini 2.5 Pro。这说明函数调用更多取决于训练策略和微调质量,而非模型大小。
发现二:中文函数调用仍然是一个短板。 除了Qwen3,其他模型在中文场景的函数调用准确率比英文场景低5-10个百分点。如果你主要服务中文用户,Qwen3是目前最好的选择。
发现三:并行调用是2026年的新战场。 2025年,大多数模型还只能做单次函数调用。2026年,并行调用已经成为标配。但不同模型的并行调用质量差异很大——Claude 4和Gemini 2.5表现最好,其他模型经常会"忘记"并行调用中有哪些已经完成。
发现四:错误恢复是区分优秀和普通模型的关键。 当函数调用失败时,优秀模型会分析失败原因并调整策略,普通模型会"放弃"并生成一个模糊的回复。
选择建议
如果你追求综合最佳:Claude 4 Sonnet是目前Function Calling综合能力最强的模型。
如果你主要服务中文用户:Qwen3-235B的中文Function Calling能力独树一帜。
如果你需要大量并行调用:Gemini 2.5 Pro在并行调用场景下表现最优。
如果你在成本敏感的场景:DeepSeek-V3的性价比最高,虽然准确率略低,但价格只有GPT-4o的1/5。
如果你是开源路线的拥趸:Llama-4 Maverick是开源模型中最值得关注的选择。
最后的提醒
Function Calling的能力评测不是一劳永逸的。模型在不断更新,评测结果也在不断变化。建议你在自己的实际场景中做一次"微评测"——用10-20个真实用户请求测试不同模型的表现,这比任何公开评测都更有参考价值。