Dominant el Middleware de Genkit per a Aplicacions Agèntiques

Darrera actualització: 22 de juny de 2026
  • El middleware de Genkit permet interceptar i modificar el cicle de generació de IA mitjançant hooks de model, eines i flux general.
  • Inclou funcionalitats natives per a reintents automàtics, fallback entre models, control d'arxius i aprovació humana d'eines.
  • És compatible amb TypeScript, Go i Dart, facilitant la creació de capes de seguretat i observabilitat sense alterar la lògica de negoci.

Genkit Middleware

Si et dediques a muntar aplicacions amb intel·ligència artificial, sabràs que no tot és escriure el prompt perfecte. Quan passes d'un prototip a una cosa que realment funciona en producció, et topes amb murs com els errors temporals de l'API, els límits de quota o la necessitat que un humà validi una acció crítica. Aquí és on entra en joc Genkit Middleware , una solució de Google dissenyada perquè els desenvolupadors puguin afegir capes de control sense haver de reescriure tot el codi dels seus agents.

Bàsicament, estem parlant dun sistema dinterceptors que es col·loca al voltant de les trucades de generació. En lloc d'embolicar cada funció generate() en un bloc de control manual, podeu definir una sèrie de passos que la petició ha de travessar. Això permet que l'arquitectura dels agents sigui molt més neta i modularseparant la lògica de l'aplicació de les preocupacions transversals com la seguretat, l'observabilitat i la resiliència del sistema.

Com funciona exactament el sistema dinterceptació?

Arquitectura de Middleware Genkit

Per entendre-ho bé, pensa en el cicle de vida d?una petició a Genkit. Normalment, el model genera una resposta, decideix si necessita fer servir una eina, executa aquesta eina i torna a processar el resultat. El middleware de Genkit no és un simple coll d'ampolla, sinó que ofereix tres punts d'ancoratge diferents per intervenir en aquest procés:

  • Hook de Generate: S'executa una sola vegada per cada cicle de generació. És el lloc ideal per injectar instruccions al sistema o modificar els missatges abans que comencin a volar.
  • Hook de Model: Embolica la trucada directa a l'API del model. És fonamental per gestionar reintents automàtics, implementar caixets o registrar quant de temps triga a respondre el LLM.
  • Hook de Tool: Actua just quan s'executarà una eina. És perfecte per crear sistemes d'aprovació on un humà ha de donar el vistiplau abans que l'agent esborri un fitxer o faci un pagament.
  Django a Python: Què és, per a què serveix i com aprofitar-ho al màxim

Aquesta estructura es comporta de forma similar als middlewares que veiem en frameworks com Express o Koa, funcionant com una mena de ceba: la petició entra per la capa exterior, arriba al centre (el model) i després torna a sortir travessant les capes en ordre invers. El millor és que pots apilar diversos middlewares en un matriu, definint així l'ordre exacte d'execució.

Catàleg de middlewares preinstal·lats

Funcions de Middleware Genkit

Perquè no hàgim de reinventar la roda, el paquet @genkit-ai/middleware ja ve amb diverses eines llestes per utilitzar. Una de les més útils és la de reintents (retry), que utilitza un algorisme d'entrada exponencial amb jitter. Això evita que saturem l'API quan hi ha errors transitoris com RESOURCE_EXHAUSTED o UNAVAILABLE, fent que l'aplicació sigui molt més robusta davant errors momentanis.

Si la quota del model principal s'esgota, el middleware de fallback entra al rescat. Permet configurar una llista de models alternatius perquè, si el primer falla, la petició passi automàticament a un de més petit o barat, evitant que l'usuari final vegi un error. És una estratègia vital per mantenir la continuïtat del servei en entorns d'alta demanda.

Pel que fa a la seguretat, comptem amb el middleware de aprovació d'eines (toolApproval). Aquest sistema crea una llista blanca de ferramentes segures; qualsevol acció que no estigui en aquesta llista llançarà un ToolInterruptError, obligant el sistema a pausar-se fins que algú confirmi lacció. A això se suma el middleware de sistema de fitxers, que concedeix al model accés a arxius locals però estrictament limitats a un directori arrel per evitar que la IA camini enfonsant on no deu.

  Microsoft Copilot: com es fa servir i tot el que pots fer amb ell

Gestió d'eines Genkit

Finalment, tenim la funcionalitat de habilitats. Aquest middleware escaneja carpetes a la recerca d'arxius SKILL.md i els injecta al prompt del sistema. És una forma molt elegant de gestionar el coneixement de lagent, permetent que carregueu habilitats específiques sota demanda sense omplir el prompt principal de text innecessari.

Creació de middleware personalitzat

Desenvolupament de Middleware personalitzat

Quan les opcions natives no són suficients, Genkit ens permet fabricar els nostres propis interceptors usant la funció generateMiddleware. Aquesta eina ens permet definir esquemes de configuració mitjançant Zod, assegurant que els paràmetres que passem siguin correctes i estiguin tipats. Podem crear des de simples loggers que registrin cada entrada i sortida, fins a sistemes complexos de redacció de dades sensibles (PII).

Un cas d'ús molt potent seria implementar un filtre de contingut . Podries crear un hook de model que analitzi la resposta i, si detecta paraules prohibides o dades internes de preus, bloquegeu la resposta o la netegeu abans que arribi a l'usuari. També és possible gestionar quotes per usuari consultant una base de dades al hook de generació abans de permetre que la trucada procedeixi.

Diferències entre implementacions i ecosistema

Suport Multiplataforma Genkit

Tot i que el concepte és universal, hi ha matisos segons el llenguatge. A TypeScript, el sistema és molt dinàmic i permet definir middlewares en arxius .prompt mitjançant el camp use. A Go, la implementació és més rígida pel fet que és un llenguatge compilat, cosa que ha requerit la creació d'un registre de middleware per convertir noms de text en objectes funcionals durant l'execució.

És important no confondre Genkit amb l'Agent Development Kit (ADK) de Google. Mentre que l'ADK està pensat per a sistemes multiagent complexos i pesats sobre infraestructura de GCP, Genkit és l'opció ideal per afegir capacitats agèntiques a aplicacions ja existents (web, mòbil, etc.). A més, tot el flux de middleware es pot monitoritzar des de la Genkit Developer UI , on podem traçar exactament què hook va modificar la petició i com ha estat el camí fins al resultat final.

  Com utilitzar switch a Python: Guia definitiva amb exemples i alternatives

L'arribada d'aquest sistema transforma la funció de generació en una veritable canonada compossible . En integrar la gestió derrors, la seguretat dels arxius i les validacions humanes en una capa separada, el desenvolupament dagents es torna un procés molt més professional i menys propens a errors catastròfics en producció.