Google Gemini 는 tool calling 을 조금 더 OOP 다운 봉투에 담아. Tool 은 Tool 안에 묶인 FunctionDeclaration 들이고, response 는 name 과 args 를 실은 function_call part 를 들고 와. args 는 Anthropic 처럼 진짜 dict 야.
google-genai 만의 특징은 automatic function calling 이야. Loop 를 직접 짜는 대신 SDK 에 진짜 Python 함수를 넘기면, SDK 가 알아서 실행하고 결과까지 넣어줘. Prototype 단계에선 편한데 production 엔 좁아 — 에러 처리도, 병렬 실행도, 기록을 남기는 것도 네 손을 떠나거든. Loop 가 어떻게 도는지 감을 잡는 데 쓰고, 실제로 내보낼 땐 직접 짜.
Gemini 도 function-calling 모드 를 열어놨어. AUTO (기본값), ANY (뭐가 됐든 하나는 불러야 함), NONE (부르지 마). OpenAI 의 tool_choice 와 뜻이 똑같고 enum 으로 준다는 것만 달라. 이 모드는 GenerationConfig 안에 들어가지, 맨 위 parameter 가 아니야.
Streaming 은 generate_content_stream 이 parts 가 자라나는 Candidate object 를 계속 내주는 방식이야. Function-call part 는 모델이 결정한 순간 통째로 한 번에 도착해 — Gemini 는 OpenAI 처럼 인자를 조각내서 흘려보내지 않아. 덕분에 tool-call streaming 을 받아먹기는 더 쉬운데, 첫 바이트는 조금 늦게 와.