Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Föregående sida visade hur ett kompetenspaket förvandlar återanvändbar domänexpertis — instruktioner, referensmaterial och skript — till självständiga enheter som alla agenter kan ladda på begäran. Men när du distribuerar agenter till produktion uppstår en ny kategori av problem: problem som skär över varje interaktion oavsett vad agenten gör.
Du måste logga varje begäran och svar. Du behöver skyddsräcken som blockerar skadligt innehåll innan modellen ser det. Du måste tillämpa hastighetsgränser, fånga undantag på ett korrekt sätt och mata in telemetri – allt utan att röra agentens kärnlogik. Kopiering av dessa problem till varje agent (eller varje verktyg eller varje färdighet) skalas inte och skapar underhållsmardrömmar.
Mellanprogram löser detta. Med mellanprogram kan du omsluta agentens körningspipeline med återanvändbara beteenden som fångar upp, inspekterar och ändrar begäranden och svar på väldefinierade platser. Tänk på mellanprogram som en serie koncentriska lager runt agenten – varje lager får en chans att agera på indata innan det når agenten och på utdata innan det når anroparen.
När du ska använda detta
Lägg till mellanprogram i din agent när:
- Du behöver skyddsräcken för att blockera skadligt, irrelevant eller riktlinjebrytande innehåll före eller efter att modellen bearbetar det.
- Du vill ha centraliserad loggning eller telemetri för alla agentinteraktioner utan att ändra varje agent individuellt.
- Du måste ändra begäranden eller svar – utöka frågor, transformera utdata eller ersätta resultat helt – utan att ändra agentlogiken.
- Du vill framtvinga principer som hastighetsbegränsning, innehållsfiltrering eller autentiseringskontroller som gäller för varje körning.
- Du måste hantera undantag konsekvent – försök igen vid tillfälliga fel, returnera smidiga återställningssvar eller logga fel för diagnostik.
- Du vill dela tillstånd över pipelinen , till exempel att spåra tidsinställningar för begäranden eller ackumulera mått som flera mellanprogramskomponenter behöver.
Tips/Råd
Agent Framework innehåller inbyggda instrumentation för spårning och mått. Mer information finns i Observerbarhet .
Så här fungerar pipelinen för mellanprogram
När du kallar på agentens run-metod går begäran inte direkt till modellen. I stället flödar den genom en pipeline med mellanprogramslager, som var och en kan inspektera eller ändra begäran, delegera till nästa lager och sedan inspektera eller ändra svaret på vägen tillbaka.
┌─────────────────────────────────────────────────────────┐
│ Caller: agent.run("What's the weather?") │
└──────────────┬──────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Middleware 1 (Logging) │
│ • Logs the incoming request │
│ • Calls next middleware │
│ • Logs the outgoing response │
└──────────────┬──────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Middleware 2 (Guardrails) │
│ • Checks input against content policy │
│ • If blocked → returns early with rejection message │
│ • If allowed → calls next middleware │
│ • Checks output against content policy │
└──────────────┬──────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Agent core (model invocation, tool calls, etc.) │
└─────────────────────────────────────────────────────────┘
Viktiga punkter:
- Varje mellanprogram bestämmer om du vill fortsätta. Ett mellanprogram kan anropa nästa lager i kedjan för att fortsätta normalt, eller så kan det kortsluta pipelinen genom att returnera ett svar direkt , till exempel när ett skyddsräcke blockerar en begäran.
- Mellanprogram ser båda riktningarna. Ett mellanprogram kör kod innan delegering (för att inspektera eller ändra indata) och när svaret kommer tillbaka (för att inspektera eller ändra utdata). Detta är det klassiska "lök"-mönstret.
- Flera mellanprogram kedjas samman. När du registrerar flera mellanprogramskomponenter kapslas de: det första registrerade mellanprogrammet är det yttersta lagret och det senast registrerade är det innersta lagret som är närmast agenten.
Tips/Råd
En detaljerad vy över hur mellanprogram passar in i den fullständiga agentkörningspipelinen – inklusive kontextprovidrar och chattklientlager – finns i Arkitektur för agentpipeline.
Vad mellanprogram kan göra
Agent Framework har stöd för mellanprogram i tre lager av pipelinen – agentkörning, funktionsanrop och chattklient – vilket ger dig detaljerad kontroll över var du avlyssnar körningen. Vanliga mönster är:
| Mönster | Exempel | Referens |
|---|---|---|
| Skyddsräcken och avslutning | Blockera skadligt innehåll, begränsa konversationslängden | Avslutning och skyddsräcken |
| Hantering av undantag | Försök igen vid tillfälliga fel, returnera återställningssvar | undantagshantering |
| Resultatöverskrivningar | Redigera känsliga data, utöka eller ersätta agentutdata | Åsidosättning av resultat |
| Gemensamt tillstånd | Skicka begärande-ID:t eller tidsdata mellan mellanprogram | Delat tillstånd |
| Körningskontext | Variera beteende baserat på session, användare eller konfiguration per körning | Körningskontext |
| Omfång | Tillämpa mellanprogram på alla körningar eller bara en enda körning | Agent kontra körningsområde |
En fullständig genomgång av hur du definierar och registrerar mellanprogram finns i Definiera mellanprogram. Fullständig arkitekturöversikt finns i Översikt över mellanprogram.
Överväganden
| Att tänka på | Detaljer |
|---|---|
| Separering av ansvar | Mellanprogram håller övergripande logik borta från din agentkod, dina verktyg och dina kunskaper. Varje mellanprogramskomponent har ett enda ansvar – loggning, skyddsräcken, felhantering – som du kan lägga till, ta bort eller ordna om oberoende av varandra. |
| Orderberoende | Mellanprogram bildar en kedja. Den ordning du registrerar mellanprogram spelar roll: ett loggningsmellanprogram som körs först ser råindata, medan en som körs sist ser indata som redan har ändrats av tidigare mellanprogram. Planera pipelinebeställningen medvetet. |
| Felsökning av komplexitet | När mellanprogram ändrar indata eller utdata kräver felsökning att du förstår hela pipelinen. Ett svar kan se fel ut, inte på grund av agenten utan på grund av att ett mellanprogram omvandlade det. Bra loggning mellanprogram (placeras tidigt i kedjan) hjälper till att diagnostisera dessa fall. |
| Prestandaomkostnader | Varje mellanprogramlager lägger till bearbetningstid för varje begäran. För enklare åtgärder som loggning är detta försumbart. För dyra åtgärder som att anropa ett externt API för innehållsmoderering ökar svarstiden – särskilt när flera sådana mellanprogram är länkade. |
Nästa steg
Nu när din agent har verktyg, färdigheter och mellanprogram är nästa steg kontextproviders – komponenter som matar in minne, användarprofiler och dynamisk kunskap i agentens kontextfönster innan varje körning.
Gå djupare:
- Översikt över mellanprogram – fullständig referens för alla mellanprogramstyper
- Arkitektur för agentpipeline – hur mellanliggande programvara passar in i exekveringspipelinen