Supported models¶
Live agents require a Live API model — a standard Gemini model will not hold a bidirectional connection. This page lists the models ADK supports for live agents, how to configure model names so your application survives model deprecations, and where to check current availability.
Native audio models¶
Live agents run on native audio models: the model processes audio input and generates audio output directly, end to end, without an intermediate text conversion step. This is what produces human-like speech with natural prosody, and it is the architecture ADK supports for live agents.
| Platform | Model | Stage | Notes |
|---|---|---|---|
| Gemini Live API | gemini-3.1-flash-live-preview | Preview | Newest. Lower latency, but no proactivity or affective dialog — see the caveats below |
| Gemini Live API | gemini-2.5-flash-native-audio-preview-12-2025 | Preview | Full feature set, including proactivity and affective dialog |
| Gemini Live API (Agent Platform) | gemini-live-2.5-flash-native-audio | GA | The only Live API model on Agent Platform. Also ADK's LlmAgent.DEFAULT_LIVE_MODEL |
Gemini 3.x Live models are Gemini Live API only
gemini-3.1-flash-live-preview runs on the Gemini Live API
(generativelanguage.googleapis.com) only. There is no Gemini 3.x Live model on
Agent Platform — if you are on Agent Platform, gemini-live-2.5-flash-native-audio
is your model.
What gemini-3.1-flash-live-preview does not support
Before switching from gemini-2.5-flash-native-audio-preview-12-2025, check that you
do not depend on any of these:
- Proactivity and affective dialog are
not supported. Remove
RunConfig.proactivityandRunConfig.enable_affective_dialog— leaving them set is the most common upgrade failure - Asynchronous function calling is not supported; function calling is synchronous only, so the model will not speak again until you return the tool response
- Thinking is configured with
thinking_level(minimal,low,medium,high), notthinking_budget - Server events carry multiple content parts at once. If your client assumes
event.content.parts[0]is the whole payload, iterate overpartsinstead - Turn coverage now defaults to including all detected audio activity and video frames, which can change your token costs
Agent Platform: the global location is not supported
Live API models are not available at GOOGLE_CLOUD_LOCATION=global on Agent Platform.
Use a regional endpoint (for example us-central1, us-east1, or asia-northeast1).
See Agent Platform locations
for the current list.
Key characteristics:
- End-to-end audio processing: Processes audio input and generates audio output directly without converting to text intermediately
- Natural prosody: Produces more human-like speech patterns, intonation, and emotional expressiveness
- Extended voice library: Supports the eight prebuilt Live API voices plus additional voices from the Text-to-Speech (TTS) service — see Voice configuration
- Automatic language detection: Determines language from conversation context without explicit configuration
- Advanced conversational features:
- Affective dialog: Adapts response style to input expression and tone, detecting emotional cues. Supported on
gemini-2.5-flash-native-audio-preview-12-2025andgemini-live-2.5-flash-native-audio, not ongemini-3.1-flash-live-preview - Proactive audio: Can proactively decide when to respond, offer suggestions, or ignore irrelevant input. Same model support as affective dialog
- Dynamic thinking: Supports thought summaries and thinking controls (
thinking_budgeton 2.5,thinking_levelon 3.1) - AUDIO-only response modality: Does not support the TEXT response modality with
RunConfig. To get text alongside audio, use audio transcription
How to handle model names¶
When building ADK applications, you'll need to specify which model to use. The recommended approach is to use environment variables for model configuration, which provides flexibility as model availability and naming change over time.
Recommended Pattern:
import os
from google.adk.agents import Agent
# Use environment variable with fallback to a sensible default
agent = Agent(
name="my_agent",
model=os.getenv("DEMO_AGENT_MODEL", "gemini-2.5-flash-native-audio-preview-12-2025"),
tools=[...],
instruction="..."
)
Why use environment variables:
- Model availability changes: Models are released, updated, and deprecated regularly.
gemini-2.0-flash-live-001was deprecated on December 09, 2025, andgemini-3.1-flash-live-previewarrived in March 2026 — a live agent written a year ago will not be pinned to a model that still exists - Platform-specific names: Gemini Live API and Gemini Live API on Agent Platform use different model naming conventions for the same functionality
- Easy switching: Change models without modifying code by updating the
.envfile - Environment-specific configuration: Use different models for development, staging, and production
Configuration in .env file:
# For Gemini Live API
DEMO_AGENT_MODEL=gemini-2.5-flash-native-audio-preview-12-2025
# ...or the newer Gemini 3.1 model, if you do not need proactivity or
# affective dialog
# DEMO_AGENT_MODEL=gemini-3.1-flash-live-preview
# For Gemini Live API (if using Agent Platform)
# DEMO_AGENT_MODEL=gemini-live-2.5-flash-native-audio
Environment Variable Loading Order
When using .env files with python-dotenv, you must call load_dotenv() before importing any modules that read environment variables. Otherwise, os.getenv() will return None and fall back to the default value, ignoring your .env configuration.
Correct order in main.py:
from dotenv import load_dotenv
from pathlib import Path
# Load .env file BEFORE importing agent
load_dotenv(Path(__file__).parent / ".env")
# Now safe to import modules that use environment variables
from google_search_agent.agent import agent
Incorrect order (will not work):
from dotenv import load_dotenv
from google_search_agent.agent import agent # Agent reads env var here
# Too late! Agent already initialized with default model
load_dotenv(Path(__file__).parent / ".env")
This is a Python import behavior: when you import a module, its top-level code executes immediately. If your agent module calls os.getenv("DEMO_AGENT_MODEL") at import time, the .env file must already be loaded.
Selecting the right model:
- Choose platform: Decide between Gemini Live API (public) or Gemini Live API on Agent Platform (enterprise). This narrows the model list for you — Agent Platform has exactly one Live API model
- Check current availability: Refer to the model table above and the official documentation
- Configure environment variable: Set
DEMO_AGENT_MODELin your.envfile (seeagent.py:17-39andmain.py:36-41)
Model compatibility and availability¶
For the latest information on Live API model compatibility and availability:
- Gemini Live API models: See the Gemini models documentation and the Live API capabilities guide
- Gemini Live API models (Agent Platform): See the Live API overview and the Agent Platform model documentation
Always verify model availability and feature support in the official documentation before deploying to production.