Google Gemini 는 tool calling 을 살짝 더 OOP 한 envelope 로 감싸. Tool 은 Tool 안에 묶인 FunctionDeclaration object 들, response 는 name 과 args (real dict, Anthropic 처럼) 들고 있는 function_call part 를 carry.
google-genai 의 unique feature 는 automatic function calling: loop 직접 짜는 대신 SDK 에 진짜 Python function 넘기면 자동 실행하고 결과 넣어줌. Prototyping 엔 편하고 production 엔 제한적 — error handling, parallelism, audit trail control 을 잃어. Loop 느껴보는 용으로 쓰고, ship 할 땐 직접 짜.
Gemini 도 function-calling 모드 노출: AUTO (default), ANY (뭐든 호출 must), NONE (호출 금지). OpenAI tool_choice 와 같은 세 semantic, enum 으로. 모드는 GenerationConfig 안에 살아 — top-level parameter 아님.
Streaming 은 generate_content_stream 으로 자라는 parts 의 Candidate object yield. Function-call part 는 모델 결정할 때 한 번에 도착 — Gemini 는 OpenAI 처럼 argument delta 를 stream 안 함. Tool-call streaming 소비가 더 쉬워지지만 first byte 는 살짝 느려.