O Google adicionou uma camada middleware ao Genkit essa semana — três hook points programáveis (generation calls, model calls, tool execution) onde preocupações cross-cutting se plugam no loop do agente sem tocar lógica de aplicação. A forma vai parecer familiar pra quem já escreveu middleware Express ou Connect: componentes empilham em ordem de execução definida, cada um vê a request, pode mutá-la ou curto-circuitá-la, depois passa controle pela cadeia. Middleware prebuilt envia no release: retry handling com exponential backoff, fallbacks automáticos de modelo, approval gates pra tool calls sensíveis, controles de acesso filesystem, e um sistema "skills" pra injeção de instruções dinâmica. Genkit em si suporta TypeScript, Go e Dart, com Python em breve.

O modelo de interceptação importa porque padroniza algo que a maioria dos shops de agente montava na mão. O modelo gera output, executa tools, processa resultados, continua até completion — esse é o loop, e middleware pode hookear em cada stage. Retry-with-backoff na camada model-call significa que falhas transientes de API não explodem o run do agente. Fallback de modelo significa que primary-API rate-limit bate num modelo backup degradado-mas-funcional sem glue de orquestração. Approval gates na camada tool-execution significa que um humano é paged antes do agente chamar `delete_database` ou transferir fundos — o tipo de primitivo de safety que builders escreviam em dispatchers custom ad-hoc. Controles de acesso FS limitam o blast radius de tools que tocam arquivos. E o sistema skills te deixa injetar instruções dependentes de contexto por invocação sem reconstruir o template de prompt.

Leitura ecossistema: esse é o lado application-layer da estratégia de agentes do Google. Per o engenheiro do Google Michael Doyle no release: Genkit mira "application-layer AI feature integration," enquanto o Agent Development Kit (ADK) mira "complex, standalone, multi-agent systems" em infraestrutura dedicada. O split aterrissa na pergunta padrão SDK-vs-plataforma — usa Genkit quando você adiciona features AI dentro de um app existente, usa ADK quando você constrói uma plataforma de agentes. A composabilidade de middleware é exatamente o que faz Genkit funcionar pro primeiro caso: retries, fallbacks, approval gates e observability hooks são as preocupações cross-cutting que atormentam todo agente em prod, e empurrar elas pra uma camada hookável é a decisão arquitetural certa. Comparação com callbacks LangChain, hooks OpenAI Agents SDK e middleware Anthropic SDK fica como exercício — o piece da InfoQ não faz esses head-to-heads.

Segunda de manhã: se você roda Genkit, avalie quais dos componentes middleware prebuilt você estava escrevendo sozinho. Approval gates pra tool calls sensíveis em particular — se teu agente tem qualquer tool que poderia custar dinheiro real, mandar uma mensagem, ou modificar estado compartilhado, plugue o gate. O Developer UI traça execução de middleware e te deixa debugar interações de stack, o que importa porque bugs de ordem-de-execução são como stacks de middleware quebram. Se você não tá no Genkit mas no LangChain ou um harness custom, a taxonomia three-hook-point (generation / model / tool) é vocabulário de design portável — teus callbacks ou interceptors deveriam bater essas três camadas explicitamente, com approval gates na camada tool sendo o primitivo mais subestimado pra safety em produção.