Aprende a crear un asistente de voz en tiempo real con la API Gemini Live y Google ADK. Domina WebSockets, llamadas a herramientas y transmisión de audio nativa.
Si alguna vez has intentado crear un asistente de voz, sabrás lo torpe que es el flujo tradicional. Grabas la voz del usuario, la transcribes con un modelo STT, envías ese texto a un LLM, esperas la respuesta y luego la pasas por un motor TTS.
Cuando el usuario por fin oye la respuesta, han pasado varios segundos de silencio incómodo. Se parece más a un ciclo lento de petición y respuesta que a una conversación.
La API Gemini Live cambia este flujo permitiéndote transmitir audio y vídeo de forma continua sobre una conexión WebSocket con estado. Como el modelo procesa y genera audio de forma nativa, puede reaccionar al instante, adaptarse a los matices de la voz y gestionar interrupciones a mitad de frase (barge-in).
En este tutorial, te mostraré cómo crear un concierge de viajes de IA en tiempo real usando el kit de desarrollo orientado a código Google Agent Development Kit (ADK). Dotaremos a nuestro agente de Google Search para consultar el tiempo en destino en vivo, lo conectaremos a una base de datos ficticia de vuelos y levantaremos una interfaz local para desarrolladores para probar cómo maneja el diálogo en tiempo real y la llamada a herramientas.
Entender el funcionamiento interno, las capacidades y los precios de la API Gemini Live.
Configurar un entorno de Python con Google Agent Development Kit.
Exponer herramientas integradas (Google Search) y lógica de negocio propia (consultas a una base de datos de estado de vuelos) al asistente de voz.
Lanzar una interfaz web local para hablar en directo con tu agente de viajes.
Requisitos previos:
Conocimientos básicos de Python.
Un proyecto de Google Cloud (para acceder a Vertex AI) o una clave de API de Google AI Studio.
¿Qué es la API Gemini Live?
En esencia, la API Gemini Live es una herramienta de desarrollo de Google que te permite crear interacciones de voz y visión en tiempo real con los modelos Gemini. En lugar de esperar respuestas por turnos basadas en texto, habilita una conversación continua y natural entre un usuario y un agente de IA.
Técnicamente, la API Gemini Live está diseñada para transmisión bidireccional en tiempo real. A diferencia de las APIs HTTP REST estándar con ciclos sin estado de petición-respuesta, la Live API se basa en un WebSocket (WSS) persistente con estado. A través de este canal abierto, el cliente transmite audio sin procesar, vídeo (enviado como fotogramas de imagen a ~1 FPS) y texto, mientras que el modelo devuelve audio y texto nativos de forma inmediata.
Capacidades clave de Gemini Live
Barge-in (interrumpibilidad): En una conversación humana natural, no esperamos a que la otra persona termine un párrafo si necesitamos aclarar algo. Gemini Live admite barge-in de serie; los usuarios pueden interrumpir el habla del modelo a mitad de frase, y el servidor detiene de inmediato la transmisión de audio y se adapta a la nueva entrada.
Diálogo afectivo y audio nativo: en lugar de generar texto y pasarlo a un motor de Text-to-Speech (TTS), modelos como gemini-live-2.5-flash-native-audio y gemini-3.1-flash-live-preview procesan y generan audio de forma nativa. Esto preserva los matices emocionales, la risa, la adaptación del tono y el ritmo del habla, haciendo que las interacciones se sientan más humanas.
Entradas multimodales y uso de herramientas: la Live API no se limita al audio. Puede "ver" tu entorno mediante fotogramas de vídeo y activar funciones o herramientas externas (como Google Search o APIs personalizadas) en tiempo real, incorporando los resultados al flujo de voz.
Precios de la API Gemini Live
Como la transmisión en tiempo real implica una conexión continua y full‑duplex, el modelo de facturación difiere del de las APIs de texto estático. Google ofrece una capa gratuita generosa para prototipado en Google AI Studio y una capa de pago lista para producción en Vertex AI.
El modelo gemini-3.1-flash-live-preview se factura por millón de tokens o se convierte
directamente en una métrica basada en la duración para medios de audio y vídeo:
Métrica
Capa gratuita (Google AI Studio)
Capa de pago (Vertex AI)
Precio de entrada (texto)
Gratis
$0.75 por 1M de tokens
Precio de entrada (audio)
Gratis
$3.00 por 1M de tokens (o $0.005 / minuto)
Precio de entrada (imagen/vídeo)
Gratis
$1.00 por 1M de tokens (o $0.002 / minuto)
Precio de salida (texto)
Gratis
$4.50 por 1M de tokens
Precio de salida (audio)
Gratis
$12.00 por 1M de tokens (o $0.018 / minuto)
Grounding con Google Search
Gratis (con límite de cuota)
Primeros 5,000 prompts/mes gratis, después $14 por 1,000 consultas
Si estás prototipando, te recomiendo encarecidamente probar gratis en Google AI Studio, que ofrece acceso generoso sujeto a límites de cuota.
Cuando estés listo para escalar, puedes migrar tu proyecto a Vertex AI con un modelo de pago por uso para producción, que garantiza rendimiento y SLAs de nivel empresarial.
Cómo acceder a la API Gemini Live
Como desarrollador, tienes varias opciones de arquitectura al implementar la Live API. Como se basa en WebSockets, cómo enrutas la conexión afecta a la latencia y a la seguridad.
Cliente a servidor vs servidor a servidor
Cliente a servidor: tu frontend (p. ej., una app web o móvil) se conecta directamente al endpoint WebSocket de Google. Es la mejor opción para minimizar la latencia porque el flujo de audio no da saltos adicionales.
Sin embargo, no puedes exponer claves de API de Google Cloud en el cliente; debes implementar un flujo de autenticación que genere tokens temporales y efímeros para un acceso seguro desde el cliente.
Servidor a servidor: tu frontend transmite audio a tu propio backend, que es quien abre el WebSocket hacia la API Gemini Live. Es muy seguro y te permite inyectar lógica de backend (como autenticación de usuarios o consultas a BBDD), pero añade una ligera demora de red al flujo de audio.
SDKs e integraciones con partners
Aunque puedes escribir código WebSocket desde cero, la forma más sencilla de empezar es usar el GenAI SDK de Google o el Agent Development Kit (ADK).
Para entornos empresariales en producción, el ecosistema ha evolucionado rápidamente para admitir integraciones WebRTC. Plataformas como LiveKit, Pipecat by Daily, Twilio y Voximplant ofrecen infraestructura robusta para gestionar jitter de red, cancelación de eco y enrutado de audio en tiempo real directamente hacia la API Gemini Live.
Cómo crear un asistente de voz en tiempo real con la API Gemini Live
Pongámoslo en práctica. Vamos a crear un concierge de viajes con IA.
Este agente usará la API Gemini Live para conversar por voz con los usuarios y, además, tendrá acceso a funciones personalizadas en Python para consultar estados de vuelos en tiempo real durante la conversación.
Usaremos Google Agent Development Kit (ADK) y el potente modelo gemini-3.1-flash-live-preview, optimizado tanto para turnos de texto estándar como para transmisión WebSocket en tiempo real.
1. Preparar el entorno
Primero, crea un entorno virtual de Python e instala el paquete de ADK necesario. Ejecuta estos comandos en tu terminal:
# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install the Agent Development Kit
pip install google-adkCon la tecnología de
Después, configura tus variables de entorno para que el ADK pueda autenticarse de forma segura con tu proyecto de Google Cloud:
export GOOGLE_CLOUD_PROJECT="your-project-id"
export GOOGLE_CLOUD_LOCATION="us-central1"Con la tecnología de
Si usas una clave de la Gemini API de Google AI Studio, crea un archivo .env en la carpeta raíz:
Crea un archivo llamado agent.py en el directorio de tu proyecto. El ADK está diseñado para detectar y ejecutar automáticamente la variable root_agent. En este código definiremos una función personalizada en Python para comprobar el estado de vuelos y la pasaremos directamente al conjunto de herramientas del agente. Inicializa el directorio del agente:
mkdir voice_assistant
touch voice_assistant/__init__.py
touch voice_assistant/agent.pyCon la tecnología de
Expón el paquete del agente dentro de voice_assistant/__init__.py:
3. Definir el agente y exponer herramientas personalizadas
Abre voice_assistant/agent.py y escribe la configuración del agente de viajes. En el siguiente código, definimos una función estándar de Python, check_flight_status.
En Google ADK, cualquier función de Python con anotaciones de tipo y un docstring adecuados se convierte automáticamente en una herramienta del agente. El LLM usa la descripción del docstring y los parámetros para decidir cuándo y cómo llamar a la función.
Configuración del modelo
Aprovechar Gemini 3.1 Flash Live Preview. Para admitir ambos modos de interacción en el servidor de desarrollo de ADK —chat de texto estándar (que usa los endpoints REST generateContent) y la interfaz de micrófono bidireccional en tiempo real por WebSocket— establecemos explícitamente el modelo en gemini-3.1-flash-live-preview.
A diferencia de los modelos antiguos solo de streaming, que devuelven 404 Not Found cuando se invocan por HTTP REST estándar, gemini-3.1-flash-live-preview admite de forma nativa tanto la generación de contenido por REST como la transmisión por WebSocket con estado.
from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search
def check_flight_status(flight_no: str) -> str:
"""Check the real-time flight status (e.g. delays, gate info, cancellations).
Args:
flight_no: The flight number to look up (e.g., AA120, DL450, UA990).
"""
flight_no = flight_no.upper().strip()
if "AA120" in flight_no:
return "Flight AA120 to Paris is currently delayed by 45 minutes due to air traffic control. New departure time: 3:15 PM. Gate status: B22."
elif "DL450" in flight_no:
return "Flight DL450 to London is on time. Gate status: Boarding now at Gate C10."
elif "UA990" in flight_no:
return "Flight UA990 to Tokyo is cancelled due to adverse weather conditions at the destination. Passengers are advised to rebook at the counter."
else:
return f"Flight {flight_no} is currently scheduled on time. No delay reports found in the flight database."
# Define the root agent with search grounding and custom database flight checks
root_agent = Agent(
model='gemini-3.1-flash-live-preview',
name='root_agent',
description='A real-time AI Travel Concierge with flight tracking and search grounding.',
instruction=(
'You are an expert AI Travel Concierge. You assist users with real-time flight status checkups, '
'destination recommendations, and general travel planning. '
'Always answer professionally and conversationally. '
'Use the check_flight_status tool when a user asks about a specific flight status. '
'Use Google Search to look up weather, transit conditions, or travel advisories at destinations.'
),
tools=[google_search, check_flight_status],
)Con la tecnología de
4. Ejecutar y probar la UI interactiva de desarrollo
El ADK incluye un servidor de desarrollo y una interfaz web integrados. Así puedes probar tu agente en local sin escribir código de frontend. Inicia el servidor web desde tu espacio de trabajo:
Deberías ver salida indicando que el servidor se ha iniciado:
Abre http://127.0.0.1:8000 en tu navegador.
Selecciona tu agente en la lista de aplicaciones.
Haz clic en el botón del micrófono para iniciar una sesión en vivo.
Selecciona root_agent en la lista de aplicaciones para abrir la interfaz de chat.
4. Habla al micrófono: ¿Puedes comprobar el estado del vuelo AA120? El agente interpretará tu petición, reconocerá que necesita información de base de datos, activará la función de Python personalizada check_flight_status y mostrará el resultado de la llamada a la herramienta en JSON antes de darte la respuesta hablada.
5. Probar el grounding con Google Search: ahora, hazle una pregunta sobre el tiempo en destino: ¿Qué tiempo hace ahora en Londres? El agente activará la herramienta integrada google_search, rastreará la web y sintetizará las condiciones en vivo en su salida de audio.
6. Probar la función de barge-in: Haz una pregunta amplia como: Háblame de los mejores sitios históricos para visitar en Roma. Cuando el agente empiece a enumerarlos, interrúmpelo en voz alta: ¡Espera, mejor comprueba el vuelo UA990!. El agente detendrá de inmediato su flujo de voz, interrumpirá los detalles de Roma, ejecutará la herramienta personalizada de seguimiento de vuelos y te informará de que el vuelo UA990 ha sido cancelado. Esto demuestra la naturaleza de baja latencia y full‑duplex de la conexión de la Live API.
Mejores prácticas para producción con la API Gemini Live
Crear aplicaciones de voz en tiempo real introduce requisitos únicos en arquitectura de prompts, gestión del estado de red, ingesta de audio y escalado de recursos. A continuación, encontrarás prácticas recomendadas basadas en las directrices oficiales para desarrolladores.
1. Diseñar instrucciones del sistema claras
Para sacar el máximo partido de Gemini Live, estructura tus instrucciones del sistema (SIs) con una jerarquía estricta: persona, reglas conversacionales y guardarraíles.
Personas separadas: limita el rol de cada agente a una única instrucción del sistema en lugar de sobrecargar uno con múltiples personalidades.
Delimita los flujos de conversación: separa explícitamente los elementos de una sola vez (p. ej., "pide al usuario su nombre y número de billete una vez") de los bucles conversacionales abiertos (p. ej., "responde preguntas sobre recomendaciones de viaje todo el tiempo que quiera").
Escribe las invocaciones de herramientas en frases: describe el uso de herramientas de forma secuencial. Por ejemplo: "Primero, pide al usuario su número de billete. Luego invoca look_up_ticket con ese número".
Impón consistencia de idioma: los modelos de audio nativo pueden derivar de idioma si cambia el contexto. Si tu agente debe hablar solo inglés, impónlo en la instrucción: RESPONDE EN English. YOU MUST RESPOND UNMISTAKABLY IN English.
2. Definiciones de herramientas precisas y condiciones de invocación
Al exponer herramientas a la Live API:
Incluye siempre anotaciones de tipo y descripciones detalladas de parámetros.
Documenta explícitamente las condiciones de invocación dentro de la descripción de metadatos de la herramienta (p. ej., "Invoca esta herramienta solo después de que el usuario haya confirmado su fecha de salida y destino"). Esto evita que el LLM dispare funciones antes de tiempo.
3. Gestión del contexto de audio nativo (compresión)
Los tokens de audio nativo se acumulan rápidamente, aproximadamente 25 tokens por segundo de conversación. En sesiones de voz largas, esto puede llenar la ventana de contexto y aumentar la latencia.
Activa ContextWindowCompressionConfig en tu configuración de conexión para descartar historial antiguo una vez se alcance un umbral:
from google.genai import types
live_config = types.LiveConnectConfig(
context_window_compression=types.ContextWindowCompressionConfig(
trigger_tokens=100_000,
sliding_window=types.SlidingWindow(target_tokens=4_000),
),
)Con la tecnología de
Nota: la compresión de contexto hará que se pierda el historial de conversación antiguo.
4. Reanudación transparente de sesión
Las conexiones móviles en tiempo real son propensas a pérdidas de paquetes y desconexiones temporales. En lugar de iniciar un estado de conversación nuevo desde cero, implementa una reanudación de sesión transparente:
Configura tu flujo con SessionResumptionConfig(transparent=True).
Escucha eventos session_resumption_update del servidor y guarda el new_handle.
Mantén un buffer local de mensajes salientes. Cuando caiga la conexión, captura el APIError o la señal GoAway, reconéctate usando el handle guardado y reproduce solo los mensajes del cliente no reconocidos (usando el server-reported last_consumed_client_message_index para podar el buffer).
5. Optimización de la transmisión de audio
Buffering en cliente: no almacenes en buffer fotogramas de audio largos en el cliente antes de enviarlos. Transmite fragmentos pequeños de audio (entre 20 ms y 40 ms) de forma continua para minimizar la latencia extremo a extremo.
Resampling del micrófono: asegúrate de que la captura de audio en el cliente remuestrea las entradas (normalmente 44.1 kHz o 48 kHz) a 16 kHz PCM antes de enviarlas por el WebSocket.
Señales VAD explícitas: deja que el modelo gestione la detección de actividad de voz (VAD). Si tu frontend necesita mostrar indicadores inmediatos (p. ej., "La IA está escuchando" vs "La IA está pensando"), habilita explicit_vad_signal=True en tu configuración para recibir eventos de inicio/parada de VAD directamente en el flujo de mensajes del servidor.
6. Seguridad (gestión de tokens)
Nunca hardcodees claves maestras: evita exponer tu clave de API de AI Studio o credenciales de cuentas de servicio de Google Cloud en código del lado cliente (navegadores o apps móviles).
Implementa un intercambio de tokens efímeros: construye un endpoint de autenticación en tu backend seguro. Cuando un cliente quiera iniciar una sesión de voz, el backend genera un token de acceso de corta duración y con permisos restringidos (p. ej., vía IAM de Vertex AI) y se lo entrega al cliente. El cliente usa esta credencial temporal para abrir la conexión WebSocket directa.
Conclusión: el horizonte de la IA conversacional
El paso de LLMs por turnos y solo texto a transmisión multimodal de baja latencia supone un cambio de paradigma en cómo construimos interfaces humano‑máquina. Al procesar audio y vídeo de forma nativa mediante conexiones WebSocket con estado, la API Gemini Live nos permite crear experiencias agentic que se sienten menos como programas estáticos y más como interacciones humanas fluidas.
A lo largo de esta guía, hemos explorado la arquitectura interna de Gemini Live, analizado los modelos de precios y creado un concierge de viajes con IA completamente funcional usando Google Agent Development Kit (ADK). Hemos visto cómo ADK convierte funciones estándar de Python en herramientas activas del agente, dando a nuestro asistente de voz acceso tanto a grounding con búsquedas web como a consultas a bases de datos internas privadas.
¿Qué construir a continuación?
Ahora que dominas los fundamentos de los agentes de voz en tiempo real, plantéate ampliar tu concierge de viajes con IA:
Exponer flujos de vídeo en vivo: añade compatibilidad para enviar imágenes de cámara y deja que el concierge "vea" mapas, tarjetas de embarque o vales físicos de viaje en tiempo real.
Integrar herramientas transaccionales personalizadas: implementa una herramienta book_flight o reserve_hotel que modifique estado real, integrando ámbitos de autenticación para confirmaciones seguras del usuario.
Enrutado de middleware para producción: pasa de las pruebas locales con ADK a un framework basado en WebRTC usando LiveKit o Pipecat para transmitir llamadas de voz de producción directamente desde apps web y móviles.
¿Listo para crear flujos conversacionales más avanzados? Echa un vistazo al itinerario de aprendizaje AI Agent Fundamentals de DataCamp para profundizar en arquitecturas agentic, uso de herramientas y despliegues de IA generativa.
Escribo y creo en Internet. Experto desarrollador de Google para Google Workspace, licenciado en Informática por la NMIMS y apasionado creador en el ámbito de la automatización y la IA generativa.
Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
La API TTS de OpenAI es un punto final que permite a los usuarios interactuar con su modelo de inteligencia artificial TTS, que convierte el texto en lenguaje hablado con sonido natural.
Esta guía te acompanya a través de los fundamentos de la API ChatGPT, demostrando su potencial en el procesamiento del lenguaje natural y la comunicación impulsada por la IA.
Una visión completa de la API Assistants con nuestro artículo, que ofrece una mirada en profundidad a sus características, usos en la industria, guía de configuración y las mejores prácticas para maximizar su potencial en diversas aplicaciones empresariales.
Descubra las potentes funciones de la API Python de OpenAI Whisper para transcripción y traducción. Dispone de soporte multilingüe y mejora rápida para una transcripción precisa.
Si alguna vez has intentado crear un asistente de voz, sabrás lo torpe que es el flujo tradicional. Grabas la voz del usuario, la transcribes con un modelo STT, envías ese texto a un LLM, esperas la respuesta y luego la pasas por un motor TTS.
Cuando el usuario por fin oye la respuesta, han pasado varios segundos de silencio incómodo. Se parece más a un ciclo lento de petición y respuesta que a una conversación.
La API Gemini Live cambia este flujo permitiéndote transmitir audio y vídeo de forma continua sobre una conexión WebSocket con estado. Como el modelo procesa y genera audio de forma nativa, puede reaccionar al instante, adaptarse a los matices de la voz y gestionar interrupciones a mitad de frase (barge-in).
En este tutorial, te mostraré cómo crear un concierge de viajes de IA en tiempo real usando el kit de desarrollo orientado a código Google Agent Development Kit (ADK). Dotaremos a nuestro agente de Google Search para consultar el tiempo en destino en vivo, lo conectaremos a una base de datos ficticia de vuelos y levantaremos una interfaz local para desarrolladores para probar cómo maneja el diálogo en tiempo real y la llamada a herramientas.
Si eres nuevo en el ecosistema, te recomiendo empezar con el curso Building AI Agents with Google ADK para sentar una base sólida.
Qué vas a conseguir:
Requisitos previos:
¿Qué es la API Gemini Live?
En esencia, la API Gemini Live es una herramienta de desarrollo de Google que te permite crear interacciones de voz y visión en tiempo real con los modelos Gemini. En lugar de esperar respuestas por turnos basadas en texto, habilita una conversación continua y natural entre un usuario y un agente de IA.
Técnicamente, la API Gemini Live está diseñada para transmisión bidireccional en tiempo real. A diferencia de las APIs HTTP REST estándar con ciclos sin estado de petición-respuesta, la Live API se basa en un WebSocket (WSS) persistente con estado. A través de este canal abierto, el cliente transmite audio sin procesar, vídeo (enviado como fotogramas de imagen a ~1 FPS) y texto, mientras que el modelo devuelve audio y texto nativos de forma inmediata.
Capacidades clave de Gemini Live
Precios de la API Gemini Live
Como la transmisión en tiempo real implica una conexión continua y full‑duplex, el modelo de facturación difiere del de las APIs de texto estático. Google ofrece una capa gratuita generosa para prototipado en Google AI Studio y una capa de pago lista para producción en Vertex AI.
El modelo gemini-3.1-flash-live-preview se factura por millón de tokens o se convierte
directamente en una métrica basada en la duración para medios de audio y vídeo:
Métrica
Capa gratuita (Google AI Studio)
Capa de pago (Vertex AI)
Precio de entrada (texto)
Gratis
$0.75 por 1M de tokens
Precio de entrada (audio)
Gratis
$3.00 por 1M de tokens (o $0.005 / minuto)
Precio de entrada (imagen/vídeo)
Gratis
$1.00 por 1M de tokens (o $0.002 / minuto)
Precio de salida (texto)
Gratis
$4.50 por 1M de tokens
Precio de salida (audio)
Gratis
$12.00 por 1M de tokens (o $0.018 / minuto)
Grounding con Google Search
Gratis (con límite de cuota)
Primeros 5,000 prompts/mes gratis, después $14 por 1,000 consultas
Si estás prototipando, te recomiendo encarecidamente probar gratis en Google AI Studio, que ofrece acceso generoso sujeto a límites de cuota.
Cuando estés listo para escalar, puedes migrar tu proyecto a Vertex AI con un modelo de pago por uso para producción, que garantiza rendimiento y SLAs de nivel empresarial.
Cómo acceder a la API Gemini Live
Como desarrollador, tienes varias opciones de arquitectura al implementar la Live API. Como se basa en WebSockets, cómo enrutas la conexión afecta a la latencia y a la seguridad.
Cliente a servidor vs servidor a servidor
SDKs e integraciones con partners
Aunque puedes escribir código WebSocket desde cero, la forma más sencilla de empezar es usar el GenAI SDK de Google o el Agent Development Kit (ADK).
Para entornos empresariales en producción, el ecosistema ha evolucionado rápidamente para admitir integraciones WebRTC. Plataformas como LiveKit, Pipecat by Daily, Twilio y Voximplant ofrecen infraestructura robusta para gestionar jitter de red, cancelación de eco y enrutado de audio en tiempo real directamente hacia la API Gemini Live.
Cómo crear un asistente de voz en tiempo real con la API Gemini Live
Pongámoslo en práctica. Vamos a crear un concierge de viajes con IA.
Este agente usará la API Gemini Live para conversar por voz con los usuarios y, además, tendrá acceso a funciones personalizadas en Python para consultar estados de vuelos en tiempo real durante la conversación.
Usaremos Google Agent Development Kit (ADK) y el potente modelo gemini-3.1-flash-live-preview, optimizado tanto para turnos de texto estándar como para transmisión WebSocket en tiempo real.
1. Preparar el entorno
Primero, crea un entorno virtual de Python e instala el paquete de ADK necesario. Ejecuta estos comandos en tu terminal:
Después, configura tus variables de entorno para que el ADK pueda autenticarse de forma segura con tu proyecto de Google Cloud:
Si usas una clave de la Gemini API de Google AI Studio, crea un archivo .env en la carpeta raíz:
2. Inicializar el agente de Gemini Live
Crea un archivo llamado agent.py en el directorio de tu proyecto. El ADK está diseñado para detectar y ejecutar automáticamente la variable root_agent. En este código definiremos una función personalizada en Python para comprobar el estado de vuelos y la pasaremos directamente al conjunto de herramientas del agente. Inicializa el directorio del agente:
Expón el paquete del agente dentro de voice_assistant/__init__.py:
3. Definir el agente y exponer herramientas personalizadas
Abre
voice_assistant/agent.pyy escribe la configuración del agente de viajes. En el siguiente código, definimos una función estándar de Python,check_flight_status.En Google ADK, cualquier función de Python con anotaciones de tipo y un docstring adecuados se convierte automáticamente en una herramienta del agente. El LLM usa la descripción del docstring y los parámetros para decidir cuándo y cómo llamar a la función.
Configuración del modelo
Aprovechar Gemini 3.1 Flash Live Preview. Para admitir ambos modos de interacción en el servidor de desarrollo de ADK —chat de texto estándar (que usa los endpoints REST generateContent) y la interfaz de micrófono bidireccional en tiempo real por WebSocket— establecemos explícitamente el modelo en gemini-3.1-flash-live-preview.
A diferencia de los modelos antiguos solo de streaming, que devuelven 404 Not Found cuando se invocan por HTTP REST estándar, gemini-3.1-flash-live-preview admite de forma nativa tanto la generación de contenido por REST como la transmisión por WebSocket con estado.
4. Ejecutar y probar la UI interactiva de desarrollo
El ADK incluye un servidor de desarrollo y una interfaz web integrados. Así puedes probar tu agente en local sin escribir código de frontend. Inicia el servidor web desde tu espacio de trabajo:
Deberías ver salida indicando que el servidor se ha iniciado:
Selecciona root_agent en la lista de aplicaciones para abrir la interfaz de chat.
4. Habla al micrófono: ¿Puedes comprobar el estado del vuelo AA120? El agente interpretará tu petición, reconocerá que necesita información de base de datos, activará la función de Python personalizada check_flight_status y mostrará el resultado de la llamada a la herramienta en JSON antes de darte la respuesta hablada.
5. Probar el grounding con Google Search: ahora, hazle una pregunta sobre el tiempo en destino: ¿Qué tiempo hace ahora en Londres? El agente activará la herramienta integrada google_search, rastreará la web y sintetizará las condiciones en vivo en su salida de audio.
6. Probar la función de barge-in: Haz una pregunta amplia como: Háblame de los mejores sitios históricos para visitar en Roma. Cuando el agente empiece a enumerarlos, interrúmpelo en voz alta: ¡Espera, mejor comprueba el vuelo UA990!. El agente detendrá de inmediato su flujo de voz, interrumpirá los detalles de Roma, ejecutará la herramienta personalizada de seguimiento de vuelos y te informará de que el vuelo UA990 ha sido cancelado. Esto demuestra la naturaleza de baja latencia y full‑duplex de la conexión de la Live API.
Mejores prácticas para producción con la API Gemini Live
Crear aplicaciones de voz en tiempo real introduce requisitos únicos en arquitectura de prompts, gestión del estado de red, ingesta de audio y escalado de recursos. A continuación, encontrarás prácticas recomendadas basadas en las directrices oficiales para desarrolladores.
1. Diseñar instrucciones del sistema claras
Para sacar el máximo partido de Gemini Live, estructura tus instrucciones del sistema (SIs) con una jerarquía estricta: persona, reglas conversacionales y guardarraíles.
2. Definiciones de herramientas precisas y condiciones de invocación
Al exponer herramientas a la Live API:
3. Gestión del contexto de audio nativo (compresión)
Los tokens de audio nativo se acumulan rápidamente, aproximadamente 25 tokens por segundo de conversación. En sesiones de voz largas, esto puede llenar la ventana de contexto y aumentar la latencia.
ContextWindowCompressionConfigen tu configuración de conexión para descartar historial antiguo una vez se alcance un umbral:Nota: la compresión de contexto hará que se pierda el historial de conversación antiguo.
4. Reanudación transparente de sesión
Las conexiones móviles en tiempo real son propensas a pérdidas de paquetes y desconexiones temporales. En lugar de iniciar un estado de conversación nuevo desde cero, implementa una reanudación de sesión transparente:
SessionResumptionConfig(transparent=True).session_resumption_updatedel servidor y guarda el new_handle.server-reported last_consumed_client_message_indexpara podar el buffer).5. Optimización de la transmisión de audio
6. Seguridad (gestión de tokens)
Conclusión: el horizonte de la IA conversacional
El paso de LLMs por turnos y solo texto a transmisión multimodal de baja latencia supone un cambio de paradigma en cómo construimos interfaces humano‑máquina. Al procesar audio y vídeo de forma nativa mediante conexiones WebSocket con estado, la API Gemini Live nos permite crear experiencias agentic que se sienten menos como programas estáticos y más como interacciones humanas fluidas.
A lo largo de esta guía, hemos explorado la arquitectura interna de Gemini Live, analizado los modelos de precios y creado un concierge de viajes con IA completamente funcional usando Google Agent Development Kit (ADK). Hemos visto cómo ADK convierte funciones estándar de Python en herramientas activas del agente, dando a nuestro asistente de voz acceso tanto a grounding con búsquedas web como a consultas a bases de datos internas privadas.
¿Qué construir a continuación?
Ahora que dominas los fundamentos de los agentes de voz en tiempo real, plantéate ampliar tu concierge de viajes con IA:
¿Listo para crear flujos conversacionales más avanzados? Echa un vistazo al itinerario de aprendizaje AI Agent Fundamentals de DataCamp para profundizar en arquitecturas agentic, uso de herramientas y despliegues de IA generativa.