Google a ajouté une couche middleware à Genkit cette semaine — trois hook points programmables (generation calls, model calls, tool execution) où des préoccupations cross-cutting se branchent dans la loop d'agent sans toucher à la logique applicative. La forme semblera familière à qui a écrit du middleware Express ou Connect : les composants stack dans un ordre d'exécution défini, chacun voit la requête, peut la muter ou la court-circuiter, puis passe le contrôle dans la chaîne. Du middleware prebuilt ship dans le release : retry handling avec exponential backoff, fallbacks modèle automatiques, approval gates pour tool calls sensibles, contrôles d'accès filesystem, et un système "skills" pour injection d'instructions dynamiques. Genkit lui-même supporte TypeScript, Go et Dart, avec Python à venir.

Le modèle d'interception compte parce qu'il standardise quelque chose que la plupart des shops d'agent bricolaient à la main. Le modèle génère de l'output, exécute des tools, traite les résultats, continue jusqu'à completion — c'est la loop, et le middleware peut hook à chaque stage. Retry-with-backoff à la couche model-call signifie que les failures API transitoires ne font pas blow up le run d'agent. Fallback modèle veut dire que primary-API rate-limit hit un modèle backup dégradé-mais-fonctionnel sans glue d'orchestration. Approval gates à la couche tool-execution veut dire qu'un humain est paged avant que l'agent appelle `delete_database` ou transfère des fonds — le genre de primitif safety que les builders écrivaient dans des dispatchers custom ad-hoc. Contrôles d'accès FS bornent le blast radius des tools qui touchent fichiers. Et le système skills te laisse injecter des instructions context-dépendantes par invocation sans rebuild le prompt template.

Lecture écosystème : c'est le côté application-layer de la stratégie agent de Google. Per l'ingénieur Google Michael Doyle dans le release : Genkit target "application-layer AI feature integration," tandis que l'Agent Development Kit (ADK) target "complex, standalone, multi-agent systems" sur infrastructure dédiée. Le split atterrit sur la question standard SDK-vs-plateforme — utilise Genkit quand tu ajoutes des features AI à l'intérieur d'une app existante, utilise ADK quand tu builds une plateforme d'agent. La composabilité middleware est exactement ce qui fait que Genkit fonctionne pour le premier cas : retries, fallbacks, approval gates et observability hooks sont les préoccupations cross-cutting qui hantent chaque agent en prod, et les pousser dans une couche hookable c'est le bon call architectural. Comparaison avec callbacks LangChain, hooks OpenAI Agents SDK et middleware Anthropic SDK est laissée en exercice — le piece InfoQ ne fait pas ces head-to-heads.

Lundi matin : si tu roules Genkit, évalue lesquels des composants middleware prebuilt tu écrivais toi-même. Approval gates pour tool calls sensibles en particulier — si ton agent a un tool qui pourrait coûter de l'argent réel, envoyer un message, ou modifier de l'état partagé, plug le gate. Le Developer UI trace l'exécution middleware et te laisse debug les interactions de stack, ce qui compte parce que les bugs d'ordre-d'exécution sont comment les stacks middleware cassent. Si t'es pas sur Genkit mais sur LangChain ou un harness custom, la taxonomie three-hook-point (generation / model / tool) est du vocabulaire de design portable — tes callbacks ou interceptors devraient hit ces trois layers explicitement, avec les approval gates à la couche tool étant le primitif le plus sous-évalué pour la safety production.