Gemini Adapters¶
Gemini SDK agent adapters — wraps a google-genai Client as an Agent.
gemini
¶
Gemini SDK agent adapters — wraps a google-genai Client as an Agent.
Provides two adapters:
- GeminiAgent: standard
generate_content(request/response) - GeminiLiveAgent: Live API over WebSocket (streaming/real-time)
Send audio directly to a Gemini model via the SDK, no HTTP endpoint needed.
Requires the google-genai package (already a core dependency).
GeminiAgent
¶
GeminiAgent(*, client: Any | None = None, model: str = 'gemini-2.0-flash', tools: list[Any] | None = None, system_instruction: str | None = None, config: Any | None = None)
Agent adapter that wraps a google.genai.Client object directly.
Sends audio to Gemini via client.aio.models.generate_content()
and auto-parses function-call responses with :class:GeminiResponseParser.
Usage::
from google import genai
client = genai.Client(api_key="...")
agent = GeminiAgent(
client=client,
model="gemini-2.0-flash",
tools=[book_flight_declaration],
)
response = await agent.run(audio)
For Vertex AI::
client = genai.Client(vertexai=True, project="my-project", location="us-central1")
agent = GeminiAgent(client=client, model="gemini-2.0-flash", tools=[...])
Source code in src/russo/adapters/gemini.py
run
async
¶
run(audio: Audio) -> AgentResponse
Send audio to Gemini and parse the tool-call response.
Source code in src/russo/adapters/gemini.py
GeminiLiveAgent
¶
GeminiLiveAgent(*, client: Any | None = None, session: Any | None = None, model: str = 'gemini-live-2.5-flash-native-audio', tools: list[Any] | None = None, system_instruction: str | None = None, config: Any | None = None, response_timeout: float = 30.0)
Agent adapter for Gemini's Live API (streaming/real-time).
Connects via client.aio.live.connect(), sends audio via
send_realtime_input, and collects function-call responses.
Accepts either a google.genai.Client (new session per run) or
a pre-existing Live session.
Source code in src/russo/adapters/gemini.py
run
async
¶
run(audio: Audio) -> AgentResponse
Send audio to a Live session and collect function calls.