Google añadió una capa middleware a Genkit esta semana — tres hook points programables (generation calls, model calls, tool execution) donde preocupaciones cross-cutting se enchufan en el loop del agente sin tocar lógica de aplicación. La forma se sentirá familiar a quien haya escrito middleware Express o Connect: los componentes se apilan en orden de ejecución definido, cada uno ve la request, puede mutarla o cortocircuitarla, luego pasa control por la cadena. Middleware prebuilt envía en el release: retry handling con exponential backoff, fallbacks automáticos de modelo, approval gates para tool calls sensibles, controles de acceso filesystem, y un sistema "skills" para inyección de instrucciones dinámica. Genkit en sí soporta TypeScript, Go y Dart, con Python pronto.

El modelo de interceptación importa porque estandariza algo que la mayoría de shops de agentes armaban a mano. El modelo genera output, ejecuta tools, procesa resultados, continúa hasta completion — ese es el loop, y middleware puede hookear en cada stage. Retry-with-backoff en la capa model-call significa que fallos transientes de API no hacen estallar el run del agente. Fallback de modelo significa que primary-API rate-limit hit un modelo backup degradado-pero-funcional sin glue de orquestación. Approval gates en la capa tool-execution significa que un humano es paged antes de que el agente llame `delete_database` o transfiera fondos — el tipo de primitivo de safety que los builders escribían en dispatchers custom ad-hoc. Controles de acceso FS limitan el blast radius de tools que tocan archivos. Y el sistema skills te deja inyectar instrucciones dependientes del contexto por invocación sin reconstruir el template de prompt.

Lectura ecosistema: este es el lado application-layer de la estrategia de agentes de Google. Per el ingeniero de Google Michael Doyle en el release: Genkit apunta a "application-layer AI feature integration," mientras que el Agent Development Kit (ADK) apunta a "complex, standalone, multi-agent systems" en infraestructura dedicada. El split aterriza en la pregunta estándar SDK-vs-plataforma — usa Genkit cuando agregas features AI dentro de una app existente, usa ADK cuando construyes una plataforma de agentes. La composabilidad de middleware es exactamente lo que hace que Genkit funcione para el primer caso: retries, fallbacks, approval gates y observability hooks son las preocupaciones cross-cutting que atormentan a cada agente en prod, y empujarlas a una capa hookeable es la decisión arquitectónica correcta. Comparación con callbacks LangChain, hooks OpenAI Agents SDK y middleware Anthropic SDK queda como ejercicio — el piece de InfoQ no hace esos head-to-heads.

Lunes por la mañana: si corres Genkit, evalúa cuáles de los componentes middleware prebuilt estabas escribiendo tú mismo. Approval gates para tool calls sensibles en particular — si tu agente tiene cualquier tool que podría costar dinero real, enviar un mensaje, o modificar estado compartido, enchufa el gate. El Developer UI traza ejecución de middleware y te deja debuggear interacciones de stack, lo que importa porque bugs de orden-de-ejecución son cómo los stacks de middleware se rompen. Si no estás en Genkit sino en LangChain o un harness custom, la taxonomía three-hook-point (generation / model / tool) es vocabulario de diseño portable — tus callbacks o interceptors deberían hit esas tres capas explícitamente, con approval gates en la capa tool siendo el primitivo más subestimado para safety en producción.