Gemini Managed Agents: monitoreo de marca programado con MCP remoto
Gemini Managed Agents vigila una marca con Triggers y el MCP remoto de EveryInfra: 14 llamadas reales, noticias en español y datos a 0,003 USD por ronda.

El 14 de noviembre de 2026 a las 00:57, hora de Singapur, pedimos a Google Noticias en español las noticias de la última semana sobre Anker en España. Usamos el servidor MCP remoto de EveryInfra con la misma forma de petición que envía la herramienta mcp_server de Gemini Managed Agents. Volvieron 20 artículos, el máximo de una llamada. La mitad eran ofertas y rebajas, y Gizmodo en Español firmaba 6 de ellos. Tres no hablaban de la marca: eran notas de economía argentina sobre el «punto Anker», un término de política monetaria.
La misma consulta para México devolvió 15 de los mismos 20 artículos. Un agente de monitoreo de marca que lee solo el título de cada resultado mezclaría ofertas, notas ajenas y noticias reales en el mismo informe. Por eso este artículo dedica tanto espacio a filtrar lo que trae el agente como a conectarlo.
El lado de EveryInfra es real. Entre las 00:18 y las 00:57 del 14 de noviembre de 2026, hora de Singapur, usamos una clave de EveryInfra contra https://api.everyinfra.com/mcp. Enviamos un saludo inicial, dos peticiones tools/list y 14 peticiones tools/call. Las primeras 11 fueron tres rondas para Reddit, Trustpilot y noticias en inglés, a las 00:18, 00:34 y 00:50. Las otras 3, a las 00:57, fueron consultas de noticias en español, y las dos de España y México aparecen más abajo. Otra fue una prueba de youtube/search que no entra en el plan. También hicimos una llamada REST de comparación. Guardamos cada respuesta original, así que cada número se puede recalcular.
El lado de Gemini es distinto. No abrimos un proyecto de pago de la Gemini API ni creamos un agente o un Trigger reales. Todo bloque de código de Gemini en este artículo es un ejemplo de configuración. Sigue el texto de ai.google.dev tal como lo leímos el 14 de noviembre de 2026. El costo del modelo de Gemini es una estimación con precios públicos y los bytes que medimos, no una factura.

