Providers
Google (Gemini)
El Plugin de Google proporciona acceso a modelos Gemini a través de Google AI Studio, además de generación de imágenes, comprensión de medios (imagen/audio/video), texto a voz y búsqueda web mediante Gemini Grounding.
- Proveedor:
google - Autenticación:
GEMINI_API_KEYoGOOGLE_API_KEY - API: API de Google Gemini
- Opción de runtime: proveedor/modelo
agentRuntime.id: "google-gemini-cli"reutiliza el OAuth de Gemini CLI mientras mantiene las referencias de modelo canónicas comogoogle/*.
Primeros pasos
Elige tu método de autenticación preferido y sigue los pasos de configuración.
Clave de API
Ideal para: acceso estándar a la API de Gemini a través de Google AI Studio.
Ejecutar onboarding
openclaw onboard --auth-choice gemini-api-keyO pasa la clave directamente:
openclaw onboard --non-interactive \ --mode local \ --auth-choice gemini-api-key \ --gemini-api-key "$GEMINI_API_KEY"Establecer un modelo predeterminado
{ agents: { defaults: { model: { primary: "google/gemini-3.1-pro-preview" }, }, },}Verificar que el modelo esté disponible
openclaw models list --provider googleGemini CLI (OAuth)
Ideal para: reutilizar un inicio de sesión existente de Gemini CLI mediante OAuth con PKCE en lugar de una clave de API separada.
Instalar Gemini CLI
El comando local gemini debe estar disponible en PATH.
# Homebrewbrew install gemini-cli # or npmnpm install -g @google/gemini-cliOpenClaw admite instalaciones de Homebrew e instalaciones globales de npm, incluidos diseños comunes de Windows/npm.
Iniciar sesión mediante OAuth
openclaw models auth login --provider google-gemini-cli --set-defaultVerificar que el modelo esté disponible
openclaw models list --provider google- Modelo predeterminado:
google/gemini-3.1-pro-preview - Runtime:
google-gemini-cli - Alias:
gemini-cli
El ID de modelo de la API de Gemini para Gemini 3.1 Pro es gemini-3.1-pro-preview. OpenClaw acepta el google/gemini-3.1-pro más corto como alias práctico y lo normaliza antes de las llamadas al proveedor.
Variables de entorno:
OPENCLAW_GEMINI_OAUTH_CLIENT_IDOPENCLAW_GEMINI_OAUTH_CLIENT_SECRET
(O las variantes GEMINI_CLI_*.)
Las referencias de modelo google-gemini-cli/* son alias de compatibilidad heredados. Las
configuraciones nuevas deben usar referencias de modelo google/* más el runtime google-gemini-cli
cuando quieran ejecución local con Gemini CLI.
Capacidades
| Capacidad | Compatibilidad |
|---|---|
| Finalizaciones de chat | Sí |
| Generación de imágenes | Sí |
| Generación de música | Sí |
| Texto a voz | Sí |
| Voz en tiempo real | Sí (API de Google Live) |
| Comprensión de imágenes | Sí |
| Transcripción de audio | Sí |
| Comprensión de video | Sí |
| Búsqueda web (Grounding) | Sí |
| Pensamiento/razonamiento | Sí (Gemini 2.5+ / Gemini 3+) |
| Modelos Gemma 4 | Sí |
Búsqueda web
El proveedor de búsqueda web gemini incluido usa grounding de Google Search de Gemini.
Configura una clave de búsqueda dedicada en plugins.entries.google.config.webSearch,
o deja que reutilice models.providers.google.apiKey después de GEMINI_API_KEY:
{ plugins: { entries: { google: { config: { webSearch: { apiKey: "AIza...", // optional if GEMINI_API_KEY or models.providers.google.apiKey is set baseUrl: "https://generativelanguage.googleapis.com/v1beta", // falls back to models.providers.google.baseUrl model: "gemini-2.5-flash", }, }, }, }, },}La precedencia de credenciales es webSearch.apiKey dedicada, luego GEMINI_API_KEY,
luego models.providers.google.apiKey. webSearch.baseUrl es opcional y
existe para proxies de operadores o endpoints compatibles de la API de Gemini; cuando se omite,
la búsqueda web de Gemini reutiliza models.providers.google.baseUrl. Consulta
Búsqueda de Gemini para ver el comportamiento de la herramienta específica del proveedor.
Generación de imágenes
El proveedor de generación de imágenes google incluido usa de forma predeterminada
google/gemini-3.1-flash-image-preview.
- También admite
google/gemini-3-pro-image-preview - Generar: hasta 4 imágenes por solicitud
- Modo de edición: habilitado, hasta 5 imágenes de entrada
- Controles de geometría:
size,aspectRatioyresolution
Para usar Google como proveedor de imágenes predeterminado:
{ agents: { defaults: { imageGenerationModel: { primary: "google/gemini-3.1-flash-image-preview", }, }, },}Generación de video
El Plugin google incluido también registra la generación de video mediante la herramienta compartida
video_generate.
- Modelo de video predeterminado:
google/veo-3.1-fast-generate-preview - Modos: texto a video, imagen a video y flujos de referencia de un solo video
- Admite
aspectRatio(16:9,9:16) yresolution(720P,1080P); la salida de audio no es compatible con Veo actualmente - Duraciones admitidas: 4, 6 u 8 segundos (otros valores se ajustan al valor permitido más cercano)
Para usar Google como proveedor de video predeterminado:
{ agents: { defaults: { videoGenerationModel: { primary: "google/veo-3.1-fast-generate-preview", }, }, },}Generación de música
El Plugin google incluido también registra la generación de música mediante la herramienta compartida
music_generate.
- Modelo de música predeterminado:
google/lyria-3-clip-preview - También admite
google/lyria-3-pro-preview - Controles de prompt:
lyricseinstrumental - Formato de salida:
mp3de forma predeterminada, máswavengoogle/lyria-3-pro-preview - Entradas de referencia: hasta 10 imágenes
- Las ejecuciones respaldadas por sesión se desvinculan mediante el flujo compartido de tarea/estado, incluido
action: "status"
Para usar Google como proveedor de música predeterminado:
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Texto a voz
El proveedor de voz google incluido usa la ruta TTS de la API de Gemini con
gemini-3.1-flash-tts-preview.
- Voz predeterminada:
Kore - Autenticación:
messages.tts.providers.google.apiKey,models.providers.google.apiKey,GEMINI_API_KEYoGOOGLE_API_KEY - Salida: WAV para adjuntos TTS normales, Opus para destinos de notas de voz, PCM para Talk/telefonía
- Salida de nota de voz: el PCM de Google se envuelve como WAV y se transcodifica a Opus de 48 kHz con
ffmpeg
La ruta TTS por lotes de Gemini de Google devuelve el audio generado en la respuesta
generateContent completada. Para conversaciones habladas de menor latencia, usa el
proveedor de voz en tiempo real de Google respaldado por la API de Gemini Live en lugar de TTS
por lotes.
Para usar Google como proveedor TTS predeterminado:
{ messages: { tts: { auto: "always", provider: "google", providers: { google: { model: "gemini-3.1-flash-tts-preview", speakerVoice: "Kore", audioProfile: "Speak professionally with a calm tone.", }, }, }, },}TTS de la API de Gemini usa prompting en lenguaje natural para el control de estilo. Define
audioProfile para anteponer un prompt de estilo reutilizable antes del texto hablado. Define
speakerName cuando el texto de tu prompt se refiera a un hablante con nombre.
TTS de la API de Gemini también acepta etiquetas de audio expresivas entre corchetes en el texto,
como [whispers] o [laughs]. Para mantener las etiquetas fuera de la respuesta visible del chat
mientras se envían a TTS, ponlas dentro de un bloque [[tts:text]]...[[/tts:text]]:
Here is the clean reply text. [[tts:text]][whispers] Here is the spoken version.[[/tts:text]]Voz en tiempo real
El Plugin google incluido registra un proveedor de voz en tiempo real respaldado por la
API de Gemini Live para puentes de audio backend, como Voice Call y Google Meet.
| Configuración | Ruta de configuración | Predeterminado |
|---|---|---|
| Modelo | plugins.entries.voice-call.config.realtime.providers.google.model |
gemini-2.5-flash-native-audio-preview-12-2025 |
| Voz | ...google.voice |
Kore |
| Temperatura | ...google.temperature |
(sin definir) |
| Sensibilidad de inicio de VAD | ...google.startSensitivity |
(sin definir) |
| Sensibilidad de fin de VAD | ...google.endSensitivity |
(sin definir) |
| Duración del silencio | ...google.silenceDurationMs |
(sin definir) |
| Manejo de actividad | ...google.activityHandling |
Predeterminado de Google, start-of-activity-interrupts |
| Cobertura de turno | ...google.turnCoverage |
Predeterminado de Google, only-activity |
| Desactivar VAD automático | ...google.automaticActivityDetectionDisabled |
false |
| Reanudación de sesión | ...google.sessionResumption |
true |
| Compresión de contexto | ...google.contextWindowCompression |
true |
| Clave de API | ...google.apiKey |
Recurre a models.providers.google.apiKey, GEMINI_API_KEY o GOOGLE_API_KEY |
Ejemplo de configuración en tiempo real de Voice Call:
{ plugins: { entries: { "voice-call": { enabled: true, config: { realtime: { enabled: true, provider: "google", providers: { google: { model: "gemini-2.5-flash-native-audio-preview-12-2025", speakerVoice: "Kore", activityHandling: "start-of-activity-interrupts", turnCoverage: "only-activity", }, }, }, }, }, }, },}Para la verificación en vivo de mantenedores, ejecuta
OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts.
La prueba de humo también cubre las rutas de backend/WebRTC de OpenAI; el tramo de Google emite la misma
forma de token restringido de Live API que usa Control UI Talk, abre el punto de conexión
WebSocket del navegador, envía la carga útil de configuración inicial y espera
setupComplete.
Configuración avanzada
Reutilización directa de caché de Gemini
Para ejecuciones directas de Gemini API (api: "google-generative-ai"), OpenClaw
pasa un identificador cachedContent configurado a las solicitudes de Gemini.
- Configura parámetros por modelo o globales con
cachedContento el heredadocached_content - Si ambos están presentes,
cachedContenttiene prioridad - Valor de ejemplo:
cachedContents/prebuilt-context - El uso de aciertos de caché de Gemini se normaliza en
cacheReadde OpenClaw desde elcachedContentTokenCountdel origen
{ agents: { defaults: { models: { "google/gemini-2.5-pro": { params: { cachedContent: "cachedContents/prebuilt-context", }, }, }, }, },}Notas de uso de Gemini CLI
Al usar el proveedor OAuth google-gemini-cli, OpenClaw usa la salida
stream-json de Gemini CLI de forma predeterminada y normaliza el uso desde la carga útil final
stats. Las anulaciones heredadas de --output-format json siguen usando el
analizador JSON.
- El texto de respuesta transmitido proviene de eventos
messagedel asistente. - Para la salida JSON heredada, el texto de respuesta proviene del campo
responsedel JSON de la CLI. - El uso recurre a
statscuando la CLI dejausagevacío. stats.cachedse normaliza encacheReadde OpenClaw.- Si falta
stats.input, OpenClaw deriva los tokens de entrada destats.input_tokens - stats.cached.
Configuración de entorno y daemon
Si el Gateway se ejecuta como daemon (launchd/systemd), asegúrate de que GEMINI_API_KEY
esté disponible para ese proceso (por ejemplo, en ~/.openclaw/.env o mediante
env.shellEnv).
Relacionado
Elección de proveedores, referencias de modelo y comportamiento de conmutación por error.
Parámetros compartidos de la herramienta de imágenes y selección de proveedor.
Parámetros compartidos de la herramienta de video y selección de proveedor.
Parámetros compartidos de la herramienta de música y selección de proveedor.