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 mellanprogram omsluter agentens körningspipeline med övergripande problem – loggning, skyddsräcken, felhantering – utan att röra agentens kärnlogik. Men mellanprogram handlar om hur agenten körs, inte vad agenten vet. Hittills kommer agentens kunskaper från två platser: dess träningsdata och vad användaren än säger i den aktuella turordningen.
Det är ett problem. En användbar agent behöver mer än så. Den måste komma ihåg vad användaren sa för tre varv sedan, känna till användarens inställningar eller hämta relevanta fakta från en kunskapsbas – allt innan det börjar generera ett svar. Verktyg kan hämta information, men de är reaktiva: modellen måste bestämma sig för att anropa dem. Om modellen inte inser att den behöver kontext kommer den inte att be om det.
Kontextprovidrar löser detta. Det är komponenter som körs före och efter varje agentanrop, som proaktivt matar in relevant information i kontextfönstret och eventuellt extraherar tillstånd från svaret som ska lagras för framtida användning. De ger din agent minne, anpassning och åtkomst till extern kunskap – utan att ändra agentens instruktioner eller kod.
När du ska använda detta
Lägg till kontextprovidrar till din agent när:
- Agenten behöver konversationshistorik – den bör komma ihåg vad som sades i tidigare svängar, inte bara det aktuella meddelandet.
- Du vill mata in användarspecifika data – profiler, inställningar, kontoinformation eller sessionstillstånd – så att agenten kan anpassa sina svar.
- Du behöver hämtningsförhöjd generering (RAG) – hämtar automatiskt relevanta dokument eller fakta från en kunskapsbas före varje svar.
- Agenten kräver dynamiska instruktioner – kontext som ändras mellan anrop baserat på tid på dagen, användarens plats eller andra körningsvillkor.
- Du vill frikoppla datakällor från agentlogik – agenten behöver inte veta var kontexten kommer ifrån, bara att den är tillgänglig.
Varför inte bara använda verktyg?
Både verktyg och kontextleverantörer ger agenter åtkomst till extern information, men de fungerar på fundamentalt olika sätt:
| Aspekt | Arbetsredskap | Kontextleverantörer |
|---|---|---|
| Trigger | Reaktiv – modellen bestämmer när ett verktyg ska anropas | Proaktiv – körs automatiskt före varje anrop |
| Kontroll | Modelldriven: modellen väljer vilket verktyg, när och med vilka argument | Utvecklardriven: du bestämmer vilken kontext som alltid är tillgänglig |
| Synlighet | Modellen måste känna till att ett verktyg finns och bedöma att det är relevant | Kontexten matas in transparent – modellen ser den som en del av uppmaningen |
| Användningsfall | Åtgärder och sökningar på begäran: "sök på webben", "fråga databasen" | Alltid närvarande kontext: konversationshistorik, användarprofiler, förinlästa kunskaper |
| Tokenkostnad | Token används endast när verktyget anropas | Token som spenderas på varje anrop (kontexten finns alltid i prompten) |
Ingen av dem är strikt bättre. Många agenter använder båda: kontextprovidrar för information som alltid ska finnas (historik, användarprofil, grundläggande kunskap) och verktyg för information som agenten ska hämta på begäran (live-sökresultat, databasfrågor, API-anrop).
Tips/Råd
En bra tumregel: Om agenten ska ha den här informationen varje gång den körs använder du en kontextprovider. Om agenten bara ska hämta den när det är relevant använder du ett verktyg.
Så här fungerar kontextprovidrar
Kontextprovidrar deltar i en livscykel i två faser runt varje agentanrop:
┌──────────────────────────────────────────────────────────────┐
│ Caller: agent.run("What's the return policy?") │
└──────────────┬───────────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────┐
│ BEFORE RUN — each context provider injects context │
│ │
│ • History provider loads past conversation messages │
│ • Memory provider retrieves relevant facts/preferences │
│ • RAG provider searches knowledge base and adds results │
│ • Custom provider injects user profile, time, location │
└──────────────┬───────────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────┐
│ Agent core — model sees original input + all injected │
│ context and generates a response │
└──────────────┬───────────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────┐
│ AFTER RUN — each context provider processes the response │
│ │
│ • History provider saves the new messages │
│ • Memory provider extracts facts to remember for later │
│ • Custom provider updates session state │
└──────────────────────────────────────────────────────────────┘
Viktiga punkter:
- Kontextprovidrar körs automatiskt. Du registrerar dem en gång när du skapar agenten. Därefter deltar de i varje anrop utan extra kod från din sida.
- Flera leverantörer kombineras tillsammans. Du kan registrera flera kontextprovidrar – en historikprovider, en RAG-provider och en anpassad provider – och de bidrar alla till samma kontextfönster. Deras bidrag slås samman i registreringsordning.
- Leverantörer har två hakpunkter. Innan kroken matar in kontext (meddelanden, instruktioner, verktyg) i prompten. Efter-hook bearbetar svaret – lagrar meddelanden, extraherar minnen eller uppdaterar tillståndet.
- Leverantörer är sessionsmedvetna. Kontextprovidrar tar emot den aktuella sessionen så att de kan läsa in och lagra data som är begränsade till en specifik konversation. Se Sessioner för hur sessionshantering fungerar.
Tips/Råd
En detaljerad vy över var kontextprovidrar finns i den fullständiga agentkörningspipelinen – tillsammans med mellanprogram och chattklienten – finns i Arkitektur för agentpipeline.
Hantera kontextfönstret
Varje kontext som du matar in förbrukar token från modellens kontextfönster. Historiken växer med varje tur. RAG-resultat lägger till dokumentsegment. Användarprofiler lägger till metadata. Om summan överskrider modellens gräns trunkeras den äldsta eller minst relevanta informationen , vilket kan leda till att viktig kontext förloras.
Hantering av kontextfönster är en viktig faktor när du använder kontextprovidrar: Komprimeringsstrategier sammanfattar eller trimmar äldre historik för att hålla sig inom tokengränser samtidigt som viktig information bevaras. Se Komprimering.
Tips/Råd
Praktisk erfarenhet av minnes- och kontextprovidrar finns i Steg 4: Minne i självstudien Komma igång.
Viktigt!
Vi rekommenderar inte att du underhåller ett mycket långt kontextfönster eftersom modellens prestanda kan försämras när kontextfönstret växer. Om agenten börjar få sämre prestanda bör du överväga att använda komprimeringsstrategier för att minska kontextstorleken.
Överväganden
| Att tänka på | Detaljer |
|---|---|
| Tokenbudget | Varje inmatad kontext förbrukar token. Övervaka den totala kontextstorleken noggrant – särskilt när du kombinerar flera leverantörer. Om kontexten växer obehindrat trunkeras viktig information utan varning. |
| Svarstid för hämtning | Kontextprovidrar som frågar efter externa tjänster (databaser, sökindex, API:er) lägger till svarstid för varje anrop. Använd cachelagring, anslutningspooler och asynkrona åtgärder för att hålla hämtningen snabb. |
| Relevance | Att mata in irrelevant kontext slösar inte bara token – det kan aktivt försämra modellens svar genom att späda ut signalen. Se till att dina leverantörer matar in fokuserad, relevant information. |
| Staleness | Cachelagrad eller förladdad data kan bli inaktuell. Utforma leverantörer för att uppdatera data med lämpliga intervall och fundera på om något inaktuell kontext är acceptabel för ditt användningsfall. |
| Komposbarhet | När flera leverantörer bidrar till samma kontextfönster kan deras bidrag interagera på oväntade sätt. Testa leverantörer tillsammans, inte bara individuellt, för att säkerställa att den samlade kontexten är logisk. |
Nästa steg
Nu när din agent har verktyg, kunskaper, mellanprogram och kontextproviders är nästa steg agenter som verktyg – att skapa agenter genom att använda en agent som ett verktyg för en annan, vilket möjliggör specialisering och delegering.
Gå djupare:
- Referens för kontextproviders – inbyggda och anpassade providermönster
- Översikt över konversationer och minne – sessioner, historik och lagring
- RAG – mönster för retrieval-augmented generation
- Komprimering – hantera storlek på kontextfönster
- Lagring – bevara konversationsdata
- Arkitektur för agentpipeline – hur kontextprovidrar integreras i exekveringspipelinens flöde
- Steg 4: Minne – praktisk självstudie