Qué es Gemini Managed Agents: la cronología de 2026
Gemini Managed Agents es la función de agentes alojados de la Gemini API. Una sola llamada a la API arranca un agente en un sandbox Linux que aloja Google. El agente razona, ejecuta código, maneja archivos y usa la web. Las notas de la versión de la Gemini API fijan el lanzamiento el 19 de mayo de 2026, como vista previa pública junto con el agente general Antigravity (Notas de la versión de la Gemini API, 2026-05-19). La entrada del blog de Google lo resume así: una llamada arranca un agente que razona y ejecuta código en un entorno Linux aislado y temporal (Blog de Google: Build managed agents with the Gemini API).
La página de resumen de agentes sigue marcando «Public Preview». También pide revisar las acciones y la salida del agente antes de usarlo en flujos sensibles (Resumen de agentes: seguridad y buenas prácticas).
En la API, la entrada es la Interactions API. Su documentación dice que está disponible de forma general desde junio de 2026 y que es la interfaz recomendada para proyectos nuevos. El servidor puede guardar el estado de la conversación, y las tareas largas corren en segundo plano con background=true (Resumen de la Interactions API).
Casi todos los cambios que importan aquí ocurrieron en los dos últimos meses. Estos son, por fecha:
| Fecha | Cambio | Qué significa para un agente de monitoreo | Fuente |
|---|---|---|---|
| 2026-05-19 | Managed Agents y antigravity-preview-05-2026 en vista previa pública | Punto de partida. El modelo por defecto era Gemini 3.5 Flash | Notas de la versión |
| 2026-09-17 | Sale antigravity-preview-09-2026 y la versión anterior se apaga el 5 de octubre. Las herramientas de archivos usan parámetros en PascalCase | El código que solo lee output_text cambia el nombre del agente. El que interpreta llamadas a herramientas debe reescribirse | Notas de la versión |
| 2026-10-19 | El repositorio oficial de plantillas pasa todas las plantillas al agente base 09-2026 | Los proyectos que parten de una plantilla ya usan la versión nueva | Commits del repositorio de plantillas |
| 2026-10-27 | Beta de la CLI de la Gemini API (gemini-api), que ejecuta agentes gestionados desde la terminal | Un script con cron o una tarea de CI puede llamar al agente sin código de SDK | Notas de la versión |
| 2026-11-10 | Gemini 4 Carbon disponible, 2 USD de entrada y 10 USD de salida hasta el 30 de noviembre | Es el modelo más potente. La página de precios fija 4 USD de entrada y 20 USD de salida desde el 1 de diciembre | Notas de la versión, Precios: Gemini 4 Carbon |
| 2026-11-12 | Gemini 4 Hydrogen disponible y modelo por defecto del agente Antigravity | Un agente sin agent_config.model se cobra a precio de Hydrogen desde ese día | Notas de la versión |
La última fila toca la factura. La página del agente Antigravity dice que antigravity-preview-09-2026 usa gemini-4-hydrogen si no envías agent_config. Las otras opciones son Carbon, Argon, 3.8 Flash, 3.6 Flash y 3.5 Flash-Lite (Agente Antigravity: elección de modelo). Un agente con nombre, guardado con agents.create, fija su modelo al crearse y no se puede cambiar al llamarlo (Agentes propios: limitaciones). Si creaste un agente antes del 12 de noviembre sin indicar modelo, su precio cambió ese día. Revísalo.
Carbon merece una nota aparte. La página de precios dice que Carbon no está en el nivel gratuito. Los precios de 2 USD de entrada y 10 USD de salida solo valen hasta el 30 de noviembre. Desde el 1 de diciembre, la entrada cuesta 4 USD y la salida 20 USD por millón de tokens (Precios: Gemini 4 Carbon). Ese precio de entrada es 2,7 veces el de Hydrogen. Si un monitor diario tiene Carbon fijado, los mismos tokens costarán en diciembre el doble que en noviembre.
El trabajo de monitoreo en cuatro pasos
Nuestro agente hace una sola cosa. Cada día lee el contenido público nuevo sobre Anker en tres fuentes, elige lo que una persona debe ver y escribe un informe breve. Anker es una marca pública de baterías externas, auriculares y baterías para el hogar, con venta en España, México y Argentina. En junio de 2025 retiró más de un millón de baterías externas en Estados Unidos por un problema en las celdas (Aviso de retirada de la CPSC de EE. UU., 2025-06-12). Un equipo de marca tiene motivos reales para revisarla cada día.
Elegimos tres de las cuatro capacidades candidatas: reddit/search, trustpilot/reviews y google_news/search. Dejamos fuera youtube/search. Reddit muestra lo que los usuarios comentan por su cuenta. Trustpilot muestra reseñas después de la compra. Google Noticias muestra lo que publican los medios y la propia marca. Cada una tiene su página en EveryInfra: búsqueda en Reddit, reseñas de Trustpilot y búsqueda en Google Noticias. Las páginas generales son API de datos de Reddit, API de datos de Trustpilot y API de datos de Google Noticias.
Cada paso tiene un responsable. En el primero, los Triggers de Gemini despiertan al agente con una expresión cron y una zona horaria. Cada ejecución reutiliza el mismo entorno, así que los archivos de la ronda anterior siguen ahí (Agente Antigravity: Triggers). En el segundo, el agente llama a everyinfra_call_api una vez por plataforma a través del servidor MCP remoto. En el tercero, compara ids de posts, ids de reseñas y URL de noticias con seen_ids.json y se queda solo con lo nuevo.
La hora sirve para ordenar, no para decidir qué es nuevo. El posted_at de un post de Reddit puede no coincidir con el momento en que aparece en la búsqueda. En el cuarto paso, el agente escribe el informe en la carpeta briefings/. Separa las reseñas nuevas de una estrella, los posts sobre falsificaciones o fallos y la cobertura de prensa. Después añade los ids del día a seen_ids.json.
Copiamos esta estructura de la plantilla News Curator del repositorio oficial de Google. Esa plantilla también corre con un Trigger y revisa Google News, Hacker News y Medium. Guarda seen_items.json en el entorno persistente para no repetir noticias, y escribe curation_history.csv para seguir los conteos de cada ronda (Plantilla News Curator). Su README dice que el entorno persistente de un Trigger es a la vez memoria y personalización. Sus tres fuentes no piden cuenta ni token, y su lista de dominios permitidos tiene tres entradas. Reddit y Trustpilot no están entre esas fuentes, por eso conectamos un servidor MCP de datos.
gemini managed agents api: conectar un servidor MCP remoto con mcp_server, credential y allowed_tools
La sección «MCP servers» de la página del agente Antigravity enumera todos los campos. type siempre es mcp_server. name solo admite minúsculas, dígitos, guiones bajos o guiones. url es la dirección del servidor, headers puede llevar la cabecera de autenticación y allowed_tools limita las herramientas que el agente puede usar. Si omites allowed_tools, todas quedan abiertas. El único transporte es Streamable HTTP (Agente Antigravity: MCP servers).
La sección de limitaciones de la misma página añade dos trampas. El transporte SSE no está soportado. Una mayúscula en name devuelve un 400 Bad Request genérico, y el mensaje no dice que el problema es el nombre (Agente Antigravity: limitaciones). Conviene validar las minúsculas en cualquier script que genere estas configuraciones.
![Captura de la sección MCP servers de la página del agente Antigravity en ai.google.dev. Una tabla muestra cinco campos: type, name, url, headers y allowed_tools. La fila de name dice que debe ir en minúsculas y cumplir ^[a-z0-9_-]+$, y un recuadro verde azulado la marca.](/articles/gemini-managed-agents-remote-mcp-brand-monitoring/img-docs-mcp.webp)
La dirección del servidor MCP remoto de EveryInfra es https://api.everyinfra.com/mcp. Usa Authorization: Bearer <tu clave> y cumple estas reglas. Funciona con Streamable HTTP. Nuestro initialize de las 00:19:44 tardó 0,145 segundos, y la versión de protocolo acordada fue 2025-06-18. La clave puede ir en dos sitios. Lo más simple es escribirla en headers, pero así aparece en cada petición y queda en tu código y en tus registros.
La documentación recomienda Credentials. Primero guardas una credencial de tipo bearer_token con POST /credentials. Después escribes "credential": "<id de la credencial>" en la entrada mcp_server. Un proxy de salida añade la cabecera en cada petición. El valor es de solo escritura y ningún endpoint lo devuelve (Credentials: uso con servidores MCP). Un bearer_token envía Authorization: Bearer <token> por defecto, y header_name y prefix lo pueden cambiar (Credentials: Bearer token). EveryInfra usa el formato por defecto.
| Dónde vive la clave | Qué escribes | Quién puede leerla después | Nuestra opinión |
|---|---|---|---|
headers en la entrada mcp_server | "headers": {"Authorization": "Bearer <clave>"} | Quien vea tu código, tus registros o las peticiones | Solo para una primera prueba local |
Una credencial bearer_token | "credential": "everyinfra-key" | Nadie: el valor es de solo escritura | La opción para cualquier agente programado |
| Una credencial en la lista de dominios permitidos | Entrada de allowlist para api.everyinfra.com con la credencial | Nadie | La opción para la vía B, con un script que llama a REST |
Este es un ejemplo de configuración. No lo ejecutamos en el lado de Gemini. Sigue la documentación tal como la leímos el 14 de noviembre de 2026. La primera parte guarda la credencial una vez. La segunda ejecuta una ronda a mano para comprobar que el agente llega a los datos:
# Ejemplo de configuración: no ejecutado en Gemini. Sigue ai.google.dev leído el 2026-11-14
import os
from google import genai
client = genai.Client(http_options={"api_version": "v1beta"})
# 1) Guardar la clave de EveryInfra como credencial de solo escritura
client.credentials.create(
id="everyinfra-key",
type="bearer_token",
token=os.environ["EVERYINFRA_API_KEY"], # envía Authorization: Bearer <token> por defecto
)
# 2) Una ronda manual: solo everyinfra_call_api queda abierta
interaction = client.interactions.create(
agent="antigravity-preview-09-2026",
agent_config={"type": "antigravity", "model": "gemini-3.5-flash-lite", "max_total_tokens": 120000},
environment="remote",
tools=[
{"type": "code_execution"},
{
"type": "mcp_server",
"name": "everyinfra", # solo minúsculas; una mayúscula da un 400 sin motivo
"url": "https://api.everyinfra.com/mcp",
"credential": "everyinfra-key",
"allowed_tools": ["everyinfra_call_api"],
},
],
input=open("prompt_informe_marca.md").read(),
)
print(interaction.status, interaction.usage.total_tokens)
print(interaction.output_text)Nuestro tools/list de las 00:18 devolvió 12 herramientas en 16.250 bytes. La definición de everyinfra_call_api sola ocupa 1695 bytes. Con everyinfra_get_job y everyinfra_list_capabilities, las tres ocupan 3309 bytes. La página de precios de Gemini dice que las declaraciones de funciones y las instrucciones de sistema de las herramientas se cobran como tokens (Precios: Gemini 4 Hydrogen). La guía de tokens de Google estima unos 4 caracteres por token (Guía de tokens).
| Herramientas permitidas | Bytes de definición | Tokens a 4 caracteres por token | Tokens en una ronda de cuatro pasos |
|---|---|---|---|
| Las 12 herramientas de EveryInfra | 16.250 | unos 4063 | unos 16.252 |
everyinfra_call_api, everyinfra_get_job, everyinfra_list_capabilities | 3309 | unos 827 | unos 3308 |
Solo everyinfra_call_api | 1695 | unos 424 | unos 1696 |
El agente lleva estas definiciones en cada paso, así que una ronda de cuatro pasos cambia en 14.556 tokens. El monitoreo de marca no necesita herramientas de tickets, enlaces de recarga ni tipos de CAPTCHA. Una sola herramienta ahorra dinero y le quita al modelo una ocasión de elegir mal. Si una capacidad lenta necesita mode=async, añade otra vez everyinfra_get_job. Leer el resultado de una tarea no cuesta nada.
max_total_tokens es el interruptor de presupuesto del agente Antigravity. Cuando los tokens de entrada, salida y razonamiento llegan a esa cifra, el agente se detiene y devuelve status: "incomplete". Los tokens en caché no cuentan. La documentación habla de un límite aproximado, así que el total real puede pasarse un poco (Agente Antigravity: control de presupuesto). Ponlo en toda tarea programada sin supervisión. Un bucle que se tuerce puede gastar el presupuesto de un día entero. La guía de AI Studio da el mismo aviso: un prompt puede llevar a un consumo de tokens sin tope, así que indica al agente cuándo parar (Agentes en AI Studio: consumo de tokens).
Hay un punto que la documentación no aclara. No sabemos si las peticiones de mcp_server también pasan por la lista network.allowlist del sandbox. El resumen de agentes dice que el tráfico de salida está abierto por defecto y que una lista de dominios permitidos lo puede restringir (Resumen de agentes: acceso a la red). La página de Credentials dice que los servidores MCP y la lista usan el mismo campo credential y las mismas reglas de prioridad. No lo probamos en Gemini. Por eso el ejemplo de Trigger de más abajo incluye api.everyinfra.com en la lista. Así funciona en los dos casos.
Un viaje de ida y vuelta real: qué devolvieron tools/list y tools/call
Detrás del agente, la herramienta mcp_server de Gemini sigue los tres pasos estándar de MCP. Envía un saludo initialize, pide las definiciones con tools/list y ejecuta herramientas con tools/call. En la especificación de MCP, Streamable HTTP significa que el cliente envía peticiones HTTP POST a una sola dirección. El servidor responde con JSON o con un flujo SSE (Especificación MCP: Transports, 2025-06-18). Escribimos un cliente corto en Python que envía las mismas peticiones en el mismo orden. Así recorremos antes las peticiones que enviaría un agente de Gemini. Este es el cuerpo del tools/call de las 00:18, con la misma estructura de argumentos que usa un agente de Gemini:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "everyinfra_call_api",
"arguments": {
"platform": "reddit",
"action": "search",
"params": {"keyword": "Anker", "sort": "newest"}
}
}
}El campo result.content[0].text de la respuesta lleva una cadena JSON con un arreglo results y un objeto billing. En reddit/search, billing.charged_usd fue 0,000792, igual que price_usd en el catálogo. Cada post trae campos como id, url, title, text, community, like_count, comment_count y posted_at, que coinciden con response_fields del catálogo. Tomamos todos los parámetros del catálogo, que leímos a las 00:17:49 del 2026-11-14, hora de Singapur.
reddit/search acepta sort=newest y cubre el último mes. trustpilot/reviews pide el dominio web de la empresa en company, su parámetro date tiene cinco valores como last7days, y una llamada devuelve hasta 200 reseñas. google_news/search acepta time_window con hour, day, week, month o year, y también country y language con códigos de dos letras. Una llamada devuelve hasta 20 artículos.

