---
title: Google Gemini Live
description: 'Integrate Google Gemini Live with the Conversational AI Engine using
  the Gemini Developer API.

  '
sidebar_position: 3
platform: android
exported_from: https://docs.agora.io/en/conversational-ai/models/mllm/gemini
exported_on: '2026-06-05T05:02:38.634319Z'
exported_file: gemini.md
---

> For a complete site index fetch https://docs.agora.io/llms.txt. For all pages in this product fetch https://docs.agora.io/en/conversational-ai/overview/product-overview.md

[HTML Version](https://docs.agora.io/en/conversational-ai/models/mllm/gemini)

# Google Gemini Live


Google Gemini Live provides multimodal large language model capabilities with real-time audio processing, enabling natural voice conversations without separate ASR/TTS components. This page covers integration using the Gemini Developer API, authenticated with a Gemini API key obtained from Google AI Studio.

> ℹ️ **Info**
> Enabling MLLM automatically disables ASR, LLM, and TTS since the MLLM handles end-to-end voice processing directly.

### Sample configuration

The following example shows a starting `mllm` parameter configuration you can use when you [Start a conversational AI agent](https://docs-md.agora.io/en/conversational-ai/rest-api/agent/join.md).

```json
"mllm": {
  "enable": true,
  "api_key": "<GOOGLE_GEMINI_API_KEY>",
  "messages": [
    {
      "role": "user",
      "content": "<HISTORY_CONTENT>"
    }
  ],
  "params": {
    "model": "gemini-3.1-flash-live-preview",
    "instructions": "You are a friendly assistant.",
    "voice": "Charon",
    "affective_dialog": false,
    "proactive_audio": false,
    "transcribe_agent": true,
    "transcribe_user": true,
    "http_options": {
      "api_version": "v1beta"
    }
  },
  "turn_detection": {
    // see details below
  },  
  "input_modalities": [
    "audio"
  ],
  "output_modalities": [
    "audio"
  ],
  "greeting_message": "Hi, how can I assist you today?",
  "failure_message": "Sorry, I encountered an issue. Please try again.",
  "vendor": "gemini"
}
```

### Turn detection

To set up turn detection, add a `turn_detection` block inside the `mllm` object when you [Start a conversational AI agent](https://docs-md.agora.io/en/conversational-ai/rest-api/agent/join.md).

> ℹ️ **Info**
> When `mllm.turn_detection` is defined, the top-level `turn_detection` object has no effect.

The following examples show the supported configurations for Google Gemini Live. 

* **Server VAD**

  ```json
  "turn_detection": {
    "mode": "server_vad",
    "server_vad_config": {
      "prefix_padding_ms": 800,
      "silence_duration_ms": 640,
      "start_of_speech_sensitivity": "START_SENSITIVITY_HIGH",
      "end_of_speech_sensitivity": "END_SENSITIVITY_HIGH"
    }
  }
  ```

* **Agora VAD**

  ```json
  "turn_detection": {
    "mode": "agora_vad",
    "agora_vad_config": {
      "interrupt_duration_ms": 160,
      "prefix_padding_ms": 800,
      "silence_duration_ms": 640,
      "threshold": 0.5
    }
  }
  ```

### Key parameters

**mllm**

- **enable** (boolean, optional): Enables the MLLM module. Replaces the deprecated `advanced_features.enable_mllm`.
- **api_key** (string, required): The Google Gemini API key used to authenticate requests. You can generate an API key in [Google AI Studio](https://aistudio.google.com/apikey).
- **messages** (array[object], optional): An array of conversation history items passed to the model as context. Each item represents a single message in the conversation history.
  - **role** (string, required): The role of the message author. For example, `system` or `user`.
  - **content** (string, required): The content of the message.
- **params** (object, required): Configuration object for the Gemini Live model.
  - **model** (string, required): The Gemini Live model identifier.
  - **instructions** (string, optional): System instructions that define the agent's behavior or tone.
  - **voice** (string, optional): The voice identifier for audio output. For example, `Aoede`, `Puck`, `Charon`, `Kore`, `Fenrir`, `Leda`, `Orus`, or `Zephyr`.
  - **affective_dialog** (boolean, optional): Whether to enable affective dialog, which allows the model to adapt its tone based on the user's emotional cues.
  - **proactive_audio** (boolean, optional): When enabled, the model may choose not to respond if the user's input does not require a reply, such as background speech or incomplete requests.
  - **transcribe_agent** (boolean, optional): Whether to transcribe the agent's speech in real time.
  - **transcribe_user** (boolean, optional): Whether to transcribe the user's speech in real time.
  - **http_options** (object, optional): HTTP request options for the Gemini Live API.
    - **api_version** (string, optional): The API version to use. For example, `v1beta`.
- **turn_detection** (object, optional): Turn detection configuration for the MLLM module. For a full list of `turn_detection` parameters, see [`mllm.turn_detection`](https://docs-md.agora.io/en/conversational-ai/rest-api/agent/join.md).
  - **mode** (string, optional, possible values: `agora_vad`, `server_vad`): - `agora_vad`: Agora VAD-based detection. 
      - `server_vad`: Vendor-side VAD-based detection.
  - **agora_vad_config** (object, optional): Configuration for Agora VAD-based turn detection. Applicable when `mode` is `agora_vad`.
    - **interrupt_duration_ms** (integer, optional): Minimum duration of speech in milliseconds required to trigger an interruption.
    - **prefix_padding_ms** (integer, optional): Duration of audio in milliseconds to include before the detected speech start.
    - **silence_duration_ms** (integer, optional): Duration of silence in milliseconds required to determine end of speech.
    - **threshold** (number, optional): VAD sensitivity threshold. A higher value reduces false positives.
  - **server_vad_config** (object, optional): Configuration for vendor-side VAD-based turn detection. Applicable when `mode` is `server_vad`. Parameters are passed through to the vendor.
    - **prefix_padding_ms** (integer, optional): Duration of audio in milliseconds to include before the detected speech start.
    - **silence_duration_ms** (integer, optional): Duration of silence in milliseconds required to determine end of speech.
    - **start_of_speech_sensitivity** (string, optional, possible values: `START_SENSITIVITY_HIGH`, `START_SENSITIVITY_LOW`): Sensitivity for start of speech detection.
    - **end_of_speech_sensitivity** (string, optional, possible values: `END_SENSITIVITY_HIGH`, `END_SENSITIVITY_LOW`): Sensitivity for end of speech detection.
- **input_modalities** (array[string], optional, default: `["audio"]`): Input modalities for the MLLM.

    - `["audio"]`: Audio-only input
    - `["audio", "text"]`: Accept both audio and text input
- **output_modalities** (array[string], optional, default: `["audio"]`): Output modalities for the MLLM.

    - `["audio"]`: Audio-only output
    - `["text", "audio"]`: Combined text and audio output
- **greeting_message** (string, optional): The message the agent speaks when a user joins the channel.
- **failure_message** (string, optional): The message the agent speaks when an error occurs.
- **vendor** (string, required): The MLLM provider identifier. Set to `"gemini"` to use Google Gemini Live with the Gemini Developer API.

For comprehensive API reference, real-time capabilities, and detailed parameter descriptions, see the [Google Gemini Live API](https://ai.google.dev/api/live).