Modo de video agente Gemini: Diseño de esquema y desviación de marcas de tiempo
Pruebas de los modos de video estático y agente de Gemini en una película china: cómo el diseño del esquema influye en la precisión de las marcas de tiempo, la deriva, las citas y los rangos de tiempo.
Fuentes: Unlocking Gemini's Agentic Video Mode: Schema Design, Timestamp Drift, and Jay Chou's Secret
Google lanzó recientemente una función de comprensión de video “agencial” para Gemini, lo cual constituye una excusa perfecta para realizar algunos experimentos prácticos con un caso de prueba complejo: una película en idioma chino de duración completa, Secret (2007) de Jay Chou. Los experimentos se centran en una sola pregunta. Si le pides al modelo los momentos del video en los que aparecen las ideas clave, ¿cuán precisos son los timestamps, y en qué medida el diseño del esquema de salida afecta el resultado?
Necesitarás una GOOGLE_API_KEY, que AI Studio ofrece con un nivel gratuito bastante decente. Los detalles de configuración se encuentran en el apéndice al final.
Por qué una película china es un buen test
La idea surgió a partir de una herramienta de estudio diseñada para ayudar a los estudiantes a abordar el material asignado, aunque los adultos curiosos también podían beneficiarse de ella al encontrarse con situaciones desconocidas. Al darse cuenta de que un modelo Gemini Flash Lite podía resumir texto en chino y responder en ese mismo idioma, resultó lógico ampliar su uso de la educación al entretenimiento. La película era un candidato ideal, ya que se trata de una historia romántica con muchos momentos al piano, una banda sonora inolvidable y una actriz principal que da vida a los momentos más tranquilos.
Advertencia de spoilers: lo que sigue revela el secreto central de la película. El video de referencia para las pruebas es un análisis de películas de YouTube que relata la historia hasta aproximadamente el minuto 16:23, momento en el que el narrador pasa a analizar cómo la trama se inspiró en la vida real de Jay Chou. La película en sí sigue siendo digna de ver por su música y las expresiones sutiles de la actriz principal, y existen al menos dos versiones de ella en Bilibili.
Lo que hace que esta sea una prueba realmente difícil es el idioma. El chino cuenta con mucha menos cobertura de transcripciones generadas automáticamente que los videos en inglés, por lo que el modelo está desventajado desde el principio y debe demostrar de qué es capaz sin ese soporte. No es necesario saber chino para seguir la narración, aunque ayuda a comprender mejor los resultados.
Por qué es importante la desviación en las marcas de tiempo
Tanto en los estudios como en el entretenimiento, existe una necesidad común: localizar las marcas de tiempo para acceder directamente a los momentos importantes. Los estudiantes lo hacen para revisar la explicación de un concepto, mientras que los espectadores lo hacen para encontrar elementos ocultos y revivir historias bien contadas.
El desfase progresivo de las marcas de tiempo en la transcripción de audio de Gemini ha sido ampliamente reportado en el foro de desarrolladores de Google. Una solución fiable es utilizar un modelo más antiguo que no sea de tipo LLM, pero eso difícilmente constituye un experimento interesante; por eso se esperaba que el modo agente ofreciera mejores resultados.
La versión breve: sigue habiendo desviaciones. En aproximadamente el 95 % de los casos, el error se mantiene dentro de un segundo, pero en algunos puntos se observan desviaciones extremas de 10 a 20 segundos. Curiosamente, estas desviaciones se concentran en unos pocos lugares, lo cual es suficientemente bueno como para que un uso casual no moleste a nadie. Los desarrolladores también pueden filtrar posteriormente las marcas de tiempo defectuosas mediante búsquedas de cadenas contra una transcripción etiquetada con fechas dentro de un rango de tiempo, siempre y cuando dicha transcripción esté disponible.
El diseño de esquemas supera al diseño de prompts
Los esquemas de los LLM suelen escribirse en JSON Schema. Bibliotecas como Pydantic en Python o Zod en TypeScript permiten definirlos a nivel de aplicación y compilarlos automáticamente a JSON Schema antes de inyectarlos en el prompt. Solo con los nombres y tipos de las variables, generalmente se puede predecir qué devolverá el modelo.
La opinión del experimentador es contundente: resulta extraño que la ingeniería de prompts reciba tanta atención mientras que la ingeniería de esquemas es donde reside el verdadero poder. Un esquema codifica casi todo el comportamiento del modelo. Incluso con un prompt mediocre, el modelo puede inferir lo que se desea a partir de la estructura y los nombres de los campos, mientras que con un esquema deficiente uno queda solo, esperando que un prompt brillante lo salve.
Existe una analogía con el modelado de datos en la ingeniería de datos, con la diferencia de que los esquemas de salida de los LLM se asemejan más al diseño NoSQL, como MongoDB, que al modelado relacional, como Postgres. Una decisión interesante concierne a las estructuras recursivas: estas pueden codificarse como tablas planas y autoreferenciales, con child_id y parent_id que permiten una cadena ilimitada. Los proveedores difieren en cuanto a si permiten en absoluto esquemas JSON recursivos, por lo que esa elección podría imponérsele al usuario.
Leer el esquema
Al igual que en el modelado de datos, la cardinalidad es importante. Una película tiene muchos conceptos, expresados como un array. En la educación, un tema cuenta con prerequisitos, aplicaciones, extensiones, suposiciones y limitaciones. En una película existen eventos, desarrollo de personajes, un clímax y una resolución.
Un concepto tiene muchas marcas de tiempo. En la enseñanza, esto ocurre cuando se comparan varios conceptos para fomentar el pensamiento de orden superior después de haber introducido cada uno. En el cine, sucede cuando los directores utilizan flashbacks o cuentan la historia fuera de orden.
Las entradas de marca de tiempo tienen unas pocas propiedades:
secondsindica dónde ocurre el momento.descriptionexplica el significado de la cita, lo cual puede ser útil con chistes o para reinterpretar el guion.
quote es el segmento de texto extraído literalmente a través de la conversión de voz a texto.visual indica si el momento puede ser representado visualmente.visualDescription es una descripción de lo que aparece en la pantalla en ese instante.También existen puntos de control, cada uno con un conceptLabel, una question y una answer. En la educación sirven para evaluar la comprensión del estudiante. En el entretenimiento, invitan al público a reflexionar sobre aspectos que se pasaron por alto al ver la obra por primera vez, o a reexaminar los acontecimientos desde otro punto de vista. El modelo fue lo suficientemente inteligente como para reutilizar exactamente el mismo texto para conceptLabel y el label correspondiente dentro de concepts, lo cual es una señal pequeña pero significativa de coherencia interna.
Qué se varió
El tiempo de ejecución típico fue de unos 20 segundos. Algunas ejecuciones finalizaron en 9 segundos, probablemente porque Google almacenó en caché la solicitud y reutilizó los resultados. Otra tardó 50 segundos justo después de un cambio en la solicitud, probablemente antes de que existiera algún caché.
Modo de procesamiento: el modo agente frente al estático apenas supuso diferencia por sí solo, y la mayoría de las marcas de tiempo quedaron dentro de un segundo en ambos casos. Las ejecuciones en modo agente a veces tardaron hasta el doble de tiempo (unos 40 segundos) y otras menos. Tiempo de ejecución del script sí afectó a la calidad: las ejecuciones más largas encontraron más marcas de tiempo por concepto y generaron descripciones y citas más extensas.
La instrucción inicial incluía la indicación de encontrar al menos tres marcas de tiempo por etiqueta de concepto. Sin ella, el modelo solía encontrar solo una por concepto. Con ella, las marcas de tiempo parecían ser ligeramente más precisas, y la hipótesis de trabajo es que aumentar la densidad de búsqueda tuvo un efecto secundario en la precisión. Vale la pena probar con otro número distinto a tres para ver qué ocurre.
Una solicitud adicional pedía al modelo que identificara el momento en que se pronunciaba una línea específica en chino, el clímax de la película, cuando una enorme bola de hierro se dirige hacia el protagonista. Eso obliga al modelo a comparar el audio con una frase exacta y a determinar cuándo ocurrió.
Primera ronda: los voluntarios estáticos incluyen campos adicionales, los agentes los omiten
En el primer intento, el modo estático tendía a añadir las claves visual y visualDescription que el esquema nunca requería. Lo hacía de manera inconsistente, incluyéndolas para algunas marcas de tiempo y omitiéndolas para otras dentro de una misma ejecución. visualDescription es útil para la accesibilidad y para llenar bases de datos de búsqueda, ya que los momentos clave podían buscarse a través de la descripción generada, y resultó preciso en todos los ejemplos analizados.
Solo quote estaba de forma fiable en el chino original. Todas las demás claves podían aparecer en chino o en su traducción al inglés, de manera impredecible en distintas ejecuciones, ya fueran automáticas o estáticas. En ambos modos, las marcas de tiempo estaban ordenadas de manera clara dentro de cada concepto y entre ellos, lo que facilitaba la verificación manual.
El modo agente generó citas más largas, un patrón que se repitió en el segundo intento. También se produjo por primera vez una escena que sigue apareciendo: el modo agente marcó en un momento como 10:41, pero en realidad ocurre a las 10:50 en el video. Si visualDescription hubiera estado presente en esa salida, habría indicado si el modelo realmente estaba mirando a las 10:41 o a las 10:50.
La description de la ejecución estática para una entrada simplemente repetía su etiqueta (“Mecánicas del viaje en el tiempo”), aportando poca información, aunque ejecuciones posteriores mostraron diferencias más significativas. Por el lado positivo, la versión estática logró identificar muy bien el viejo libro de piano y a la heroína cerrando los ojos en visualDescription, e incluso identificó correctamente al personaje. El modo agente simplemente ignoró las claves visuales opcionales.
Segunda ejecución: la versión estática acierta con el momento de 10:50
Static volvió a añadir las teclas visuales opcionales, mientras que agentic no lo hizo. Static también identificó correctamente el momento de las 10:50 que el primer intento de agentic había etiquetado erróneamente, a pesar de que ese intento contenía el texto correcto. Static denominó visualDescription de ese momento como “escena de flashback”, lo que plantea una pregunta: ¿cómo supo Gemini que se trataba de un flashback y no de la línea temporal actual?
Las marcas de tiempo se mantuvieron ordenadas dentro de cada etiqueta en ambos modos. Entre las etiquetas, static presentó primero el análisis del narrador, mientras que agentic intercaló tiempos como 10:41, 17:00, 15:00 y 17:51.
La primera cita de Static, a las 16:31, utilizó los corchetes chinos típicos de títulos de libros que también aparecieron en la pantalla, lo que sugiere que el modelo capturó esa imagen en lugar de basarse únicamente en el audio. Static se mantuvo en citas más cortas, como antes. Agentic alargó sus citas hasta que la mitad se truncaba con un punto y coma; su cita para las 15:00 abarca en realidad del 15:01 al 15:38, y su cita para las 17:51 abarca del 17:54 al 19:56.
Ese último rango es llamativo, porque del 17:54 al 19:56 se incluye la descripción completa de los cuatro finales de la película. Esto plantea una pregunta: ¿qué pasaría si la instrucción también solicitara una marca de tiempo de finalización? Esa pregunta motiva el siguiente cambio en el esquema.
Tercera prueba: agregar rangos de tiempo
El campo seconds era originalmente una cadena, por lo que fue necesario modificarlo. Hay dos opciones. La primera es un array:
"seconds": {
"type": "array",
"description": "The start and end time range in HH:MM:SS or ISO format, structured as [start_time, end_time].",
"prefixItems": [
{
"type": "string",
"description": "Start time (e.g., '00:01:15' or ISO 8601 string)"
},
{
"type": "string",
"description": "End time (e.g., '00:02:30' or ISO 8601 string)"
}
],
"minItems": 2,
"maxItems": 2
}
El segundo es un objeto:
"seconds": {
"type": "object",
"properties": {
"start_time": {"type": "string"},
"end_time": {"type": "string"}
},
"required": ["start_time", "end_time"]
}
El arreglo utiliza menos tokens, pero necesita límites mínimos y máximos poco elegantes para evitar que la lógica de inicio y fin falle, y se utilizó en los experimentos siguientes. El objeto ofrece claves más claras y requiere un poco más de código para leerse, pero tolera claves adicionales, por lo que fuera de los experimentos es la opción recomendada.
La cita no es solo audio
En modo agente, un rango abarcó del 6:20 al 6:42, aunque la cita en realidad comenzó a las 6:30. La description coincidió palabra por palabra con el audio a partir de las 6:20, durante ocho palabras, antes de pasar a su propia paráfrasis. Es como si la tarea de citar se hubiera dividido entre quote y description.
En otro rango temporal, de 8:13 a 9:00, la cita (aproximadamente “ojos fijos”) comenzó a las 8:21, mientras que la descripción indicaba “volver a aparecer”, y la protagonista femenina sí aparece alrededor de las 8:13. Eso respalda la idea de que los rangos de tiempo están determinados por más factores que el audio. La cita finalizó a las 8:55, cinco segundos antes de que terminara el rango, sin motivo aparente.
La implicación es que el audio debería coincidir estrechamente con lo que se muestra en pantalla al analizar el video, de lo contrario la localización de las marcas de tiempo se confunde. Sin embargo, no existe ningún factor evidente que determine qué modalidad un modelo multimodal da más importancia al generar una marca de tiempo. Eso representa una verdadera oportunidad de investigación, y una ablation más clara (audio y video completos frente a video oscurecido frente a video silenciado) permitiría aislar este factor.
Dos nuevos modos de fallo
Una tercera reproducción de la escena recurrente reveló un nuevo fallo. En modo estático, un intervalo de 14:49 a 15:02 contenía una cita que en realidad proviene de 10:49, lo que representa un error de cuatro minutos. Se trata del mismo momento de 10:50 que el modo estático identificó con precisión en la segunda prueba, pero que el sistema basado en agentes etiquetó erróneamente como 10:41 en la primera.
Así, un mismo momento real, probado tres veces en dos versiones del esquema, primero estuvo desviado nueve segundos, luego fue exacto y finalmente nuevamente desviado cuatro minutos. Si la desviación fuera simplemente una característica de escenas inherentemente difíciles, se esperaría un fallo constante, no fallos alternados con éxitos y luego fallos aún peores.
El segundo fallo: una cita en modo estático para el intervalo de 15:07 a 15:17 (aproximadamente “él va a encontrar a Xiaoyu”) nunca aparece en el audio. Parece que el modelo resumió por su cuenta en lugar de transcribir.
Static gana la prueba de encontrar una aguja en un pajar
Para determinar si se podía localizar una cita específica, se amplió la instrucción con la línea de la bola de hierro. Antes del esquema de rango de tiempo, Static encontró 15:22 y Agentic encontró 15:00. Después de implementar ese esquema, Static logró identificar el momento exacto, 15:21, e incluso continuó hasta 15:26, justo cuando la bola impacta el edificio y el ruido desaparece. Agentic tuvo un rendimiento peor, con un rango de 15:00 a 15:37 que era demasiado amplio. En el uso práctico, incluso un error de tres segundos pondría a prueba la paciencia del espectador.
Qué sugieren las pruebas
Static es mejor para encontrar momentos concretos, mientras que Agentic es más eficaz para resumir ideas que se desarrollan a lo largo de períodos más extensos. La conclusión lógica no es elegir a un ganador. Elija según la tarea y la duración del contenido: utilice Static para recuperaciones precisas o clips cortos donde las diferencias de costo apenas importan, y Agentic para la síntesis de algo como una conferencia de 90 minutos, donde los ahorros en recursos comienzan a ser significativos.
Según el experimento de búsqueda, pasar de una marca de tiempo a un rango de tiempo no cambió el punto de inicio, por lo que es sensato obtener también la hora de finalización, lo cual brinda a la aplicación mucho más margen para el diseño de la experiencia de usuario. Es algo similar a realizar incrustaciones vectoriales en un sistema de búsqueda sin incrustar nada en realidad.
Los rangos de tiempo pueden verse influenciados por varias modalidades, e incluso dentro del texto por varias claves, como lo demuestra el patrón de descarga de citas. Quizás el esquema debería ser más simple para que el modelo no se confunda, o la relación entre los campos derivados y los hermanos debería hacerse explícita, por ejemplo indicando que description debe derivarse de quote, o decidiendo si los conceptos son independientes o deben explicar la causalidad entre sí.
Otro patrón merece ser mencionado. Después de solicitar un rango de tiempo, la herramienta dejó de generar por completo los campos visual y visualDescription. Una hipótesis es que el modelo se centró en los campos obligatorios y descartó las claves opcionales bajo carga. Hacerlos obligatorios podría solucionar el problema, aunque posiblemente a costa de la calidad en otros aspectos, ya que quedaría menos capacidad de procesamiento para ellos. Esto se asemeja a la forma en que una herramienta de generación de diapositivas puede crear diapositivas excelentes en una ejecución y regresar a un diseño simplificado en la siguiente, como si necesitara descansar.
Adónde podría llevar esto
Aprendizaje de idiomas. En algunos experimentos no mostrados, solicitar que el inglés y el chino aparecieran uno al lado del otro en la misma línea funcionó incluso sin que se solicitara explícitamente.
Creación de videos. Las marcas de tiempo y los rangos permiten a herramientas posteriores como ffmpeg cortar y recortar el contenido de modo que los conceptos principales aparezcan primero. Los modelos LLM son inadecuados en este caso, por lo que, para conservar todo el contenido y solo eliminar los elementos de relleno entre pausas, resultan más adecuadas herramientas especializadas de conversión de voz a texto como Descript o el modelo de transcripción Gemini más reciente de Google.
Lo que permite una localización precisa:
- Navegación directa a momentos específicos. Las marcas de tiempo funcionan como anclajes que convierten un video lineal en un recurso indexado y buscable, reemplazando la necesidad de desplazarse manualmente.
- Resúmenes automatizados destacados. Al poder encontrar momentos concretos sin tener que escanear manualmente, los creadores pueden combinar escenas de diferentes videos, o los educadores pueden elaborar lecciones interactivas con marcas de tiempo.
Pensar en los bordes además de en los nodos
En el diseño actual, la mayor parte de la información está concentrada de forma densa en los nodos. ¿Cómo podrían modelarse los bordes para mejorar aún más la experiencia? ¿Debería alguna información pasar de los nodos a los bordes, o existen representaciones de conocimiento que vayan más allá de un grafo de nodos y bordes? Las técnicas del libro Learn Like a Polymath podrían ser aplicables: parte-whole, causa-efecto, cosa-función, problema-solución, hecho-opinión y ejemplo-tipo. Es probable que las ILM ya puedan generar tales analogías, y el truco consiste en solicitar lo adecuado en el momento oportuno y presentarlo de la forma correcta.
Ya existe una solución en una aplicación de estudio basada únicamente en texto que crea un mapa conceptual en tiempo real durante la conversación. Allí, el agente genera los enlaces por sí mismo. Puedes preguntar sobre canto y luego sobre técnica vocal, y el agente agrupa esas preguntas en nodos conectados sin que se le indique la relación entre ellas; el código de color para el tema principal, la abstracción, los elementos relacionados y los detalles sirve como información de los enlaces. La propiedad checkpoints en este esquema también tiene un análogo en tiempo real, que marca las preguntas sin resolver y las posibles concepciones erróneas durante la conversación, las cuales se resuelven una vez que se demuestra la comprensión.
Experimentos por realizar
Estos son lo suficientemente específicos como para que cualquiera pueda probarlos, junto con lo que cada uno podría revelar.
Abolición del conflicto entre modalidades. Ejecuta el mismo video de cuatro maneras: con audio completo, video y subtítulos; con audio completo y video sin subtítulos, incluidos aquellos ya integrados en la imagen; video oscurecido, por lo que solo hay audio; y video en silencio, por lo que solo hay contenido visual. Si la desviación desaparece en la versión con solo audio, significa que el sonido domina y los subtítulos integrados estaban empeorando el resultado. Si persiste en la versión con solo audio pero cambia de carácter en la versión con solo visual, eso es una evidencia aún más contundente de que las marcas de tiempo son realmente multimodales y no simplemente audio con ruido visual.
Almacenamiento en caché y temperatura frente a la reproducibilidad. ¿Hará que combinar el almacenamiento en caché de los prompts con una temperatura de cero genere momentos idénticos en cada ejecución? Si la deriva desaparece en cero, el modelo mantiene una creencia estable, aunque imperfecta, sobre dónde se encuentra un momento, y la deriva entre ejecuciones es en su mayor parte ruido de muestreo. Si la deriva persiste en cero, entonces no existe ningún timestamp interno estable para ese momento.
¿La deriva sigue al contenido o a la posición? Si depende de características del propio momento, como cortes rápidos, personas que hablan una sobre la otra o música intensa, dondequiera que ocurra se trata de un fallo invariante ante la traducción que viaja junto con el contenido. Si empeora en un video largo, es algo distinto, posiblemente relacionado con el fenómeno de “perderse en la mitad”, es decir, la disminución del rendimiento de los LLM con información enterrada en medio del contexto.
Vinculación de registros entre segmentos del esquema. ¿Puede el modelo reconocer que dos etiquetas de concepto, generadas en llamadas separadas o separadas por un contexto extenso, se refieren al mismo concepto del mundo real? Ese es el clásico problema de vinculación de registros o resolución de entidades, similar a la resolución de coreferencia cuando ocurre dentro de una sola generación. Funcionó una vez, cuando el modelo reutilizó texto idéntico para conceptLabel y label, pero la pregunta pendiente es si la consistencia se mantiene en llamadas independientes.
Anclaje interlingüístico. Medir hasta qué punto Gemini convierte con fidelidad el chino hablado en campos de esquema en inglés, manteniendo al mismo tiempo la precisión en el tiempo.
Mida, no estime a ojo. Una tabla sencilla que enumere las marcas de tiempo verificadas, la desviación media, el porcentaje dentro de un segundo y el valor atípico más extremo en los seis intentos permitiría elevar las observaciones de “notadas” a “medidas”, y los resultados brutos ya existen.
Pruebe si los cambios necesarios en visualDescription mejoran la calidad. El modelo parecía eliminar claves opcionales a medida que el esquema se volvía más complejo.
Conferencias, películas y memoria
Una conferencia y una película exigen cosas diferentes del espectador. Una conferencia necesita atención, mientras que una película busca emociones. Los personajes de una historia no son problemas resueltos como los conceptos de un libro de texto; están escritos como personas reales cuyas motivaciones están abiertas a la interpretación. A menudo no existe una respuesta correcta ni siquiera una solución clara, solo compromisos, además del esfuerzo por salvar lo que se pueda de una situación lamentable, una lección de vida que trasciende con creces un solo tema.
El neurólogo Oliver Sacks describió a un paciente, Clive Wearing, cuya amnesia le impedía retener un recuerdo más allá de unos segundos, excepto en el caso de la música, que aún podía tocar, leer y recordar por completo. Sacks lo expresó de esta manera: el poder de la música debe sorprender a uno sin que se dé cuenta y surgir espontáneamente como una bendición.
Eso se acerca a lo que un LLM podría llegar a ser para nosotros: no es un sustituto de la memoria, pero sí una ayuda para superar la imperfección de nuestras memorias actuales, permitiéndonos volver a los momentos importantes y reorganizarlos de manera coherente cuando estamos confundidos o abrumados.
La colaboración también puede ser bidireccional. Los esquemas pueden perfeccionarse para extraer lo mejor de los LLM, y a su vez estos pueden transformar nuestras visiones del mundo y habilidades, ayudándonos a pensar críticamente sobre un tema y a desarrollar empatía y habilidades sociales al comprender por qué un personaje se comporta de cierta manera, explorar escenarios hipotéticos y aprender a contar historias excelentes. La heroína de la película podría haber tenido cuatro finales posibles, y un LLM podría ofrecer de igual manera múltiples fuentes de conocimiento al alcance, con la capacidad de acelerar, ralentizar, rebobinar y elegir un camino.
Una dirección relacionada es el estudio de un agente que observa una conferencia junto a usted, se detiene a petición y responde basándose en el momento exacto de la pausa. Ese es el mismo problema de localización por marca de tiempo que se probó aquí, solo que en tiempo real y más difícil. Si el modo de agente ya presenta desviaciones de minutos en un video terminado y controlado, una versión de transmisión en vivo enfrentaría una forma aún más complicada del mismo problema. Estos experimentos son una base inicial para esa idea, no una descripción de un producto ya lanzado.
Apéndice: configuración y reproducción de las pruebas
Obtenga una GOOGLE_API_KEY desde AI Studio y luego guárdela en su shell:
export GOOGLE_API_KEY=<your key>
Para evitar exportarlo después de cada reinicio de la terminal, coloque la clave en un archivo .env y añada esto al script:
from dotenv import load_dotenv
load_dotenv()
Frustraciones con la API
La falta de familiaridad con client.models.generate_content() fue una de las causas de problemas, y la página de presentación del producto de Google mostraba código con la API Interactions más reciente (client.interactions.create()), lo que sugería que el video basado en agentes no era compatible con la antigua API generate_content hasta que la documentación demostró lo contrario. Tampoco quedó claro cómo, o si es que se podían especificar, ciertos parámetros como los resúmenes de razonamiento. A esto se sumaron los cambios que rompían la compatibilidad en la API Interactions en mayo de 2026, además de respuestas repetitivas en el chat web de Gemini, lo que hizo que iniciar el proceso requiriera horas de intentos y suposiciones.
Resúmenes de razonamiento vacíos
No está claro si el código de análisis estaba incorrecto o si la tarea era simplemente demasiado sencilla, pero no había ningún resumen de razonamiento: el archivo de salida correspondiente a los pensamientos mostraba consistentemente una lista vacía.
Leer más
- Reducir los costos de tokens de los agentes: caché, enrutamiento e higiene del contexto — Formas prácticas de disminuir las facturas de los agentes LLM: caché de prompts y semántico, herramientas de carga diferida, enrutamiento y cascadas de modelos, subagentes y un contexto más limpio.
- Un diseño de memoria de cuatro capas para agentes de IA con trazabilidad — División de memoria a corto y largo plazo, cuatro capas (búfer, episódico, semántico, procedural), opciones de almacenamiento, escrituras asíncronas y medidas de protección contra el envenenamiento de la memoria.