En las tres rondas en inglés hicimos 9 llamadas tools/call correctas para estas tres capacidades y una llamada REST de comparación. A las 00:18:58, una llamada a trustpilot/reviews devolvió un error, no se cobró y funcionó al repetirla a las 00:19:45. La tabla recoge las llamadas correctas. El total fue 0,009711 USD:
| Ronda | Envío (hora de Singapur) | Capacidad | Parámetros clave | Elementos | Tiempo (s) | Cobro (USD) |
|---|---|---|---|---|---|---|
| 1 | 00:18:47 | reddit/search | newest | 24 | 4,9 | 0,000792 |
| 1 | 00:19:06 | google_news/search | time_window week | 20 | 2,1 | 0,000792 |
| 1 | 00:19:45 | trustpilot/reviews | last7days | 9 | 44,7 | 0,001389 |
| 2 | 00:34:21 | reddit/search | newest | 24 | 5,9 | 0,000792 |
| 2 | 00:34:35 | trustpilot/reviews | last7days | 9 | 41,3 | 0,001389 |
| 2 | 00:35:24 | google_news/search | time_window day | 20 | 2,0 | 0,000792 |
| 3 | 00:50:03 | reddit/search | newest | 24 | 5,4 | 0,000792 |
| 3 | 00:50:16 | trustpilot/reviews | last7days | 10 | 48,0 | 0,001389 |
| 3 | 00:51:12 | google_news/search | time_window day | 20 | 1,9 | 0,000792 |
| 3 | 00:51:32 | google_news/search (REST) | time_window day | 20 | 2,9 | 0,000792 |
| Total | 0,009711 |
Los tiempos varían mucho. google_news/search tardó unos 2 segundos cada vez, entre 1,9 y 2,1. reddit/search tardó entre 4,9 y 5,9 segundos. trustpilot/reviews pasó de 40 segundos las tres veces: 44,7, 41,3 y 48,0. Un Trigger de Gemini tiene un tiempo límite por defecto de 600 segundos por ejecución (Agente Antigravity: crear un Trigger). Las tres llamadas suman cerca de un minuto, lejos de ese límite. Si un día vigilas una docena de marcas con Trustpilot en cada una, haz la cuenta o sube execution_timeout_seconds.
Una respuesta con error no se cobra, y el agente puede repetir la llamada. Aun así, conviene una regla en el prompt: si una fuente no trae datos en una ronda, el informe dice «no se obtuvo». No dice «sin reseñas negativas».
Cada cuánto debe correr cada fuente
El número de ejecuciones diarias depende de la fuente más rápida. Con la primera ronda medimos cuánto tiempo cubre una llamada de cada fuente:
| Fuente | Parámetros | Elementos devueltos | Más antiguo (UTC) | Más nuevo (UTC) | Horas cubiertas | Llamadas mínimas por día |
|---|---|---|---|---|---|---|
reddit/search | Anker, newest | 24 | 13 nov 06:46 | 13 nov 14:48 | 8,04 | 3 |
trustpilot/reviews | anker.com, last7days | 9 | 7 nov 19:28 | 11 nov 11:38 | 88,18 | 1 |
google_news/search | Anker, week | 20 | 6 nov 17:17 | 13 nov 15:10 | 165,89 | ver abajo |
La fila de Reddit marca el ritmo. Los 24 posts más nuevos cubren solo 8,04 horas, así que hacen falta al menos 3 llamadas en 24 horas para no dejar huecos. La segunda ronda, a las 00:34, cubrió 9,47 horas, y la tercera, a las 00:50, cubrió 9,22. Las tres rondas quedaron entre 8 y 10 horas, de modo que tres ejecuciones al día es el mínimo. Las tres rondas cayeron en los mismos 33 minutos pasada la medianoche en Singapur, así que miden un solo tramo, de la mañana a la tarde en UTC. Durante el día en Estados Unidos se publica más rápido, y la ventana puede ser más corta. Solo medimos ese tramo.
De una ronda a otra, el post más nuevo pasó de las 14:48 a las 16:23 y luego a las 16:43 UTC. El más antiguo pasó de las 06:46 a las 06:55 y luego a las 07:30. Los dos extremos de la ventana avanzan: cada post nuevo que entra por arriba empuja uno viejo fuera por abajo.
Trustpilot es el caso contrario. Tenía 9 reseñas en 7 días. Una llamada diaria sobra, y una cada dos o tres días tampoco perdería nada.
Además de la cobertura cuenta la rapidez. La reseña de una estrella de la tercera ronda apareció en los resultados 14 minutos después de publicarse. Si solo quieres cobertura completa, llama una vez al día en la ronda de las 09:00, por 0,001389 USD diarios. Si quieres ver una mala reseña en pocas horas, llama cada 8 horas como con Reddit. Eso suma 2 × 0,001389 = 0,002778 USD al día, o 0,083 USD cada 30 días.
La ventaja del agente es un solo informe con Reddit, noticias y reseñas. Junto a una reseña de una estrella puedes ver si en Reddit alguien cuenta el mismo fallo con el mismo modelo. El costo extra de datos es pequeño frente al del modelo. Lo que sí pesa es la entrada del modelo: cada ronda extra le hace leer otra respuesta de Trustpilot de unos 11 KB, cerca de 2800 tokens a 4 caracteres por token.
También leímos el texto de las 9 reseñas de Trustpilot de la primera ronda. Las estrellas se fueron a los extremos: 3 reseñas de una estrella y 6 de cinco, ninguna intermedia. Por contenido, el reparto cambia:
| Estrellas | Reseñas | De qué trata | País |
|---|---|---|---|
| Una | 1 | Pedido de una SOLIX C2000 con batería adicional en la web de Anker. La página decía «en stock», pero el pedido no salió a tiempo | Reino Unido |
| Una | 1 | Más de un mes sin recibir el pedido, con promesas repetidas del soporte | EE. UU. |
| Una | 1 | PowerCore III Elite 26K: los puertos USB-A fallaron a los 3 meses. Sin cambio porque la vendió un tercero | Francia |
| Cinco | 3 | Atención al cliente: auriculares nuevos al día siguiente, un problema de envío resuelto por el soporte | Reino Unido, Países Bajos, EE. UU. |
| Cinco | 3 | El producto: auriculares y cargadores que duran. Una reseña empieza con el nombre completo de la batería Zolo | Reino Unido, Australia, EE. UU. |
Dos de las 3 reseñas de una estrella hablan de pedidos y envíos, y solo una de un fallo del producto. Tres de las 6 de cinco estrellas elogian la atención al cliente. Así, 5 de las 9 reseñas tratan de servicio y entrega, no del producto. Si un equipo manda cada reseña de una estrella a producto, dos llegan a quien no toca. Conviene ordenar primero por tema (fallo del producto, pedido y envío, posventa) y después por estrellas. La reseña nueva de una estrella de la tercera ronda, sobre un cargador A2697 y una disputa por cambio o reembolso, también es de posventa.
La fila de Google Noticias tiene otro problema: llega al tope. La ventana de una semana devolvió 20 artículos, el máximo de una llamada. Esa semana hubo más de 20 noticias sobre Anker en inglés. Reseñas, guías de compra y ofertas de Black Friday ocuparon casi todo. BGR firmaba 5 artículos y el blog de Anker, 3.
Los 20 artículos iban del 6 al 13 de noviembre, y solo 2 caían en el último día: uno de PCMag y otro de SlashGear. En la segunda ronda, a las 00:35, pasamos la ventana a un día y volvieron otros 20 artículos, que cubrían 21,53 horas. 18 de ellos no estaban en la lista semanal.
Es decir, para el mismo día, la ventana de un día mostró 20 artículos y la de una semana, 2. Cuando la consulta semanal llega al tope de 20, deja fuera noticias más antiguas y también la mayoría de las del último día. Las dos listas tampoco compartían medios: la de un día tenía 3 artículos de Tech Times y 2 de Kotaku, Trusted Reviews y 9to5Toys, y ninguno del blog de Anker.
Por eso las noticias piden ventanas cortas y llamadas frecuentes. Cada llamada extra cuesta 0,000792 USD, y una diaria con ventana de un día suma 0,024 USD al mes.
En español: Google Noticias para España y México
Un equipo que vigila la marca en España o en América Latina no lee las mismas noticias. A las 00:57 hicimos dos llamadas más a google_news/search con la palabra Anker y una ventana de una semana. La primera usó country: es y language: es. La segunda, country: mx y language: es. Cada una costó 0,000792 USD y tardó 3,5 y 2,4 segundos. Estos son los resultados:
| Consulta | Artículos | Ofertas y rebajas | «Punto Anker» (Argentina) | Fuente con más artículos | En común con la otra consulta |
|---|---|---|---|---|---|
España (es, es, week) | 20 (tope) | 10 | 3 | Gizmodo en Español, 6 | 15 |
México (mx, es, week) | 20 (tope) | 10 | 3 | Debate, 5 | 15 |
Las dos consultas llegaron al tope de 20, igual que en inglés. La mitad de cada lista eran ofertas: precios mínimos en baterías externas y auriculares, el Black Friday en España, el Buen Fin en México y el Cyber Monday de Anker Argentina. En España, Gizmodo en Español publicó 6 de los 20 artículos, casi todos de rebajas en Amazon. En México, el diario Debate publicó 5, casi todos de remates en Mercado Libre. Para un equipo de marca, estas notas valen una línea de resumen, no una alerta.
Tres artículos de cada lista no trataban de la marca. Infobae, Rosario Finanzas y Ecos Diarios hablaban del «punto Anker», un concepto económico que el equipo económico argentino usa para el momento en que los bancos prefieren prestar al sector privado antes que comprar deuda del Tesoro (Infobae, 2026-11-12). Según La Nación, el nombre viene de una consultora argentina, y el diario explicó el concepto en abril de 2025 (La Nación, 2025-04-28). Estas notas no tienen nada que ver con baterías ni cargadores.
Lo más simple es filtrar en las reglas del agente. En AGENTS.md, escribe una regla para descartar todo artículo donde Anker solo aparezca dentro de «punto Anker». Escribe otra para agrupar las ofertas en una sola línea con la tienda y el producto. Así quedan pocas noticias reales: el lanzamiento en España de los sacaleches eufy, el cargador compacto de 3 puertos en Europa y la nueva cámara 4K. Ese es el contenido que un equipo de marca quiere leer.
Las dos consultas compartían 15 de 20 artículos. Si vigilas los dos mercados, deduplica por URL entre consultas y no solo dentro de cada una. Si no, el informe repetirá 15 noticias. El costo de las dos llamadas semanales es 0,001584 USD. Con ventanas de un día en ambos mercados, la cuenta mensual sigue por debajo de 0,05 USD.
Rondas 2 y 3: qué era nuevo, por id
La segunda ronda, a las 00:34, llegó 15 minutos después de la primera. La tercera, a las 00:50, llegó 16 minutos después de la segunda. Cada ronda llamó una vez a las tres fuentes en inglés. Comparamos los elementos por id, o por URL en las noticias, con todas las rondas anteriores:
| Ronda | Fuente | Elementos | Nuevos | Ya vistos | Nuevos recortados (bytes) | Respuesta completa (bytes) |
|---|---|---|---|---|---|---|
| 1 | 24 | 24 | 0 | 7093 | 41.605 | |
| 1 | Trustpilot | 9 | 9 | 0 | 2173 | 11.253 |
| 1 | Google Noticias | 20 | 20 | 0 | 4476 | 9274 |
| 2 | 24 | 1 | 23 | 214 | 40.699 | |
| 2 | Trustpilot | 9 | 0 | 9 | 2 | 11.255 |
| 2 | Google Noticias | 20 | 18 | 2 | 5021 | 10.253 |
| 3 | 24 | 2 | 22 | 656 | 40.249 | |
| 3 | Trustpilot | 10 | 1 | 9 | 251 | 13.123 |
| 3 | Google Noticias | 20 | 1 | 19 | 255 | 10.256 |
En 15 minutos, Reddit sumó un solo post, y era ruido. En r/AynThor, alguien preguntaba cómo hacer correr GTA IV en una consola portátil, y la palabra Anker no tenía relación con la marca. Trustpilot no sumó nada. Los 18 artículos nuevos venían de nuestro cambio de ventana, de una semana a un día. No significan que salieran 18 noticias en 15 minutos. Lleva una lista de vistos por fuente y por juego de parámetros, porque al cambiar parámetros «nuevo» cambia de sentido.
Si sumamos las tres rondas, volvieron 160 elementos: 72 de Reddit, 28 de Trustpilot y 60 de noticias. Tras deduplicar por id y URL quedaron 76 distintos: 27 de Reddit, 10 de Trustpilot y 39 de noticias. Es menos de la mitad. De esas 39 noticias, 18 llegaron por el cambio de ventana, así que con parámetros fijos la proporción de repetidos sería aún mayor. En la vía A, el modelo lee los 160 elementos, y los 84 repetidos también gastan tokens. Por eso la vía B, más abajo, quita los repetidos antes de que el modelo lea nada.
Los 4 elementos nuevos de la tercera ronda muestran tres casos que un informe debe manejar:
| Fuente | Publicado (UTC) | Capturado (UTC) | Qué es | Sección del informe |
|---|---|---|---|---|
| Trustpilot | 13 nov 16:36 | 13 nov 16:50 | Reseña de una estrella de un cargador de 140 W, modelo A2697, disputa de garantía en Turquía | Reseñas de una y dos estrellas, primera línea |
| Reddit, r/powerbanks | 13 nov 16:43 | 13 nov 16:50 | Pregunta sobre alimentar una tira LED con poca corriente, menciona una batería Anker de 10.000 mAh | Comentarios de producto |
| Reddit, comunidad francesa de ofertas | 13 nov 16:40 | 13 nov 16:50 | Rebaja de Black Friday de un cargador Anker de 100 W | Ofertas, una línea |
| Google Noticias | 12 nov 17:13 | 13 nov 16:51 | Prueba de un cargador de viaje Anker, vista por primera vez en la ronda 3 | Prensa |
La reseña de Trustpilot tiene un posted_at de 2026-11-13 16:36 UTC, las 00:36 del 14 de noviembre en Singapur. No existía en la segunda ronda de las 00:34, y la tercera de las 00:50 ya la trajo. Quien la escribe está en Turquía. Cuenta que un cargador Anker de 140 W y cuatro puertos dejó de funcionar a los cinco meses y medio. Un servicio técnico autorizado confirmó el fallo, y después hubo desacuerdo con la tienda local y con el soporte de Anker sobre cambio o reembolso. Es justo el tipo de reseña que un equipo de marca quiere ver primero.
¿Por qué no deduplicar por hora? Las rondas 2 y 3 dieron un ejemplo cada una. En la ronda 2, el post nuevo tenía un posted_at de 16:23 UTC, y la ronda 1 corrió a las 16:18 UTC, así que aún no existía. Ahí una regla por hora funciona. Pero la búsqueda de Reddit puede indexar un post con retraso, y un post de las 16:10 puede aparecer a las 16:30. Si guardas solo «la hora más nueva que vi», ese post se pierde.
Vimos lo mismo con reseñas de Google Maps en Claude Managed Agents: revisión nocturna de reseñas. La noticia de la ronda 3 es un caso más claro. Era una prueba de un cargador de viaje publicada a las 17:13 UTC del 12 de noviembre, más antigua que casi toda la lista, y no apareció en las dos primeras rondas. Entró en los 20 primeros solo en la ronda 3. Una regla por hora la habría descartado. Con ids y URL, ni el retraso del índice ni los cambios de orden importan.
Cuántos de los 24 posts de Reddit hablan de Anker
La descripción de la palabra clave de reddit/search es precisa. Solo devuelve posts que contienen la palabra en el título, en el nombre de la comunidad o en el texto completo (Página de búsqueda en Reddit de EveryInfra). Anker es una sola palabra, así que los 24 posts la mencionan, pero solo 6 tratan de Anker. Mientras escribíamos este artículo leímos los 24 posts de la primera ronda y los repartimos en cuatro grupos según el tema:
| Grupo | Regla | Posts | Ejemplo (comunidad) |
|---|---|---|---|
| Anker es el tema | Dudas, autenticidad, instalación, elegir entre dos | 6 | r/powerbanks pregunta si una A1384 es original. r/homeautomation quiere conectar una Solarbank Max a Home Assistant |
| Mención de paso | Aparece en una recomendación, comparación u otra pregunta | 8 | r/SteamFrame dice que una batería Anker de 140 W no alimenta el visor. Un hilo de auriculares cita los Soundcore R60i |
| Ofertas y precios | Bajadas de precio, listas de descuentos | 4 | Bajada de la SOLIX C300 en r/priceglitch. Rebaja de Black Friday en r/ClubicFR |
| Reventa | Anuncios de venta particular | 6 | Un anuncio en árabe de una batería externa en 4 comunidades. Una venta de iPhone que incluye un cargador Anker |
Los 24 posts venían de 22 comunidades, y 5 eran copias publicadas en otras comunidades. Sin las copias quedan 19 posts distintos. Solo 6 títulos nombran Anker o una de sus marcas, como Soundcore, eufy, SOLIX o Nebula, y 4 títulos están en árabe. Un equipo de marca abriría las dudas de autenticidad e instalación del primer grupo y la queja de alimentación del visor del segundo. La primera puede apuntar a falsificaciones, y la segunda es un problema de compatibilidad concreto.
La clasificación se le puede dar a un agente. Lee el texto y aplica las reglas que escribes en AGENTS.md. La tabla de arriba es nuestra lectura durante la redacción, y la columna «Regla» recoge las reglas. Cuando la tome un agente, pruébalo primero con estos 24 posts y cuenta en cuántos difiere de la tabla. Después déjalo correr cada día. Revisa antes los posts en árabe, filipino y alemán, porque el agente tiene que entenderlos para clasificarlos. Un informe diario puede quedar así: 2 o 3 posts nuevos de Reddit para leer, cada reseña nueva de una o dos estrellas, solo las noticias sobre la empresa, la seguridad, los pleitos y las retiradas, y las ofertas en una línea.
Programarlo con Triggers: cron, zona horaria y entorno persistente
Un Trigger une un agente, un entorno, un prompt y un horario en un recurso persistente que se dispara con cron. Cada ejecución reutiliza el mismo entorno, así que la siguiente ronda puede leer los archivos de la anterior. Para crearlo hacen falta schedule (una expresión cron), time_zone (un nombre de zona horaria IANA) e interaction. Hay dos campos opcionales. max_consecutive_failures pausa el Trigger tras varios fallos seguidos, con 5 por defecto. execution_timeout_seconds limita cada ejecución, con 600 segundos por defecto.
Después puedes pausarlo, reanudarlo, ejecutarlo al momento o listar sus ejecuciones. Cada registro trae un interaction_id y un environment_id (Agente Antigravity: Triggers). Las zonas horarias usan nombres IANA como Europe/Madrid, America/Mexico_City o America/Argentina/Buenos_Aires. Los nombres vienen de la base de datos de zonas horarias que mantiene IANA (Base de datos de zonas horarias de IANA).
| Campo del Trigger | Obligatorio | Por defecto | Nuestro valor | Por qué |
|---|---|---|---|---|
schedule | Sí | ninguno | 0 1,9,17 * * * | Reddit cubre de 8 a 10 horas por llamada |
time_zone | Sí | ninguno | Europe/Madrid | El informe llega por la mañana del equipo |
interaction | Sí | ninguno | Agente con nombre, prompt, herramientas, entorno | Una sola configuración guardada para cada ronda |
max_consecutive_failures | No | 5 | 3 | Pausar antes si falla una clave o una fuente |
execution_timeout_seconds | No | 600 | 900 | Trustpilot tardó de 41 a 48 segundos por llamada |
Con la cobertura medida, Reddit necesita 3 ejecuciones al día, así que el horario se dispara cada 8 horas. Este es un ejemplo de configuración que no ejecutamos en Gemini:
# Ejemplo de configuración: no ejecutado en Gemini. Campos según la documentación de Triggers leída el 2026-11-14
trigger = client.triggers.create(
schedule="0 1,9,17 * * *", # cada día a las 01:00, 09:00 y 17:00
time_zone="Europe/Madrid", # en México: "America/Mexico_City"
display_name="anker-monitor-marca",
max_consecutive_failures=3,
execution_timeout_seconds=900, # Trustpilot tarda más de 40 s por llamada; deja margen
interaction={
"agent": "monitor-marca", # agente con nombre guardado con agents.create; modelo fijo al crearlo
"input": "Haz una ronda según AGENTS.md. Consulta Reddit en cada ronda. Consulta Trustpilot y noticias solo a las 09:00. "
"Informa solo de lo que no está en seen_ids.json. Escribe el archivo del día en briefings/ y actualiza seen_ids.json. "
"Si una fuente no trae datos, escribe 'no se obtuvo en esta ronda'. No escribas 'sin elementos negativos'.",
"tools": [{"type": "mcp_server", "name": "everyinfra", "url": "https://api.everyinfra.com/mcp",
"credential": "everyinfra-key", "allowed_tools": ["everyinfra_call_api"]}],
"environment": {"type": "remote", "network": {"allowlist": [{"domain": "api.everyinfra.com"}]}},
},
)
print(trigger.id, trigger.next_run_time)El entorno persistente tiene dos plazos. Tras 15 minutos sin uso, guarda una instantánea y se detiene. La siguiente petición lo restaura, con un arranque en frío. Un entorno sin conexión dura 7 días. Si nadie lo usa en ese plazo, la plataforma lo borra, y un id de entorno caducado devuelve 404 (Entornos: ciclo de vida, Entornos: limitaciones).
| Límite del entorno | Valor | Qué significa para el monitor |
|---|---|---|
| Inactividad antes de la instantánea | 15 minutos | Cada ronda empieza con un arranque en frío |
| Conservación sin conexión | 7 días | Un Trigger en pausa puede perder seen_ids.json tras una semana |
| Tamaño de archivos en línea | 1 MB por archivo, 2 MB en total | Envía en línea el prompt y el script. Deja los datos en el sandbox |
| Id de entorno caducado | Devuelve 404 | Crea un entorno nuevo y recarga el historial que descargaste |
Un Trigger diario nunca llega a los 7 días. Pero si pausas el Trigger durante dos semanas de vacaciones, al volver pueden faltar seen_ids.json y los informes viejos. La primera ronda trataría como nuevo todo el contenido reciente. Descarga de vez en cuando el historial importante. La documentación ofrece endpoints para listar archivos, bajar uno y bajar una carpeta comprimida (Entornos: gestionar archivos).
seen_ids.json no deja de crecer. Con los números de la primera ronda, Reddit suma unos 24 ids por ronda y 3 rondas al día. Con Trustpilot y noticias, son como mucho unos 100 ids nuevos al día, más de 30.000 al año. En JSON, eso son unos cientos de KB. La documentación solo da límites para archivos que envías tú: 1 MB por archivo en línea y 2 MB en total (Entornos: limitaciones). No da un límite para los archivos que escribe el agente. Archiva la lista cada mes y conserva solo 90 días de ids.
gemini managed agents pricing: cuánto cuesta una ronda diaria
El costo tiene tres partes: los datos de EveryInfra, el modelo de Gemini y las herramientas y el sandbox de Gemini. Los datos son lo más fácil. Leímos el catálogo a las 00:17 del 14 de noviembre de 2026, hora de Singapur. reddit/search cuesta 0,000792 USD por llamada, trustpilot/reviews 0,001389 USD y google_news/search 0,000792 USD. Cada charged_usd de nuestras llamadas reales coincidió con el catálogo. Las llamadas que devuelven un error o un resultado vacío no cuestan nada.
| Plan | Llamadas por día | Datos por día | Datos cada 30 días |
|---|---|---|---|
| Cada fuente una vez | Reddit 1, Trustpilot 1, noticias 1 | 0,002973 USD | 0,089 USD |
| Nuestra recomendación | Reddit 3, Trustpilot 1, noticias 1 | 0,004557 USD | 0,137 USD |
| Cada fuente en cada ronda | Reddit 3, Trustpilot 3, noticias 3 | 0,008919 USD | 0,268 USD |
| 10 marcas, nuestra recomendación | Lo mismo por marca | 0,04557 USD | 1,367 USD |
Del lado de Gemini, la sección «Pricing for agents» de la página de precios es clara. Los agentes gestionados pagan los tokens al precio estándar del modelo que usan, incluidos los de entrada, salida y razonamiento dentro del bucle del agente. Durante la vista previa, el cómputo del entorno es gratis, incluidos CPU, memoria y ejecución en el sandbox (Precios: Pricing for agents). El resumen de agentes añade que una interacción puede lanzar muchos pasos de razonamiento y suele usar de 100.000 a 3.000.000 de tokens (Resumen de agentes: precios).
La página del agente Antigravity da estimaciones por tipo de tarea. Una tarea de investigación y resumen cuesta de 0,30 a 1,00 USD, con 100.000 a 500.000 tokens de entrada y 10.000 a 40.000 de salida. Una de procesamiento y análisis de datos cuesta de 0,70 a 3,25 USD. Normalmente, entre el 50 % y el 70 % de la entrada sale de la caché (Agente Antigravity: costo estimado).
Esos rangos van por tipo de tarea, así que calculamos un mínimo con los bytes medidos. Suponemos cuatro pasos por ronda: planear y llamar a Reddit, llamar a Trustpilot, llamar a noticias y escribir el informe. Cada respuesta se vuelve a leer en los pasos siguientes, y las definiciones de herramientas van en cada paso. Usamos 4 caracteres por token y los precios de la página de precios del 14 de noviembre de 2026 (Precios: Gemini 3.5 Flash-Lite). No incluimos el prompt de sistema del agente, AGENTS.md ni los tokens de razonamiento, así que la factura real solo puede ser mayor:
| Modelo | Definiciones | Caché | Tokens de entrada | Modelo por ronda (2000 a 10.000 tokens de salida) | Veces el costo de datos |
|---|---|---|---|---|---|
| Gemini 4 Hydrogen (por defecto) | Las 12 | Sin caché | 55.399 | 0,098 a 0,158 USD | 33 a 53 |
| Gemini 4 Hydrogen | Solo 1 | Relecturas a precio de caché | 40.844 | 0,041 a 0,101 USD | 14 a 34 |
| Gemini 3.8 Flash | Solo 1 | Relecturas a precio de caché | 40.844 | 0,021 a 0,051 USD | 7 a 17 |
| Gemini 3.5 Flash-Lite | Solo 1 | Relecturas a precio de caché | 40.844 | 0,011 a 0,031 USD | 3,5 a 10 |
Aquí los datos son la parte pequeña del costo. Incluso el modelo más barato, Flash-Lite, cuesta al menos 3,5 veces los datos. Hydrogen por defecto, sin cambios, cuesta de 33 a 53 veces. Por eso el ahorro empieza en el modelo. Fija agent_config.model, deja solo las herramientas necesarias, pon max_total_tokens y di en el prompt cuándo parar. La sección de Hydrogen también lista los niveles Batch y Flex a mitad de precio (Precios: Gemini 4 Hydrogen). La documentación no dice si los agentes gestionados pueden usarlos, así que no entran en la tabla.
La búsqueda de Google integrada tiene su propio precio. Los modelos Gemini 3 y posteriores tienen 5000 búsquedas gratis al mes y luego 14 USD por cada 1000. Cada proyecto tiene un límite por defecto de 1500 búsquedas al día (Precios: herramientas). El agente Antigravity incluye google_search por defecto. Si no quieres que tu monitor busque en la web por su cuenta, lista solo code_execution y mcp_server, como en los ejemplos. Así la búsqueda queda apagada.
Los proyectos del nivel gratuito también pueden usar el agente Antigravity, con límites gratuitos de frecuencia y uso (Agente Antigravity: disponibilidad y precios). Ajusta el prompt en el nivel gratuito y pasa después a un proyecto de pago. Para un equipo que vigila España y México a la vez, añade 2 llamadas diarias de noticias en español. Eso suma 0,001584 USD al día y 0,048 USD cada 30 días, otra vez muy por debajo del costo del modelo.
Dos formas de conectar: resultados en el contexto o en archivos del sandbox
Casi todos los tokens de entrada de la tabla son las tres respuestas completas. La de Reddit ocupa 41.605 bytes, unos 10.401 tokens, dos tercios del total. Cuando el agente llama a una herramienta por mcp_server, la respuesta entera entra en el contexto del modelo. El modelo no puede leer solo unos pocos campos.
Un agente gestionado tiene una segunda opción. El sandbox ejecuta código, y la lista de dominios permitidos del entorno puede asociar una credential a un dominio. Entonces el proxy de salida añade la cabecera de autenticación en cada petición a ese dominio (Entornos: configuración de red). Así, el agente puede correr en el sandbox un script que llama directamente al endpoint REST POST /api/v1/social de EveryInfra. El script guarda la respuesta completa en un archivo y quita lo que ya vio. Después recorta campos y muestra solo lo nuevo, con los campos que necesitas.
| Vía A: herramienta mcp_server | Vía B: script del sandbox que llama a REST | |
|---|---|---|
| Configuración | Una entrada mcp_server en tools, con credential | Una credential asociada a api.everyinfra.com en network.allowlist, y un script junto a AGENTS.md |
| Qué lee el modelo | Las respuestas completas (62.132 bytes las tres en la ronda 1) | Lo nuevo que imprime el script (13.742 bytes en la ronda 1, 1162 en la ronda 3) |
| Dónde se deduplica | El modelo compara después de leer, o vuelve a ejecutar código | El script compara ids, y el modelo nunca ve lo viejo |
| Mejor para | Primeras pruebas, preguntas sueltas, parámetros que cambian | Rondas diarias fijas, fuentes fijas, mucho volumen |
| Cuidado con | Respuestas grandes cuestan más. El significado de los campos sale de las descripciones | El agente debe entender los errores del script. La clave sale solo de la credencial |
Calculamos los bytes con un script sobre las respuestas reales. En la ronda 1, las tres respuestas completas sumaron 62.132 bytes. Dejamos 7 campos de Reddit, 7 de Trustpilot y 4 de noticias, y cortamos los títulos en 160 caracteres. Lo nuevo ocupó entonces 13.742 bytes, el 22,1 % del tamaño completo. La ronda 2 tuvo 19 elementos nuevos por el cambio de ventana de noticias, con 5237 bytes recortados.
La ronda 3 mantuvo los parámetros. Solo tuvo 4 elementos nuevos, que recortados ocuparon 1162 bytes. Las respuestas completas seguían en 63.628 bytes, 55 veces más. Con la vía A pagas cada ronda por lo viejo, y con la vía B solo por lo nuevo. Al precio de entrada de Gemini 3.5 Flash-Lite, leer una vez los 3436 tokens recortados de la ronda 1 cuesta 0,00103 USD. Leer una vez las respuestas completas por la vía A cuesta 0,00466 USD, así que la vía B ahorra unas tres cuartas partes, sin contar las relecturas de los pasos siguientes.
Este es el esqueleto del script de la vía B. Probamos en real el formato de petición de EveryInfra, y charged_usd viene en el objeto billing de cada respuesta. No ejecutamos el script dentro de un sandbox de Gemini, así que esa parte es un ejemplo de configuración. Para España, la tercera tarea añade country y language:
# fetch_new.py: en .agents/skills/brand-monitor/ para que lo llame el agente (ejecución en el sandbox: ejemplo de configuración)
# Sin clave aquí: network.allowlist asocia una credencial a api.everyinfra.com y el proxy de salida añade la cabecera
import json, pathlib, urllib.request
SEEN = pathlib.Path(".agents/workspace/seen_ids.json")
seen = set(json.loads(SEEN.read_text())) if SEEN.exists() else set()
JOBS = [
("reddit", "search", {"keyword": "Anker", "sort": "newest"}, ["id", "url", "title", "community", "posted_at"]),
("trustpilot", "reviews", {"company": "anker.com", "date": "last7days", "sort": "newest", "limit": 20}, ["id", "url", "title", "rating", "posted_at"]),
("google_news", "search", {"keyword": "Anker", "country": "es", "language": "es", "time_window": "day"}, ["url", "title", "source", "published_at"]),
]
fresh, spent = [], 0.0
for platform, action, params, keep in JOBS:
body = json.dumps({"platform": platform, "action": action, "params": params}).encode()
req = urllib.request.Request("https://api.everyinfra.com/api/v1/social", data=body,
headers={"Content-Type": "application/json"}, method="POST")
data = json.loads(urllib.request.urlopen(req, timeout=120).read())
spent += (data.get("billing") or {}).get("charged_usd", 0)
for row in data.get("results") or []:
if "punto Anker" in (row.get("title") or ""):
continue # término económico argentino, no la marca
key = f"{platform}:{row.get('id') or row.get('url')}"
if key not in seen:
seen.add(key)
fresh.append({"src": platform, **{k: row.get(k) for k in keep}})
SEEN.write_text(json.dumps(sorted(seen)))
print(json.dumps({"new": fresh, "charged_usd": round(spent, 6)}, ensure_ascii=False))También llamamos una vez al endpoint REST de la vía B. A las 00:51:32 enviamos los mismos parámetros que la llamada MCP de noticias de 20 segundos antes: Anker, en inglés, con ventana de un día. REST devolvió 20 artículos, 19 con la misma URL que la llamada MCP y 1 distinto, con el orden algo cambiado. El cobro fue el mismo, 0,000792 USD, y tardó 2,94 segundos. REST devuelve JSON plano de 9156 bytes. MCP mete los mismos resultados en un campo de texto de un mensaje JSON-RPC, que con la capa externa y el escape llega a 10.256 bytes, un 12 % más.
Esa pequeña diferencia no explica el ahorro de la vía B. El ahorro viene de que el script quita lo viejo y los campos que sobran antes de que el modelo vea nada. El costo de datos es igual en las dos vías. Elige entre una configuración más simple y menos tokens por ronda.
Nuestros otros artículos sobre agentes alojados
Escribimos tres artículos sobre temas cercanos, cada uno en otra plataforma. Para una revisión nocturna de reseñas con Claude, lee Claude Managed Agents: revisión nocturna de reseñas. Para MCP en la plataforma empresarial de Google Cloud, lee Gemini Enterprise Agent Platform con MCP. Para las apps conectadas de la app de Gemini, lee Gemini Connected Apps y herramientas de datos.
Este artículo usa la Gemini Developer API de ai.google.dev, donde basta una clave de API para empezar. Google dice que los agentes gestionados para empresas también están en vista previa en Agent Platform, que usa un proyecto de Google Cloud y su propia página de precios (Managed Agents API en Agent Platform).
Otro campo: equipos de seguridad de producto que siguen modelos retirados
Con otro prompt, el mismo agente sirve a un equipo de seguridad de producto, a un laboratorio de ensayos o a una asociación de consumidores. Sigamos con Anker. El 12 de junio de 2025, la Comisión de Seguridad de Productos de Consumo de EE. UU. anunció la retirada de más de un millón de baterías PowerCore 10000, modelo A1263. Las celdas podían sobrecalentarse, y el remedio era un cambio (Aviso de retirada de la CPSC, 2025-06-12). El 18 de septiembre del mismo año, otra retirada ofreció reembolso (Aviso de retirada de la CPSC, 2025-09-18).
Para España y América Latina importa más la retirada global. Anker tiene una página con todas sus retiradas (Retiradas de productos de Anker). Su retirada voluntaria global de junio de 2025 cita cinco modelos más: A1647, A1652, A1257, A1681 y A1689. Hay que revisar el número de serie para saber si una unidad está incluida (Retirada voluntaria global de Anker). Después de un aviso así, el personal de seguridad se pregunta dos cosas. ¿Alguien sigue revendiendo los modelos retirados? ¿Hay posts nuevos que hablen de sobrecalentamiento o fuego?
Basta cambiar tres cosas. Cambia la palabra clave de la marca a los números de modelo retirados, como A1263 y A1257. Ejecuta Reddit cada día con sort=newest. Pide a Trustpilot solo notas bajas con stars=["1","2"]. Y cambia las reglas del informe a «lista aparte cada post que hable de reventa, sobrecalentamiento, hinchazón, fuego o quemaduras». Para el público hispanohablante, añade las palabras en español a las reglas: «se calienta», «se infló», «olor a quemado».
Los datos de la primera ronda ya traían dos ejemplos. Primero, los 6 anuncios de reventa. El anuncio en árabe vendía una batería Anker de 20.000 mAh sin número de modelo, así que no sabemos si es un modelo retirado. Una persona debe seguir este tipo de anuncio. Segundo, una reseña de cinco estrellas en Trustpilot del 2026-11-08. Su primera frase nombra «Anker Zolo Power Bank (20K, 30W, Built-In USB-C Cable)», el mismo nombre de producto que el A1689 de la lista de retirada.
La reseña elogia el producto y no significa que esa unidad esté incluida. Para un equipo de seguridad sigue siendo una pista de «el nombre coincide, revisa el número de serie». El agente solo encuentra, deduplica y ordena publicaciones públicas que pueden importar. Si un producto está incluido en una retirada lo deciden el aviso de la CPSC y la página de verificación del fabricante. Esa decisión no se le da a un modelo.
Cambios del sector: los últimos 60 días en agentes alojados
| Fecha | Cambio | Qué significa para ti | Fuente |
|---|---|---|---|
| 2026-10-30 | Computer Use disponible de forma general | Todavía sin uso para agentes gestionados. Las limitaciones del agente Antigravity dicen que computer_use no está soportado | Notas de la versión, limitaciones |
| 2026-11-10 | El blog de MCP publica un borrador de extensión para subir y bajar archivos, para el protocolo 2026-07-28 | Puede llegar una forma estándar de llevar un CSV grande al sandbox. Aún es experimental | Blog de MCP, 2026-11-10 |
| 2026-11-11 | Gemini Decision 1 y la Decisions API para decisiones binarias, de varias clases y de puntuación, sin tokens de salida | Clasificar posts podría pasar a ese servicio, y el agente seguiría con el horario y el informe | Notas de la versión |
El protocolo MCP también cambia. La especificación 2026-07-28 se publicó el 28 de julio de 2026. El blog oficial la califica como la mayor revisión desde el lanzamiento, con un núcleo de protocolo sin estado y enrutado por cabecera (Blog de MCP: la especificación 2026-07-28, Especificación MCP: Transports, 2026-07-28). A las 00:35, nuestro initialize ofreció 2026-07-28 y EveryInfra respondió con 2025-11-25. Según la negociación de versiones de MCP, el cliente puede seguir con esa versión. La documentación de Gemini no dice qué versión ofrece mcp_server, y desde fuera no se ve.
Límites y puntos a vigilar
Primero, la vista previa. El resumen de agentes, la página del agente Antigravity y la de agentes propios dicen vista previa. Las funciones y los formatos pueden cambiar. Los agentes con nombre no tienen versiones ni vuelta atrás, y un agente no puede contener subagentes (Agentes propios: limitaciones). Después de editar AGENTS.md, la siguiente llamada usa la configuración nueva. Guarda los archivos fuente en Git.
Segundo, la salida estructurada. El agente Antigravity no la admite, y ajustes como temperature o max_output_tokens devuelven un error 400 (Agente Antigravity: limitaciones). Si otro sistema debe leer el informe, haz que el agente escriba un archivo JSON en el sandbox. Luego descárgalo con los endpoints de archivos.
Tercero, las llamadas a funciones solo funcionan en modo con estado, con previous_interaction_id para continuar el turno anterior. Nuestro diseño usa MCP y ejecución de código, no funciones propias. Si quieres una función propia para enviar a Slack, sigue ese límite.
Cuarto, los límites del lado de datos. reddit/search cubre el último mes, así que una marca muy comentada como Anker necesita 3 rondas al día. google_news/search devuelve hasta 20 artículos por llamada, en España igual que en México, así que usa ventanas cortas. trustpilot/reviews pide el dominio web, no el nombre de la empresa, así que Anker es anker.com. Las tres leen solo contenido público. Quita los nombres de usuario personales del informe. Los nombres de marcas y medios se pueden dejar.
Quinto, margen de tiempo. trustpilot/reviews tardó más de 40 segundos cada vez, así que tres llamadas en serie suman cerca de un minuto. Si un Trigger vigila una docena de marcas, reparte las marcas en varios Triggers o sube execution_timeout_seconds. Cuando una llamada devuelve un error, este vuelve al modelo como resultado de herramienta con retry_after. No cuesta nada, y el agente puede repetir la llamada.
Sexto, los reintentos. Si un Trigger agota su tiempo o el agente reintenta, la misma llamada puede salir dos veces. Para las tareas programadas y las llamadas que pueden repetirse, usa el endpoint REST de la vía B con la cabecera Idempotency-Key. Si un paso posterior envía alertas o abre tickets, hazlo idempotente con la misma clave. El método está en reintentos de agentes de IA e Idempotency-Key.
| Límite | De dónde sale | Qué hacer |
|---|---|---|
| Vista previa, sin versiones ni vuelta atrás | Página de agentes propios de Gemini | Guarda AGENTS.md y los scripts en Git |
| Sin salida estructurada, los ajustes de generación dan 400 | Limitaciones del agente Antigravity | Escribe un archivo JSON en el sandbox |
| Llamadas a funciones solo con estado | Limitaciones del agente Antigravity | Usa MCP y código, o encadena con previous_interaction_id |
| 20 noticias por llamada | Catálogo de EveryInfra | Reddit 3 veces al día, noticias con ventana de un día |
| Falsos positivos como «punto Anker» | Nuestras llamadas en español | Regla de descarte en AGENTS.md o en el script |
| Trustpilot tarda más de 40 segundos por llamada | Llamadas reales | Reparte marcas en varios Triggers o sube el tiempo límite |
Preguntas frecuentes
Tomamos las preguntas de las sugerencias de búsqueda de Google que leímos el 14 de noviembre de 2026. En español solo apareció «agentes gemini», así que la mayoría vienen de sugerencias en inglés. Cada respuesta indica de qué sugerencia sale.
¿Qué son los agentes de Gemini?
(Sugerencia en español: agentes gemini.) En la Gemini API, son agentes alojados por Google: una llamada arranca un agente en un sandbox Linux que razona, ejecuta código, maneja archivos y usa la web. Gemini Managed Agents es la función de la API, y el agente Antigravity es el agente general que la usa (Resumen de agentes). En este artículo, un agente así despierta tres veces al día, lee Reddit, Trustpilot y Google Noticias por el servidor MCP remoto de EveryInfra y escribe un informe de marca.
¿Cuánto cuesta Gemini Managed Agents?
(Sugerencia: gemini managed agents pricing.) Pagas los tokens al precio estándar del modelo, incluidos los de entrada, salida y razonamiento del bucle del agente. Herramientas como la búsqueda de Google tienen su propio precio. Durante la vista previa, la CPU y la memoria del sandbox son gratis (Precios: Pricing for agents). El modelo por defecto, Gemini 4 Hydrogen, cuesta 1,50 USD por millón de tokens de entrada y 7,50 USD por millón de salida. En nuestra tarea estimamos de 0,011 a 0,158 USD por ronda en modelo. Los datos de EveryInfra para tres llamadas fueron 0,002973 USD por ronda.
¿Qué funciones tiene Gemini Managed Agents en la Gemini API?
(Sugerencia: gemini api managed agents features.) El agente trae code_execution, google_search y url_context, y con un environment también tiene herramientas de archivos. Puedes añadir funciones propias y servidores MCP remotos. Corre en segundo plano, transmite la salida y se programa con Triggers. También guarda secretos con Credentials y admite Hooks en el sandbox para interceptar código y archivos (Agente Antigravity: herramientas, Hooks). Hacia los 135.000 tokens de contexto, lo comprime solo, así que sirve para tareas largas (Agente Antigravity: capacidades).
¿Qué servidores MCP acepta Gemini Managed Agents?
(Sugerencia: gemini managed agents mcps.) Cualquier servidor MCP remoto con Streamable HTTP. SSE no, y name debe ir en minúsculas. La autenticación va en headers o en una credential que añade el proxy de salida. allowed_tools limita las herramientas. Probamos https://api.everyinfra.com/mcp con estas reglas: el saludo tardó 0,145 segundos y tools/list devolvió 12 herramientas.
¿Qué plantillas tiene Gemini Managed Agents?
(Sugerencia: google gemini gemini managed agents templates.) El repositorio oficial tiene plantillas de análisis de datos, radio con IA, mantenimiento de repositorios, procesamiento de documentos, selección de noticias y auditoría SEO, además de una de atención al cliente y una básica. La de noticias corre con un Trigger y usa un entorno persistente para no repetir, y de ella sale nuestra estructura (Repositorio de plantillas). En la pestaña Agents de AI Studio también puedes elegir una plantilla y probarla (Agentes en AI Studio).
¿Qué clave de API necesita el agente Antigravity?
(Sugerencia: antigravity agent api key.) Una clave normal de la Gemini API en la cabecera x-goog-api-key, contra generativelanguage.googleapis.com/v1beta/interactions. La pueden usar proyectos gratuitos y de pago, y el nivel gratuito tiene límites gratuitos (Agente Antigravity). La clave de EveryInfra es otra distinta. Guárdala en Credentials de Gemini y no la pongas en un prompt ni en AGENTS.md.
Primeros pasos
- Regístrate en EveryInfra y consigue una clave de API. Sigue la guía rápida para enviar una llamada
reddit/searchcon curl, y revisa la respuesta y el cobro. - Lee la página del servidor MCP remoto o la guía de conexión MCP remota. Conecta un cliente MCP local a
https://api.everyinfra.com/mcpy ejecutatools/listuna vez. - En Gemini, guarda la clave como credencial
bearer_token. Ejecuta a mano una rondainteractions.createcon el ejemplo de configuración de arriba. Revisausage.total_tokensyoutput_text. - Escribe las reglas en
AGENTS.md, incluida la regla de «punto Anker» si vigilas medios en español. Guarda un agente con nombre conagents.createy fija el modelo. Después crea el Trigger. - Consulta los precios de cada capacidad en la página de precios y en el mercado de datos. Para más plataformas en un mismo informe, mira el monitoreo de reputación en varias plataformas.
Referencias
- Notas de la versión de la Gemini API, 2026-05-19. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#05-19-2026
- Blog de Google: Build managed agents with the Gemini API. Google, leído el 14 nov 2026. https://blog.google/innovation-and-ai/technology/developers-tools/managed-agents-gemini-api
- Resumen de agentes: seguridad y buenas prácticas. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agents#security-best-practices
- Resumen de la Interactions API. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/interactions-overview
- Notas de la versión de la Gemini API, 2026-09-17. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#09-17-2026
- Commits del repositorio de plantillas. GitHub, google-gemini, leído el 14 nov 2026. https://github.com/google-gemini/gemini-managed-agents-templates/commits/main
- Notas de la versión de la Gemini API, 2026-10-27. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#10-27-2026
- Notas de la versión de la Gemini API, 2026-11-10. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#11-10-2026
- Precios: Gemini 4 Carbon. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/pricing#gemini-4-carbon
- Notas de la versión de la Gemini API, 2026-11-12. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#11-12-2026
- Agente Antigravity: elección de modelo. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#model-selection
- Agentes propios: limitaciones. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/custom-agents#limitations
- Aviso de retirada de la CPSC de EE. UU., 2025-06-12. U.S. CPSC, leído el 14 nov 2026. https://www.cpsc.gov/Recalls/2025/More-than-One-Million-Anker-Power-Banks-Recalled-Due-to-Fire-and-Burn-Hazards-Manufactured-by-Anker-Innovations
- Agente Antigravity: Triggers. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#triggers
- Plantilla News Curator. GitHub, google-gemini, leído el 14 nov 2026. https://github.com/google-gemini/gemini-managed-agents-templates/tree/main/news-curator
- Agente Antigravity: MCP servers. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#mcp-servers
- Agente Antigravity: limitaciones. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#limitations
- Credentials: uso con servidores MCP. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-credentials#mcp-servers
- Credentials: Bearer token. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-credentials#bearer-token
- Precios: Gemini 4 Hydrogen. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/pricing#gemini-4-hydrogen
- Guía de tokens. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/tokens
- Agente Antigravity: control de presupuesto. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#budget-controls
- Agentes en AI Studio: consumo de tokens. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/aistudio-agents#managing-token-consumption
- Resumen de agentes: acceso a la red. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agents#network-access
- Especificación MCP: Transports, 2025-06-18. Model Context Protocol, leído el 14 nov 2026. https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
- Infobae, 2026-11-12. www.infobae.com, leído el 14 nov 2026. https://www.infobae.com/economia/2026/11/12/licitacion-clave-el-equipo-economico-se-entusiasma-por-el-regreso-del-punto-anker-y-espera-un-repunte-del-credito/
- La Nación, 2025-04-28. www.lanacion.com.ar, leído el 14 nov 2026. https://www.lanacion.com.ar/economia/dolar/punto-anker-cual-es-la-explicacion-del-gobierno-para-su-esquema-con-los-dolares-y-los-pesos-nid28042025/
- Base de datos de zonas horarias de IANA. IANA, leído el 14 nov 2026. https://www.iana.org/time-zones
- Entornos: ciclo de vida. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-environment#environment-lifecycle
- Entornos: limitaciones. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-environment#limitations
- Entornos: gestionar archivos. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-environment#download-files-from-the-environment
- Precios: Pricing for agents. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/pricing#pricing-for-agents
- Resumen de agentes: precios. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agents#pricing
- Agente Antigravity: costo estimado. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#availability-and-pricing
- Precios: Gemini 3.5 Flash-Lite. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/pricing#gemini-3.5-flash-lite
- Precios: herramientas. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/pricing#pricing-for-tools
- Entornos: configuración de red. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-environment#network-configuration
- Managed Agents API en Agent Platform. Google Cloud, leído el 14 nov 2026. https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/managed-agents
- Aviso de retirada de la CPSC, 2025-09-18. U.S. CPSC, leído el 14 nov 2026. https://www.cpsc.gov/Recalls/2025/Anker-Power-Banks-Recalled-Due-to-Fire-and-Burn-Hazards-Manufactured-by-Anker-Innovations-1
- Retiradas de productos de Anker. Anker, leído el 14 nov 2026. https://www.anker.com/product-recalls
- Retirada voluntaria global de Anker. Anker, leído el 14 nov 2026. https://www.anker.com/rc2506
- Notas de la versión de la Gemini API, 2026-10-30. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#10-30-2026
- Blog de MCP, 2026-11-10. Model Context Protocol, leído el 14 nov 2026. https://blog.modelcontextprotocol.io/posts/exploring-file-uploads-and-downloads-in-mcp/
- Notas de la versión de la Gemini API, 2026-11-11. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/changelog#11-11-2026
- Blog de MCP: la especificación 2026-07-28. Model Context Protocol, leído el 14 nov 2026. https://blog.modelcontextprotocol.io/posts/2026-07-28/
- Especificación MCP: Transports, 2026-07-28. Model Context Protocol, leído el 14 nov 2026. https://modelcontextprotocol.io/specification/2026-07-28/basic/transports
- Agente Antigravity: herramientas. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#supported-tools
- Hooks. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/agent-hooks
- Agente Antigravity: capacidades. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent#capabilities
- Repositorio de plantillas. GitHub, google-gemini, leído el 14 nov 2026. https://github.com/google-gemini/gemini-managed-agents-templates
- Agentes en AI Studio. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/aistudio-agents
- Agente Antigravity. Google AI for Developers, leído el 14 nov 2026. https://ai.google.dev/gemini-api/docs/antigravity-agent
Referencia BL-143