ai.google.dev/gemini-api/docs/function-calling,2026年6月数据)。
与 OpenAI 格式的差异速查
注意一个易错点:Gemini 的
function_call.args 是结构化对象,不是 JSON 字符串,不需要 json.loads。
完整调用循环
调用模式(mode)
并行与多步调用
- 并行调用:一轮里模型可能返回多个
function_callpart(如同时查两个城市),逐个执行后把全部function_response一起回传 - 多步调用:模型可以”调函数 → 看结果 → 再调下一个”链式推进,循环处理直到响应里不再有
function_call。给循环设最大轮数,避免失控烧钱
最佳实践
- description 写给模型看:说清”什么时候该调我”,参数能用
enum收窄就别用自由字符串 - 工具定义保持稳定:参与缓存前缀匹配,频繁变动会破坏 缓存命中
- 需要确定性 JSON 输出而非调用外部工具时,考虑用
response_schema结构化输出代替 FC(见 原生调用 参数表) - 沙箱计算类任务可以直接用 code_execution 工具,不必自己实现计算函数
常见踩坑
相关链接
- 同组页面:原生调用 · 多模态与代码执行 · 缓存计费
- OpenAI 侧对照:OpenAI FC函数调用
- Google 官方文档:
ai.google.dev/gemini-api/docs/function-calling