La API de Gemini Interactions es una API experimental que permite a los desarrolladores crear aplicaciones de IA generativa con modelos de Gemini. Gemini es nuestro modelo más potente, creado desde cero para ser multimodal. Puede generalizar y comprender, operar y combinar sin problemas diferentes tipos de información, como lenguaje, imágenes, audio, video y código. Puedes usar la API de Gemini para casos de uso como el razonamiento en texto e imágenes, la generación de contenido, los agentes de diálogo, los sistemas de resumen y clasificación, y mucho más.
Cómo crear una interacción
Crea una interacción nueva.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
model ModelOption (opcional)
Es el nombre del `Modelo` que se usó para generar la interacción.
Obligatorio si no se proporciona `agent`.
Valores posibles:
-
gemini-2.5-proNuestro modelo polivalente de vanguardia, que se destaca en la programación y las tareas de razonamiento complejas.
-
gemini-2.5-flashNuestro primer modelo de razonamiento híbrido que admite una ventana de contexto de 1 millón de tokens y tiene presupuestos de pensamiento.
-
gemini-2.5-flash-preview-09-2025Es el modelo más reciente basado en el modelo 2.5 Flash. La versión preliminar de 2.5 Flash es ideal para el procesamiento a gran escala, la baja latencia, las tareas de gran volumen que requieren pensamiento y los casos de uso de agentes.
-
gemini-2.5-flash-liteEs nuestro modelo más pequeño y rentable, diseñado para el uso a gran escala.
-
gemini-2.5-flash-lite-preview-09-2025Es el modelo más reciente basado en Gemini 2.5 Flash lite, optimizado para la rentabilidad, el alto rendimiento y la alta calidad.
-
gemini-2.5-flash-preview-native-audio-dialogNuestros modelos de audio nativos están optimizados para obtener salidas de audio de mayor calidad con mejor ritmo, naturalidad de la voz, verbosidad y estado de ánimo.
-
gemini-2.5-flash-image-previewNuestro modelo de generación de imágenes nativo, optimizado para la velocidad, la flexibilidad y la comprensión contextual. La entrada y salida de texto tienen el mismo precio que 2.5 Flash.
-
gemini-2.5-pro-preview-ttsNuestro modelo de audio de texto a voz 2.5 Pro está optimizado para la generación de voz potente y de baja latencia, lo que permite obtener resultados más naturales y facilita la dirección de las instrucciones.
-
gemini-3-pro-previewNuestro modelo más inteligente con razonamiento y comprensión multimodal de vanguardia, y potentes capacidades de programación de agentes y vibe coding.
agent AgentOption (opcional)
Es el nombre del `Agent` que se usó para generar la interacción.
Obligatorio si no se proporciona `model`.
Valores posibles:
-
deep-research-pro-preview-12-2025Agente de Deep Research de Gemini
Son las entradas de la interacción (comunes tanto para el modelo como para el agente).
Instrucción del sistema para la interacción.
Es una lista de declaraciones de herramientas a las que el modelo puede llamar durante la interacción.
Asegura que la respuesta generada sea un objeto JSON que cumpla con el esquema JSON especificado en este campo.
Es el tipo de MIME de la respuesta. Este campo es obligatorio si se establece response_format.
Solo entrada. Indica si la interacción se transmitirá.
Solo entrada. Indica si se debe almacenar la respuesta y la solicitud para su recuperación posterior.
Indica si se debe ejecutar la interacción del modelo en segundo plano.
generation_config GenerationConfig (opcional)
Configuración del modelo
Parámetros de configuración para la interacción del modelo.
Es una alternativa a "agent_config". Solo se aplica cuando se establece "model".
Campos
Controla la aleatoriedad del resultado.
Es la probabilidad acumulativa máxima de los tokens que se deben tener en cuenta durante el muestreo.
Es la semilla que se usa en la decodificación para la reproducibilidad.
Es una lista de secuencias de caracteres que detendrán la interacción de salida.
tool_choice ToolChoice (opcional)
Es la herramienta elegida para la interacción.
Tipos posibles
ToolChoiceType
Este tipo no tiene campos específicos.
ToolChoiceConfig
allowed_tools AllowedTools (opcional)
No se proporcionó la descripción.
Campos
mode ToolChoiceType (opcional)
Es el modo de la elección de la herramienta.
Valores posibles:
-
auto -
any -
none -
validated
Son los nombres de las herramientas permitidas.
thinking_level ThinkingLevel (opcional)
Es el nivel de tokens de pensamiento que debe generar el modelo.
Valores posibles:
-
low -
high
thinking_summaries ThinkingSummaries (opcional)
Indica si se deben incluir resúmenes de pensamiento en la respuesta.
Valores posibles:
-
auto -
none
Es la cantidad máxima de tokens que se incluirán en la respuesta.
speech_config SpeechConfig (opcional)
Es la configuración para la interacción por voz.
Campos
La voz del orador.
Es el idioma del discurso.
Nombre del orador, que debe coincidir con el nombre del orador que se indica en la instrucción.
agent_config object (opcional)
Agent Configuration
Es la configuración del agente.
Alternativa a "generation_config". Solo se aplica cuando se configura "agent".
Tipos posibles
Discriminador polimórfico: type
DynamicAgentConfig
Es la configuración para los agentes dinámicos.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "dynamic".
DeepResearchAgentConfig
Es la configuración del agente de Deep Research.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "deep-research".
thinking_summaries ThinkingSummaries (opcional)
Indica si se deben incluir resúmenes de pensamiento en la respuesta.
Valores posibles:
-
auto -
none
ID de la interacción anterior, si corresponde.
response_modalities ResponseModality (opcional)
Son las modalidades solicitadas de la respuesta (TEXT, IMAGE, AUDIO).
Valores posibles:
-
text -
image -
audio
Respuesta
Devuelve un recurso de Interaction.
Solicitud simple
Ejemplo de respuesta
{ "created": "2025-11-26T12:25:15Z", "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-2.5-flash", "object": "interaction", "outputs": [ { "text": "Hello! I'm functioning perfectly and ready to assist you.\n\nHow are you doing today?", "type": "text" } ], "role": "model", "status": "completed", "updated": "2025-11-26T12:25:15Z", "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 7 } ], "total_cached_tokens": 0, "total_input_tokens": 7, "total_output_tokens": 20, "total_reasoning_tokens": 22, "total_tokens": 49, "total_tool_use_tokens": 0 } }
Varios turnos
Ejemplo de respuesta
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-2.5-flash", "status": "completed", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "role": "model", "outputs": [ { "type": "text", "text": "The capital of France is Paris." } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 50 } ], "total_cached_tokens": 0, "total_input_tokens": 50, "total_output_tokens": 10, "total_reasoning_tokens": 0, "total_tokens": 60, "total_tool_use_tokens": 0 } }
Entrada de imagen
Ejemplo de respuesta
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-2.5-flash", "status": "completed", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "role": "model", "outputs": [ { "type": "text", "text": "A white humanoid robot with glowing blue eyes stands holding a red skateboard." } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 10 }, { "modality": "image", "tokens": 258 } ], "total_cached_tokens": 0, "total_input_tokens": 268, "total_output_tokens": 20, "total_reasoning_tokens": 0, "total_tokens": 288, "total_tool_use_tokens": 0 } }
Llamada a función
Ejemplo de respuesta
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-2.5-flash", "status": "requires_action", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "role": "model", "outputs": [ { "type": "function_call", "function_call": { "name": "get_weather", "arguments": { "location": "Boston, MA" } } } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 100 } ], "total_cached_tokens": 0, "total_input_tokens": 100, "total_output_tokens": 25, "total_reasoning_tokens": 0, "total_tokens": 125, "total_tool_use_tokens": 50 } }
Deep Research
Ejemplo de respuesta
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "agent": "deep-research-pro-preview-12-2025", "status": "completed", "object": "interaction", "created": "2025-11-26T12:22:47Z", "updated": "2025-11-26T12:22:47Z", "role": "model", "outputs": [ { "type": "text", "text": "Here is a comprehensive research report on the current state of cancer research..." } ], "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 20 } ], "total_cached_tokens": 0, "total_input_tokens": 20, "total_output_tokens": 1000, "total_reasoning_tokens": 500, "total_tokens": 1520, "total_tool_use_tokens": 0 } }
Cómo recuperar una interacción
Recupera los detalles completos de una sola interacción según su `Interaction.id`.
Parámetros de ruta de acceso o de consulta
Es el identificador único de la interacción que se recuperará.
Si se establece como verdadero, el contenido generado se transmitirá de forma incremental.
Valor predeterminado: False
Opcional. Si se configura, reanuda el flujo de interacción desde el siguiente fragmento después del evento marcado por el ID del evento. Solo se puede usar si "stream" es verdadero.
Indica qué versión de la API se debe usar.
Respuesta
Devuelve un recurso de Interaction.
Obtener interacción
Ejemplo de respuesta
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "model": "gemini-2.5-flash", "status": "completed", "object": "interaction", "created": "2025-11-26T12:25:15Z", "updated": "2025-11-26T12:25:15Z", "role": "model", "outputs": [ { "type": "text", "text": "I'm doing great, thank you for asking! How can I help you today?" } ] }
Cómo borrar una interacción
Borra la interacción por ID.
Parámetros de ruta de acceso o de consulta
Es el identificador único de la interacción que se borrará.
Indica qué versión de la API se debe usar.
Respuesta
Si se ejecuta correctamente, la respuesta estará vacía.
Borrar interacción
Cómo cancelar una interacción
Cancela una interacción por ID. Esto solo se aplica a las interacciones en segundo plano que aún se están ejecutando.
Parámetros de ruta de acceso o de consulta
Es el identificador único de la interacción que se recuperará.
Indica qué versión de la API se debe usar.
Respuesta
Devuelve un recurso de Interaction.
Cancelar interacción
Ejemplo de respuesta
{ "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", "agent": "deep-research-pro-preview-12-2025", "status": "cancelled", "object": "interaction", "created": "2025-11-26T12:25:15Z", "updated": "2025-11-26T12:25:15Z", "role": "model" }
Recursos
Interacción
Es el recurso Interaction.
Campos
model ModelOption (opcional)
Es el nombre del `Modelo` que se usó para generar la interacción.
Valores posibles:
-
gemini-2.5-proNuestro modelo polivalente de vanguardia, que se destaca en la programación y las tareas de razonamiento complejas.
-
gemini-2.5-flashNuestro primer modelo de razonamiento híbrido que admite una ventana de contexto de 1 millón de tokens y tiene presupuestos de pensamiento.
-
gemini-2.5-flash-preview-09-2025Es el modelo más reciente basado en el modelo 2.5 Flash. La versión preliminar de 2.5 Flash es ideal para el procesamiento a gran escala, la baja latencia, las tareas de gran volumen que requieren pensamiento y los casos de uso de agentes.
-
gemini-2.5-flash-liteEs nuestro modelo más pequeño y rentable, diseñado para el uso a gran escala.
-
gemini-2.5-flash-lite-preview-09-2025Es el modelo más reciente basado en Gemini 2.5 Flash lite, optimizado para la rentabilidad, el alto rendimiento y la alta calidad.
-
gemini-2.5-flash-preview-native-audio-dialogNuestros modelos de audio nativos están optimizados para obtener salidas de audio de mayor calidad con mejor ritmo, naturalidad de la voz, verbosidad y estado de ánimo.
-
gemini-2.5-flash-image-previewNuestro modelo de generación de imágenes nativo, optimizado para la velocidad, la flexibilidad y la comprensión contextual. La entrada y salida de texto tienen el mismo precio que 2.5 Flash.
-
gemini-2.5-pro-preview-ttsNuestro modelo de audio de texto a voz 2.5 Pro está optimizado para la generación de voz potente y de baja latencia, lo que permite obtener resultados más naturales y facilita la dirección de las instrucciones.
-
gemini-3-pro-previewNuestro modelo más inteligente con razonamiento y comprensión multimodal de vanguardia, y potentes capacidades de programación de agentes y vibe coding.
agent AgentOption (opcional)
Es el nombre del `Agent` que se usó para generar la interacción.
Valores posibles:
-
deep-research-pro-preview-12-2025Agente de Deep Research de Gemini
Solo salida. Es un identificador único para la finalización de la interacción.
Solo salida. Es el estado de la interacción.
Valores posibles:
-
in_progress -
requires_action -
completed -
failed -
cancelled
Solo salida. Es la fecha y hora en que se creó la respuesta en formato ISO 8601 (AAAA-MM-DDThh:mm:ssZ).
Solo salida. Fecha y hora en que se actualizó por última vez la respuesta en formato ISO 8601 (AAAA-MM-DDThh:mm:ssZ).
Solo salida. Es el rol de la interacción.
Solo salida. Son las respuestas del modelo.
Solo salida. Es el tipo de objeto de la interacción. Siempre se establece en "interaction".
Siempre se establece en "interaction".
usage Usage (opcional)
Solo salida. Son estadísticas sobre el uso de tokens de la solicitud de interacción.
Campos
Cantidad de tokens en la instrucción (contexto).
input_tokens_by_modality ModalityTokens (opcional)
Es un desglose del uso de tokens de entrada por modalidad.
Campos
modalidad ResponseModality (opcional)
Es la modalidad asociada con el recuento de tokens.
Valores posibles:
-
text -
image -
audio
Cantidad de tokens para la modalidad.
Cantidad de tokens en la parte almacenada en caché de la instrucción (el contenido almacenado en caché).
cached_tokens_by_modality ModalityTokens (opcional)
Es un desglose del uso de tokens almacenados en caché por modalidad.
Campos
modalidad ResponseModality (opcional)
Es la modalidad asociada con el recuento de tokens.
Valores posibles:
-
text -
image -
audio
Cantidad de tokens para la modalidad.
Es la cantidad total de tokens en todas las respuestas generadas.
output_tokens_by_modality ModalityTokens (opcional)
Es un desglose del uso de tokens de salida por modalidad.
Campos
modalidad ResponseModality (opcional)
Es la modalidad asociada con el recuento de tokens.
Valores posibles:
-
text -
image -
audio
Cantidad de tokens para la modalidad.
Cantidad de tokens presentes en las instrucciones de uso de herramientas.
tool_use_tokens_by_modality ModalityTokens (opcional)
Es un desglose del uso de tokens de uso de herramientas por modalidad.
Campos
modalidad ResponseModality (opcional)
Es la modalidad asociada con el recuento de tokens.
Valores posibles:
-
text -
image -
audio
Cantidad de tokens para la modalidad.
Cantidad de tokens de pensamientos para los modelos de pensamiento.
Es el recuento total de tokens para la solicitud de interacción (instrucción + respuestas + otros tokens internos).
ID de la interacción anterior, si corresponde.
Ejemplos
Ejemplo
{ "created": "2025-12-04T15:01:45Z", "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", "model": "gemini-2.5-flash", "object": "interaction", "outputs": [ { "text": "Hello! I'm doing well, functioning as expected. Thank you for asking! How are you doing today?", "type": "text" } ], "role": "model", "status": "completed", "updated": "2025-12-04T15:01:45Z", "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 7 } ], "total_cached_tokens": 0, "total_input_tokens": 7, "total_output_tokens": 23, "total_reasoning_tokens": 49, "total_tokens": 79, "total_tool_use_tokens": 0 } }
Modelos de datos
Contenido
Es el contenido de la respuesta.
Tipos posibles
Discriminador polimórfico: type
TextContent
Es un bloque de contenido de texto.
Es el contenido de texto.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "text".
anotaciones Annotation (opcional)
Es la información de citas para el contenido generado por el modelo.
Campos
Es el inicio del segmento de la respuesta que se atribuye a esta fuente. El índice indica el inicio del segmento, medido en bytes.
Es el final del segmento atribuido, exclusivo.
Es la fuente atribuida a una parte del texto. Puede ser una URL, un título o algún otro identificador.
ImageContent
Es un bloque de contenido de imagen.
No se proporcionó la descripción.
No se proporcionó la descripción.
mime_type ImageMimeTypeOption (opcional)
No se proporcionó la descripción.
Valores posibles:
-
image/png -
image/jpeg -
image/webp -
image/heic -
image/heif
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "image".
resolution MediaResolution (opcional)
Resolución del contenido multimedia.
Valores posibles:
-
low -
medium -
high
AudioContent
Es un bloque de contenido de audio.
No se proporcionó la descripción.
No se proporcionó la descripción.
mime_type AudioMimeTypeOption (opcional)
No se proporcionó la descripción.
Valores posibles:
-
audio/wav -
audio/mp3 -
audio/aiff -
audio/aac -
audio/ogg -
audio/flac
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "audio".
DocumentContent
Es un bloque de contenido de un documento.
No se proporcionó la descripción.
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "document".
VideoContent
Es un bloque de contenido de video.
No se proporcionó la descripción.
No se proporcionó la descripción.
mime_type VideoMimeTypeOption (opcional)
No se proporcionó la descripción.
Valores posibles:
-
video/mp4 -
video/mpeg -
video/mov -
video/avi -
video/x-flv -
video/mpg -
video/webm -
video/wmv -
video/3gpp
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "video".
resolution MediaResolution (opcional)
Resolución del contenido multimedia.
Valores posibles:
-
low -
medium -
high
ThoughtContent
Es un bloque de contenido de pensamiento.
Firma para que coincida con la fuente del backend que formará parte de la generación.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "thought".
summary ThoughtSummary (opcional)
Un resumen del pensamiento
FunctionCallContent
Es un bloque de contenido de llamada a herramienta de función.
Es el nombre de la herramienta a la que se llamará.
Son los argumentos que se pasarán a la función.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "function_call".
Es un ID único para esta llamada a herramienta específica.
FunctionResultContent
Es un bloque de contenido del resultado de una herramienta de función.
Es el nombre de la herramienta a la que se llamó.
Indica si la llamada a la herramienta generó un error.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "function_result".
Es el resultado de la llamada a la herramienta.
Es el ID que debe coincidir con el ID del bloque de llamada a la función.
CodeExecutionCallContent
Contenido de ejecución de código.
arguments CodeExecutionCallArguments (opcional)
Son los argumentos que se pasarán a la ejecución del código.
Campos
Lenguaje de programación del `código`.
Valores posibles:
-
python
Es el código que se ejecutará.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "code_execution_call".
Es un ID único para esta llamada a herramienta específica.
CodeExecutionResultContent
Es el contenido del resultado de la ejecución del código.
Es el resultado de la ejecución del código.
Indica si la ejecución del código generó un error.
Es un hash de firma para la validación de backend.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "code_execution_result".
Es el ID que debe coincidir con el ID del bloque de llamadas de ejecución de código.
UrlContextCallContent
Es el contenido del contexto de la URL.
arguments UrlContextCallArguments (opcional)
Son los argumentos que se pasarán al contexto de la URL.
Campos
URLs que se recuperarán.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "url_context_call".
Es un ID único para esta llamada a herramienta específica.
UrlContextResultContent
Es el contenido del resultado del contexto de la URL.
Es la firma del resultado del contexto de la URL.
result UrlContextResult (opcional)
Son los resultados del contexto de la URL.
Campos
Es la URL que se recuperó.
Es el estado de la recuperación de la URL.
Valores posibles:
-
success -
error -
paywall -
unsafe
Indica si el contexto de la URL generó un error.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "url_context_result".
Es el ID que debe coincidir con el ID del bloque de llamadas de contexto de URL.
GoogleSearchCallContent
Contenido de la Búsqueda de Google
arguments GoogleSearchCallArguments (opcional)
Son los argumentos que se pasarán a la Búsqueda de Google.
Campos
Son las búsquedas web para la búsqueda web de seguimiento.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "google_search_call".
Es un ID único para esta llamada a herramienta específica.
GoogleSearchResultContent
Es el contenido del resultado de la Búsqueda de Google.
Es la firma del resultado de la Búsqueda de Google.
result GoogleSearchResult (opcional)
Son los resultados de la Búsqueda de Google.
Campos
Es la referencia al URI del resultado de la búsqueda.
Es el título del resultado de la búsqueda.
Es un fragmento de contenido web que se puede incorporar en una página web o en un WebView de una app.
Indica si la Búsqueda de Google generó un error.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "google_search_result".
Es el ID que debe coincidir con el ID del bloque de llamadas de la Búsqueda de Google.
McpServerToolCallContent
Es el contenido de la llamada a la herramienta de MCPServer.
Es el nombre de la herramienta a la que se llamó.
Es el nombre del servidor de MCP que se usó.
Objeto JSON de argumentos para la función.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "mcp_server_tool_call".
Es un ID único para esta llamada a herramienta específica.
McpServerToolResultContent
Es el contenido del resultado de la herramienta MCPServer.
Nombre de la herramienta que se llama para esta llamada a la herramienta específica.
Es el nombre del servidor de MCP que se usó.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "mcp_server_tool_result".
Es el resultado de la llamada a la herramienta.
Es el ID que debe coincidir con el ID del bloque de llamada a la herramienta del servidor de MCP.
FileSearchResultContent
Es el contenido del resultado de la búsqueda de archivos.
result FileSearchResult (opcional)
Son los resultados de la búsqueda de archivos.
Campos
Título del resultado de búsqueda.
Es el texto del resultado de la búsqueda.
Es el nombre del almacén de búsqueda de archivos.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "file_search_result".
Ejemplos
Texto
{ "type": "text", "text": "Hello, how are you?" }
Imagen
{ "type": "image", "data": "BASE64_ENCODED_IMAGE", "mime_type": "image/png" }
Audio
{ "type": "audio", "data": "BASE64_ENCODED_AUDIO", "mime_type": "audio/wav" }
Documento
{ "type": "document", "data": "BASE64_ENCODED_DOCUMENT", "mime_type": "application/pdf" }
Video
{ "type": "video", "uri": "https://www.youtube.com/watch?v=9hE5-98ZeCg" }
Pensamiento
{ "type": "thought", "summary": [ { "type": "text", "text": "The user is asking about the weather. I should use the get_weather tool." } ], "signature": "CoMDAXLI2nynRYojJIy6B1Jh9os2crpWLfB0+19xcLsGG46bd8wjkF/6RNlRUdvHrXyjsHkG0BZFcuO/bPOyA6Xh5jANNgx82wPHjGExN8A4ZQn56FlMwyZoqFVQz0QyY1lfibFJ2zU3J87uw26OewzcuVX0KEcs+GIsZa3EA6WwqhbsOd3wtZB3Ua2Qf98VAWZTS5y/tWpql7jnU3/CU7pouxQr/Bwft3hwnJNesQ9/dDJTuaQ8Zprh9VRWf1aFFjpIueOjBRrlT3oW6/y/eRl/Gt9BQXCYTqg/38vHFUU4Wo/d9dUpvfCe/a3o97t2Jgxp34oFKcsVb4S5WJrykIkw+14DzVnTpCpbQNFckqvFLuqnJCkL0EQFtunBXI03FJpPu3T1XU6id8S7ojoJQZSauGUCgmaLqUGdMrd08oo81ecoJSLs51Re9N/lISGmjWFPGpqJLoGq6uo4FHz58hmeyXCgHG742BHz2P3MiH1CXHUT2J8mF6zLhf3SR9Qb3lkrobAh" }
Llamada a función
{ "type": "function_call", "name": "get_weather", "id": "gth23981", "arguments": { "location": "Boston, MA" } }
Resultado de la función
{ "type": "function_result", "name": "get_weather", "call_id": "gth23981", "result": { "weather": "sunny" } }
Llamada de ejecución de código
{ "type": "code_execution_call", "id": "call_123456", "arguments": { "language": "python", "code": "print('hello world')" } }
Resultado de la ejecución del código
{ "type": "code_execution_result", "call_id": "call_123456", "result": "hello world\n" }
Llamada de contexto de URL
{ "type": "url_context_call", "id": "call_123456", "arguments": { "urls": [ "https://www.example.com" ] } }
Resultado del contexto de URL
{ "type": "url_context_result", "call_id": "call_123456", "result": [ { "url": "https://www.example.com", "status": "SUCCESS" } ] }
Llamada de la Búsqueda de Google
{ "type": "google_search_call", "id": "call_123456", "arguments": { "queries": [ "weather in Boston" ] } }
Resultado de la Búsqueda de Google
{ "type": "google_search_result", "call_id": "call_123456", "result": [ { "url": "https://www.google.com/search?q=weather+in+Boston", "title": "Weather in Boston" } ] }
Llamada a la herramienta del servidor de MCP
{ "type": "mcp_server_tool_call", "id": "call_123456", "name": "get_forecast", "server_name": "weather_server", "arguments": { "city": "London" } }
Resultado de la herramienta del servidor de MCP
{ "type": "mcp_server_tool_result", "name": "get_forecast", "server_name": "weather_server", "call_id": "call_123456", "result": "sunny" }
Resultado de la búsqueda de archivos
{ "type": "file_search_result", "result": [ { "text": "search result chunk", "file_search_store": "file_search_store" } ] }
Herramienta
Tipos posibles
Discriminador polimórfico: type
Función
Es una herramienta que puede usar el modelo.
Es el nombre de la función.
Es una descripción de la función.
Es el esquema JSON para los parámetros de la función.
No se proporcionó la descripción.
Siempre se establece en "function".
GoogleSearch
Es una herramienta que el modelo puede usar para buscar en Google.
No se proporcionó la descripción.
Siempre se establece en "google_search".
CodeExecution
Es una herramienta que el modelo puede usar para ejecutar código.
No se proporcionó la descripción.
Siempre se establece en "code_execution".
UrlContext
Es una herramienta que el modelo puede usar para recuperar el contexto de la URL.
No se proporcionó la descripción.
Siempre se establece en "url_context".
ComputerUse
Es una herramienta que el modelo puede usar para interactuar con la computadora.
No se proporcionó la descripción.
Siempre se establece en "computer_use".
Es el entorno en el que se opera.
Valores posibles:
-
browser
Es la lista de funciones predefinidas que se excluyen de la llamada al modelo.
McpServer
Un MCPServer es un servidor al que puede llamar el modelo para realizar acciones.
No se proporcionó la descripción.
Siempre se establece en "mcp_server".
Es el nombre del servidor de MCP.
Es la URL completa del extremo de MCPServer. Ejemplo: "https://api.example.com/mcp"
Opcional: Campos para encabezados de autenticación, tiempos de espera, etcétera, si es necesario.
allowed_tools AllowedTools (opcional)
Las herramientas permitidas.
Campos
mode ToolChoiceType (opcional)
Es el modo de la elección de la herramienta.
Valores posibles:
-
auto -
any -
none -
validated
Son los nombres de las herramientas permitidas.
FileSearch
Es una herramienta que el modelo puede usar para buscar archivos.
Son los nombres de los almacenes de búsqueda de archivos en los que se realizará la búsqueda.
Es la cantidad de fragmentos de recuperación semántica que se recuperarán.
Es un filtro de metadatos que se aplica a los documentos y fragmentos recuperados de forma semántica.
No se proporcionó la descripción.
Siempre se establece en "file_search".
Ejemplos
Función
GoogleSearch
CodeExecution
UrlContext
ComputerUse
McpServer
FileSearch
Turn
Campos
Es el originador de este turno. Debe ser el usuario para la entrada o el modelo para la salida del modelo.
Es el contenido del turno.
Ejemplos
Turno del usuario
{ "role": "user", "content": [ { "type": "text", "text": "user turn" } ] }
Giro del modelo
{ "role": "model", "content": [ { "type": "text", "text": "model turn" } ] }
InteractionSseEvent
Tipos posibles
Discriminador polimórfico: event_type
InteractionEvent
No se proporcionó la descripción.
Valores posibles:
-
interaction.start -
interaction.complete
No se proporcionó la descripción.
Es el token de event_id que se usará para reanudar el flujo de interacción a partir de este evento.
InteractionStatusUpdate
No se proporcionó la descripción.
No se proporcionó la descripción.
Valores posibles:
-
in_progress -
requires_action -
completed -
failed -
cancelled
No se proporcionó la descripción.
Siempre se establece en "interaction.status_update".
Es el token de event_id que se usará para reanudar el flujo de interacción a partir de este evento.
ContentStart
No se proporcionó la descripción.
No se proporcionó la descripción.
No se proporcionó la descripción.
Siempre se establece en "content.start".
Es el token de event_id que se usará para reanudar el flujo de interacción a partir de este evento.
ContentDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
Siempre se establece en "content.delta".
Es el token de event_id que se usará para reanudar el flujo de interacción a partir de este evento.
delta object (opcional)
No se proporcionó la descripción.
Tipos posibles
Discriminador polimórfico: type
TextDelta
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "text".
anotaciones Annotation (opcional)
Es la información de citas para el contenido generado por el modelo.
Campos
Es el inicio del segmento de la respuesta que se atribuye a esta fuente. El índice indica el inicio del segmento, medido en bytes.
Es el final del segmento atribuido, exclusivo.
Es la fuente atribuida a una parte del texto. Puede ser una URL, un título o algún otro identificador.
ImageDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
mime_type ImageMimeTypeOption (opcional)
No se proporcionó la descripción.
Valores posibles:
-
image/png -
image/jpeg -
image/webp -
image/heic -
image/heif
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "image".
resolution MediaResolution (opcional)
Resolución del contenido multimedia.
Valores posibles:
-
low -
medium -
high
AudioDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
mime_type AudioMimeTypeOption (opcional)
No se proporcionó la descripción.
Valores posibles:
-
audio/wav -
audio/mp3 -
audio/aiff -
audio/aac -
audio/ogg -
audio/flac
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "audio".
DocumentDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "document".
VideoDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
mime_type VideoMimeTypeOption (opcional)
No se proporcionó la descripción.
Valores posibles:
-
video/mp4 -
video/mpeg -
video/mov -
video/avi -
video/x-flv -
video/mpg -
video/webm -
video/wmv -
video/3gpp
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "video".
resolution MediaResolution (opcional)
Resolución del contenido multimedia.
Valores posibles:
-
low -
medium -
high
ThoughtSummaryDelta
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "thought_summary".
No se proporcionó la descripción.
ThoughtSignatureDelta
Firma para que coincida con la fuente del backend que formará parte de la generación.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "thought_signature".
FunctionCallDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "function_call".
Es un ID único para esta llamada a herramienta específica.
FunctionResultDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "function_result".
Es el delta del resultado de la llamada a la herramienta.
Es el ID que debe coincidir con el ID del bloque de llamada a la función.
CodeExecutionCallDelta
arguments CodeExecutionCallArguments (opcional)
No se proporcionó la descripción.
Campos
Lenguaje de programación del `código`.
Valores posibles:
-
python
Es el código que se ejecutará.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "code_execution_call".
Es un ID único para esta llamada a herramienta específica.
CodeExecutionResultDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "code_execution_result".
Es el ID que debe coincidir con el ID del bloque de llamada a la función.
UrlContextCallDelta
arguments UrlContextCallArguments (opcional)
No se proporcionó la descripción.
Campos
URLs que se recuperarán.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "url_context_call".
Es un ID único para esta llamada a herramienta específica.
UrlContextResultDelta
No se proporcionó la descripción.
result UrlContextResult (opcional)
No se proporcionó la descripción.
Campos
Es la URL que se recuperó.
Es el estado de la recuperación de la URL.
Valores posibles:
-
success -
error -
paywall -
unsafe
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "url_context_result".
Es el ID que debe coincidir con el ID del bloque de llamada a la función.
GoogleSearchCallDelta
arguments GoogleSearchCallArguments (opcional)
No se proporcionó la descripción.
Campos
Son las búsquedas web para la búsqueda web de seguimiento.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "google_search_call".
Es un ID único para esta llamada a herramienta específica.
GoogleSearchResultDelta
No se proporcionó la descripción.
result GoogleSearchResult (opcional)
No se proporcionó la descripción.
Campos
Es la referencia al URI del resultado de la búsqueda.
Es el título del resultado de la búsqueda.
Es un fragmento de contenido web que se puede incorporar en una página web o en un WebView de una app.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "google_search_result".
Es el ID que debe coincidir con el ID del bloque de llamada a la función.
McpServerToolCallDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "mcp_server_tool_call".
Es un ID único para esta llamada a herramienta específica.
McpServerToolResultDelta
No se proporcionó la descripción.
No se proporcionó la descripción.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "mcp_server_tool_result".
Es el delta del resultado de la llamada a la herramienta.
Es el ID que debe coincidir con el ID del bloque de llamada a la función.
FileSearchResultDelta
result FileSearchResult (opcional)
No se proporcionó la descripción.
Campos
Título del resultado de búsqueda.
Es el texto del resultado de la búsqueda.
Es el nombre del almacén de búsqueda de archivos.
Se usa como discriminador de tipo de OpenAPI para el contenido de oneof.
Siempre se establece en "file_search_result".
ContentStop
No se proporcionó la descripción.
No se proporcionó la descripción.
Siempre se establece en "content.stop".
Es el token de event_id que se usará para reanudar el flujo de interacción a partir de este evento.
ErrorEvent
No se proporcionó la descripción.
Siempre se establece en "error".
error Error (opcional)
No se proporcionó la descripción.
Campos
Es un URI que identifica el tipo de error.
Es un mensaje de error legible.
Es el token de event_id que se usará para reanudar el flujo de interacción a partir de este evento.
Ejemplos
Inicio de la interacción
{ "event_type": "interaction.start", "interaction": { "id": "v1_ChdTMjQ0YWJ5TUF1TzcxZThQdjRpcnFRcxIXUzI0NGFieU1BdU83MWU4UHY0aXJxUXM", "model": "gemini-2.5-flash", "object": "interaction", "status": "in_progress" } }
Interacción completa
{ "event_type": "interaction.complete", "interaction": { "created": "2025-12-09T18:45:40Z", "id": "v1_ChdTMjQ0YWJ5TUF1TzcxZThQdjRpcnFRcxIXUzI0NGFieU1BdU83MWU4UHY0aXJxUXM", "model": "gemini-2.5-flash", "object": "interaction", "outputs": [ { "signature": "CoMDAXLI2nynRYojJIy6B1Jh9os2crpWLfB0+19xcLsGG46bd8wjkF/6RNlRUdvHrXyjsHkG0BZFcuO/bPOyA6Xh5jANNgx82wPHjGExN8A4ZQn56FlMwyZoqFVQz0QyY1lfibFJ2zU3J87uw26OewzcuVX0KEcs+GIsZa3EA6WwqhbsOd3wtZB3Ua2Qf98VAWZTS5y/tWpql7jnU3/CU7pouxQr/Bwft3hwnJNesQ9/dDJTuaQ8Zprh9VRWf1aFFjpIueOjBRrlT3oW6/y/eRl/Gt9BQXCYTqg/38vHFUU4Wo/d9dUpvfCe/a3o97t2Jgxp34oFKcsVb4S5WJrykIkw+14DzVnTpCpbQNFckqvFLuqnJCkL0EQFtunBXI03FJpPu3T1XU6id8S7ojoJQZSauGUCgmaLqUGdMrd08oo81ecoJSLs51Re9N/lISGmjWFPGpqJLoGq6uo4FHz58hmeyXCgHG742BHz2P3MiH1CXHUT2J8mF6zLhf3SR9Qb3lkrobAh", "type": "thought" }, { "text": "Elara\u2019s life was a symphony of quiet moments. A librarian, she found solace in the hushed aisles, the scent of aged paper, and the predictable rhythm of her days. Her small apartment, meticulously ordered, reflected this internal calm, save", "type": "text" }, { "text": " for one beloved anomaly: a chipped porcelain teacup, inherited from her grandmother, which held her morning Earl Grey.\n\nOne Tuesday, stirring her tea, Elara paused. At the bottom, nestled against the porcelain, was a star.", "type": "text" }, { "text": " Not a star-shaped tea leaf, but a miniature, perfectly formed celestial body, radiating a faint, cool luminescence. Before she could gasp, it dissolved, leaving only the amber swirl of her brew. She dismissed it as a trick of", "type": "text" }, { "text": " tired eyes.\n\nBut the next morning, a gossamer-thin feather, smaller than an eyelash and shimmering with iridescent hues, floated on the surface. It vanished the moment she tried to touch it. A week later, a single,", "type": "text" }, { "text": " impossibly delicate bloom, like spun moonbeam, unfolded in her cup before fading into nothingness.\n\nThese weren't illusions. Each day, Elara\u2019s chipped teacup offered a fleeting, exquisite secret. A tiny, perfect", "type": "text" }, { "text": " crystal, a miniature spiral nebula, a fragment of rainbow caught in liquid form. They never lingered, never accumulated, simply *were* and then *weren't*, leaving behind a residue of quiet wonder.\n\nElara never spoke", "type": "text" }, { "text": " of it. It was her private wellspring, a daily reminder that magic could exist in the smallest, most overlooked corners of the world. Her routine remained unchanged, her external life a picture of calm, but inside, a secret garden blo", "type": "text" }, { "text": "omed. Each dawn brought not just tea, but the silent promise of extraordinary beauty, waiting patiently in a chipped teacup.", "type": "text" } ], "role": "model", "status": "completed", "updated": "2025-12-09T18:45:40Z", "usage": { "input_tokens_by_modality": [ { "modality": "text", "tokens": 11 } ], "total_cached_tokens": 0, "total_input_tokens": 11, "total_output_tokens": 364, "total_reasoning_tokens": 1120, "total_tokens": 1495, "total_tool_use_tokens": 0 } } }
Actualización del estado de la interacción
{ "event_type": "interaction.status_update", "interaction_id": "v1_ChdTMjQ0YWJ5TUF1TzcxZThQdjRpcnFRcxIXUzI0NGFieU1BdU83MWU4UHY0aXJxUXM", "status": "in_progress" }
Inicio del contenido
{ "event_type": "content.start", "content": { "type": "text" }, "index": 1 }
Delta de contenido
{ "event_type": "content.delta", "delta": { "type": "text", "text": "Elara\u2019s life was a symphony of quiet moments. A librarian, she found solace in the hushed aisles, the scent of aged paper, and the predictable rhythm of her days. Her small apartment, meticulously ordered, reflected this internal calm, save" }, "index": 1 }
Detención del contenido
{ "event_type": "content.stop", "index": 1 }
Evento de error
{ "event_type": "error", "error": { "message": "Failed to get completed interaction: Result not found.", "code": "not_found" } }