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