
AI-agenter: Hur GPT 4o Tänker
Utforska tankeprocesserna hos AI-agenter i denna omfattande utvärdering av GPT-4o. Upptäck hur den presterar inom uppgifter som innehållsgenerering, problemlösn...
Djupdykning i injektionsmekaniken hos 11 AI-agentplattformar: var färdigheter hamnar i prompten, när de laddas, vad de kostar i tokens och hur de överlever kontextkomprimering.
Varje ramverk för AI-agenter står inför samma grundläggande fråga: hur gör man en LLM bra på något specifikt? Modellen i sig har bred allmän kunskap, men när du behöver den för att utföra en kodgranskning, distribuera infrastruktur eller navigera i Minecraft – behöver den specialiserade instruktioner, verktygsåtkomst och domänkontext.
Detta är problemet med färdighetsinjektion. Och varje stort ramverk löser det på olika sätt.
Vissa plattformar dumpar allt i systemprompten direkt. Andra använder lat laddning och avslöjar bara funktioner när agenten behöver dem. Några använder vektordatabaser för att hämta relevanta färdigheter baserat på semantisk likhet. Skillnaderna är inte akademiska – de påverkar direkt tokenkostnader, agenttillförlitlighet och hur många färdigheter en agent realistiskt kan hantera.
Vi analyserade 11 stora AI-agentplattformar för att förstå exakt var färdigheter hamnar i prompten, när de laddas, vad de kostar i tokens och hur de överlever när kontextfönstret fylls upp. Detta är inte en ytlig funktionsjämförelse. Vi grävde i källkod, dokumentation och arkitekturdiagram för att kartlägga de exakta injektionsmekanismerna för varje plattform.
Här är den kompletta översikten innan vi dyker ner i detaljerna.
| Plattform | Injektionspunkt | När den laddas | Mekanism |
|---|---|---|---|
| Claude Code | System-reminder (metadata) + konversationsmeddelande (brödtext) | Metadata vid sessionsstart; brödtext vid /command eller automatisk matchning | Ramverket injicerar metadata; Skill-verktyget laddar fullständig brödtext vid aktivering |
| CrewAI | Uppgiftsprompt (tillagd före LLM-anrop) | Varje uppgiftsexekvering via _finalize_task_prompt() | format_skill_context() lägger till alla färdighetstexter i prompten |
| LangChain Deep Agents | Systemprompt (metadata) + konversationshistorik (brödtext) | Metadata vid uppstart; brödtext när agenten anropar read_file() | SkillsMiddleware injicerar index; agenten laddar brödtext via filsystemverktyg |
| OpenAI Responses API | Användarpromptkontext (plattformshanterad) | Vid skill_reference i API-anrop | Plattformen lägger till metadata; modellen läser fullständig SKILL.md vid anrop |
| OpenAI Agents SDK | Verktygsdefinitioner (uppskjutna via ToolSearchTool) | Namnrymdsnamn vid skapande; scheman vid ToolSearchTool-anrop | tool_namespace() + ToolSearchTool() för progressiv upptäckt |
| AutoGen Teachability | Modifierat användarmeddelande (hämtade memon injicerade) | Varje tur – vektordatabashämtning före varje LLM-anrop | Middleware fångar upp meddelande, frågar ChromaDB, injicerar top-K-matchningar |
| Semantic Kernel | Funktionsanropsscheman + promptmallsinnehåll | Alla scheman vid uppstart; mallinnehåll vid funktionsanrop | kernel.add_plugin() registrerar alla; kernel.invoke() renderar mallar |
| MetaGPT | Action-promptmall (renderad till LLM-anrop) | När rollens _act() utlöses för en specifik Action | Action.run() formaterar PROMPT_TEMPLATE, skickar via aask() |
| Voyager | Kodgenereringsprompt (hämtad färdighetskod) | Före varje kodgenerering; inbäddningslikhetsökning | SkillLibrary.retrieve_skills() injicerar topp-5 som few-shot-exempel |
| DSPy | Kompilerade few-shot-demonstrationer i Predict-modulpromptar | Kompilerade offline av optimerare; fasta vid körning | BootstrapFewShot / MIPROv2 väljer bästa demonstrationer; Predict renderar till prompt |
| SuperAGI | Verktygsscheman i agentens verktygslista | Agentskapande – alla verktygslådeverktyg registreras direkt | BaseToolkit.get_tools() registrerar alla som funktionsanropsverktyg |
| CAMEL-AI | Funktionsscheman + rollsystemmeddelande | Agentskapande – alla verktyg registreras direkt | ChatAgent(tools=[*toolkit.get_tools()]) laddar allt vid initiering |
| Plattform | Alltid närvarande? | Persistens | Tokenkostnad |
|---|---|---|---|
| Claude Code | Metadata: JA. Brödtext: först efter aktivering | Sessionsomfattande. Vid komprimering: återkopplas (5K/färdighet, 25K-tak) | ~250 tecken/färdighetsmetadata; 1 % av kontextbudgeten |
| CrewAI | JA – fullständig brödtext i varje uppgiftsprompt | Ny injektion per uppgift; ingen persistens mellan uppgifter | Fullständig brödtext varje anrop. 50K tecken mjuk gräns |
| LangChain Deep Agents | Metadata: JA. Brödtext: vid behov | Brödtext stannar i konversationshistorik; underagentfärdigheter isolerade | ~100 tokens/färdighetsmetadata; brödtext betalas en gång (~3 302 tokens) |
| OpenAI Responses API | Namn+beskrivning: JA. Fullständig brödtext: vid anrop | Endast enstaka API-svar; ingen persistens mellan anrop | Plattformshanterad |
| OpenAI Agents SDK | Namnrymdslista: JA. Scheman: vid behov | Enbart enstaka körning; återupptäck per session | Minimal tills aktiverad |
| AutoGen Teachability | NEJ – bara relevanta memon per tur | Sessionsoberoende via ChromaDB; bevaras på obestämd tid | ~3–5 memon per tur (variabelt) |
| Semantic Kernel | Alla scheman: JA. Mallar: vid anrop | I minnet per kernelinstans; ingen sessionsoberoende | Alla scheman alltid närvarande |
| MetaGPT | NEJ – bara aktuell Actions mall | Enbart enstaka actionexekvering | En mall per tur |
| Voyager | NEJ – topp-5 hämtade per uppgift | Livslång persistens i vektordatabas | ~500–2 000 tokens per färdighetsexempel |
| DSPy | JA – kompilerade demonstrationer inbakade | Serialiserbar till JSON; bevaras mellan sessioner | Fast efter kompilering (3–8 demonstrationer/modul) |
| SuperAGI | JA – alla scheman alltid närvarande | Inom agentsession | Alla scheman alltid närvarande |
| CAMEL-AI | JA – alla scheman + rollprompt | Inom konversationssession | Alla scheman alltid närvarande |
Innan vi dyker ner i jämförelsen, låt oss definiera problemområdet. En AI-agents kontextfönster – den totala texten som LLM:en ser vid varje anrop – har en fast storlek. Varje token av instruktioner, konversationshistorik, verktygsdefinitioner och hämtad data konkurrerar om utrymme i det fönstret.
En “färdighet” i agentsammanhang är vilket strukturerat paket av expertis som helst som förändrar hur agenten beter sig. Detta kan vara:
Injektionsmekanismen – var och när detta innehåll hamnar i kontexten – bestämmer tre kritiska egenskaper:
Varje ramverk gör olika avvägningar mellan dessa tre dimensioner. Låt oss undersöka var och en.
Över alla 11 plattformar faller metoderna för färdighetsinjektion längs ett spektrum från “allt laddat i förväg” till “inget laddat förrän det uttryckligen behövs”.
I ena änden injicerar plattformar som CrewAI, SuperAGI och CAMEL-AI det fullständiga innehållet av varje aktiverad färdighet i varje LLM-anrop. Agenten har alltid sin fullständiga expertis tillgänglig. Enkelt, tillförlitligt, men dyrt i tokens.
I andra änden använder Claude Code, LangChain Deep Agents och OpenAI:s Responses API progressiv avslöjning – agenten ser bara färdighetsnamn och korta beskrivningar vid uppstart, och fullständigt innehåll laddas vid behov. Effektivt, skalbart, men kräver att agenten känner igen när den behöver en färdighet.
I mitten använder AutoGen Teachability och Voyager semantisk hämtning för att bara injicera de mest relevanta färdigheterna per tur, vilket skapar ett dynamiskt, kontextkänsligt injektionsmönster.
Och sedan finns det unika metoder: DSPy kompilerar optimerade few-shot-exempel offline och bakar in dem permanent i modulpromptar. MetaGPT kodar färdigheter som actionmallar som bara aktiveras när en specifik roll övergår till en specifik action.
Låt oss undersöka var och en i detalj.
Claude Code implementerar en av de mest sofistikerade arkitekturerna för färdighetsinjektion, med ett trelagersystem för progressiv avslöjning som balanserar medvetenhet med tokeneffektivitet.
Vid sessionsstart injiceras varje tillgänglig färdighets namn och beskrivning i ett system-reminder-meddelande – ett metadatablock som modellen alltid ser. Detta kostar ungefär 250 tecken per färdighet och förbrukar cirka 1 % av kontextfönstrets budget för alla färdighetsbeskrivningar tillsammans (ungefär 8K tecken som reservbudget, överskridbar via miljövariabeln SLASH_COMMAND_TOOL_CHAR_BUDGET).
På liknande sätt visas uppskjutna verktyg – verktyg vars fullständiga JSON-scheman inte har laddats ännu – som en lista med enbart namn i system-reminder-block. Från och med Claude Code v2.1.69 är även inbyggda systemverktyg som Bash, Read, Edit, Write, Glob och Grep uppskjutna bakom ToolSearch, vilket minskar systemverktygskontexten från ungefär 14–16K tokens till ungefär 968 tokens.
Agenten ser tillräckligt för att veta vad som finns tillgängligt utan att betala tokenkostnaden för fullständiga definitioner.
När en användare skriver ett snedstreckskommando (t.ex. /commit) eller modellen automatiskt matchar en färdighet baserat på dess beskrivning, laddas den fullständiga SKILL.md-brödtexten som ett konversationsmeddelande via Skill-verktyget. Denna brödtext innehåller de fullständiga instruktionerna – ibland tusentals tokens med detaljerad vägledning.
Viktig detalj: Shell-förbearbetning körs först (alla !command-direktiv i färdighetsfilen exekveras och deras utdata ersätter direktivet), och när brödtexten väl laddats stannar den kvar i konversationen under resten av sessionen.
Ytterligare resurser – referensdokument, skript, tillgångsfiler – läses bara när modellen uttryckligen beslutar att använda Read-verktyget för att komma åt dem. Dessa laddas aldrig automatiskt.
När konversationen närmar sig kontextgränsen och komprimering utlöses, återkopplar Claude Code de senast anropade färdigheterna med en budget på 5K tokens per färdighet och ett kombinerat maximum på 25K. De senast anropade färdigheterna får prioritet. Äldre färdigheter kan tas bort helt.
Denna trelagerarkitektur innebär att en agent med 20+ tillgängliga färdigheter betalar en minimal startkostnad men kan komma åt fullständig expertis om vilken som helst av dem inom en enda tur.
CrewAI tar motsatt tillvägagångssätt jämfört med progressiv avslöjning. När en färdighet är aktiverad för en agent injiceras dess fullständiga innehåll i varje uppgiftsprompt som agenten exekverar.
Färdigheter i CrewAI är fristående kataloger, var och en med en SKILL.md-fil som innehåller YAML-frontmatter (namn, beskrivning, licens, kompatibilitet, tillåtna verktyg) och en markdown-brödtext. Färdighetssystemet skiljer mellan färdigheter och verktyg: färdigheter injicerar instruktioner och kontext som formar hur agenten tänker, medan verktyg tillhandahåller anropsbara funktioner för handlingar.
Under agentinitieringen anropar Agent.set_skills() discover_skills() för att skanna färdighetskataloger på metadatanivå, och sedan activate_skill() för att läsa fullständiga färdighetstexter. Vid uppgiftsexekvering anropar _finalize_task_prompt() format_skill_context() för varje aktiverad färdighet och lägger till allt formaterat färdighetsinnehåll i uppgiftsprompten.
LLM:en tar emot: [systemmeddelande] + [uppgiftsprompt + ALLA färdighetstexter]
CrewAI tillämpar en mjuk varning vid 50 000 tecken per färdighet men ingen hård gräns. Dokumentationen rekommenderar att hålla färdigheter fokuserade och koncisa eftersom stora promptinjektioner späder ut modellens uppmärksamhet – en verklig oro med tanke på forskning om kontextförfall.
Avvägningen är enkel: agenten har alltid fullständig expertis tillgänglig (hög tillförlitlighet), men tokenkostnaden skalas linjärt med antalet färdigheter per uppgift (låg effektivitet). För agenter med 1–2 fokuserade färdigheter fungerar detta bra. För agenter som behöver breda funktionsuppsättningar blir det dyrt snabbt.
Varje uppgift får en ny injektion. Det finns ingen ackumulering av färdighetsinnehåll mellan uppgifter – vilket faktiskt är en funktion, inte en bugg. Det betyder att varje uppgift startar med en ren kontext och undviker de problem med inaktuellt innehåll som sessionsbaserad persistens kan skapa.
LangChain Deep Agents implementerar ett sofistikerat middleware-baserat färdighetssystem där agenten själv bestämmer när fullständigt färdighetsinnehåll ska laddas – en äkta progressiv avslöjningsmodell där agenten styr aktiveringen.
Nivå 1 (Index): SkillsMiddleware analyserar all SKILL.md-frontmatter vid uppstart och injicerar ett lättviktigt index i systemprompten. Detta index innehåller bara namn och beskrivningar och kostar ungefär 278 tokens per färdighet jämfört med 3 302 tokens för fullständigt innehåll.
Nivå 2 (Fullständigt innehåll): När agenten bedömer att en färdighet är relevant anropar den read_file() på färdighetens SKILL.md-sökväg. Detta är ett vanligt verktygsanrop – ramverket injicerar inte brödtexten; agenten fattar ett medvetet beslut att ladda den. Det fullständiga innehållet hamnar i konversationshistoriken som ett verktygsresultat.
Nivå 3 (Djupdykning): Stödmaterial, referensdokument och skript nås bara när agenten uttryckligen läser dem.
Med 12 färdigheter minskar progressiv avslöjning kontexten från ungefär 30 000 tokens (alla laddade) till ungefär 600 tokens (enbart index), och expanderar till 2 000–5 000 när relevanta färdigheter laddas för en specifik uppgift. Det är en potentiell minskning på 83–98 % av färdighetsrelaterad tokenförbrukning.
Flera färdighetskällor kan läggas i lager, och vid namnkollisioner vinner den senaste källan. Filer över 10 MB hoppas automatiskt över.
Medan Claude Code använder ett dedikerat Skill-verktyg för att utlösa laddning, återanvänder Deep Agents agentens befintliga read_file-verktyg. Detta innebär att laddningsmekanismen är transparent – agenten läser färdighetsfiler på samma sätt som den läser vilken annan fil som helst. Nackdelen är att det inte finns något speciellt komprimeringsbeteende: färdighetsinnehåll som hamnar i konversationshistoriken omfattas av LangChains standardmeddelandetrimning, utan prioritetsbehandling.
OpenAI implementerar färdighetsinjektion genom två distinkta men filosofiskt samstämmiga mekanismer: Responses API:s verktygstyp tool_search och Agents SDK:s ToolSearchTool.
Verktygstypen tool_search (tillgänglig på GPT-5.4+) gör det möjligt för utvecklare att skjuta upp stora verktygsobjekt till körning. Tre uppskjutningsstrategier finns tillgängliga:
@function_tool(defer_loading=True) – modellen ser funktionsnamnet och beskrivningen men parameterschemat skjuts upp. Sparar tokens på parameternivå.tool_namespace(name=..., description=..., tools=[...]) – grupperar funktioner under en enda namnrymd. Modellen ser bara namnrymdens namn och beskrivning, vilket sparar betydligt fler tokens.HostedMCPTool(tool_config={..., "defer_loading": True}) – skjuter upp hela MCP-serverns verktygsobjekt.När modellen bedömer att den behöver ett specifikt verktyg utfärdar den ett tool_search-anrop. API:et returnerar 3–5 relevanta verktygsdefinitioner, injicerade i slutet av kontextfönstret för att bevara promptcaching.
Agents SDK tillhandahåller en programmatisk motsvarighet. Verktygsnamnrymder registreras men laddas inte:
crm_tools = tool_namespace(
name="crm",
description="CRM management tools",
tools=[...]
)
agent = Agent(tools=[*crm_tools, ToolSearchTool()])
Vid körning ser agenten bara namnrymdsnamn. Den anropar ToolSearchTool("crm") för att upptäcka och ladda de fullständiga schemana, och kan sedan anropa enskilda verktyg inom den namnrymden.
Varje API-anrop är oberoende. Upptäckta verktyg bevaras inte mellan anrop. Detta är den mest tillståndslösa metoden i vår jämförelse – ren, förutsägbar, men kräver nyupptäckt vid varje anrop om verktygen ändras.
AutoGen:s Teachability-funktion tar ett fundamentalt annorlunda tillvägagångssätt jämfört med alla andra ramverk i denna jämförelse. Istället för att injicera statiskt färdighetsinnehåll hämtar den dynamiskt relevanta “memon” från en ChromaDB-vektordatabas vid varje enskild tur.
Teachability registrerar en hook på process_last_received_message som fångar upp varje inkommande användarmeddelande innan agenten bearbetar det:
TextAnalyzerAgent extraherar nyckelbegrepp från det inkommande meddelandetmax_num_retrievals, standard 10)Viktigt att notera: det modifierade meddelandet sprids inte till lagrad konversationshistorik – bara det ursprungliga meddelandet lagras. Detta förhindrar att memoinnehåll ackumuleras över turer.
Efter att LLM:en svarat analyserar en andra hook svaret för nya insikter:
TextAnalyzerAgent identifierar ny kunskap i svaretDetta skapar en genuin inlärningsloop där agenten ackumulerar expertis över tid.
AutoGen Teachability är en av bara tre plattformar i vår jämförelse (tillsammans med Voyager och DSPy) som bevarar färdigheter mellan sessioner. ChromaDB-databasen ligger på disk, vilket innebär att en agent kan lära sig av interaktioner på måndag och tillämpa den kunskapen på fredag.
Parametern recall_threshold (standard 1.5) styr hur likt ett meddelande måste vara ett lagrat memo för hämtning, och reset_db kan rensa hela minnet vid behov.
Eftersom bara relevanta memon injiceras per tur (vanligtvis 3–5) är tokenkostnaden naturligt begränsad oavsett hur stor memodatabasen växer. En agent med 10 000 lagrade memon betalar bara för den handfull som är mest relevanta för den aktuella turen.
Microsofts Semantic Kernel tar ett rakt tillvägagångssätt: plugins är samlingar av KernelFunction-objekt registrerade med Kernel, och deras scheman exponeras för LLM:en som verktygsdefinitioner för funktionsanrop.
Funktionsanrop: När ToolCallBehavior.AutoInvokeKernelFunctions är inställt skickas alla registrerade funktioner till LLM:en som tillgängliga verktyg i varje API-anrop. LLM:en bestämmer vilka som ska anropas; Semantic Kernel hanterar anrop och resultatrouting.
Promptmallar: Semantic Kernels mallsyntax ({{plugin.function}}, Handlebars eller Liquid) gör det möjligt att anropa funktioner inline under promptrendering. Resultaten bäddas in direkt i prompttexten innan den når LLM:en – en form av ivrig evaluering snarare än lat verktygsanrop.
Varje registrerat plugins schema inkluderas i varje API-anrop. Det finns ingen inbyggd uppskjuten laddning, namnrymdsgruppering eller aktivering vid behov. Dokumentationen rekommenderar uttryckligen att bara importera de plugins som behövs för ett specifikt scenario för att minska tokenförbrukning och felanrop.
Detta gör Semantic Kernel till en av de mest förutsägbara plattformarna – du vet alltid exakt vad agenten har tillgång till – men det begränsar skalbarheten. En agent med 50 registrerade funktioner betalar den fullständiga schemakostnaden vid varje enskilt anrop.
Plugin-registrering är per Kernel-instans och i minnet. Det finns ingen inbyggd mekanism för sessionsoberoende färdighetspersistens.
MetaGPT kodar färdigheter inte som fristående paket utan som actionmallar inbäddade i standardoperationsprocedurer (SOP:er) som styr rollbeteende.
Varje Role i MetaGPT har ett persona-prefix som injiceras i promptar och en uppsättning Action-klasser. Varje Action innehåller en LLM-proxy som anropas via aask(), vilken använder promptmallar i naturligt språk för att strukturera LLM-anropet.
När Role._act() utlöses stöder den tre reaktionslägen:
"react": LLM:en väljer dynamiskt actions i tänk-agera-loopar"by_order": Actions exekveras sekventiellt i en förutbestämd ordning"plan_and_act": Agenten planerar först och exekverar sedan actions enligt planenBara den aktuella Actionens promptmall är aktiv vid varje givet ögonblick. Agenten ser inte mallar för andra actions – den ser bara sitt rollprefix plus den specifika actionens kontext. Detta är det smalaste injektionsfönstret av alla ramverk vi undersökte.
Kontextanalysfunktioner inom Action-klasser extraherar relevant information från indata, så varje action tar emot en kurerad delmängd av tillgänglig kontext snarare än den fullständiga konversationshistoriken.
Mallen renderas på nytt för varje actionexekvering. Det finns ingen ackumulering eller sessionsoberoende persistens. Detta håller varje action fokuserad men innebär att agenten inte kan bygga vidare på tidigare laddat färdighetsinnehåll inom ett enstaka arbetsflöde.
Voyager, Minecraft-utforskningsagenten från NVIDIA och Caltech, implementerar en av de mest eleganta arkitekturerna för färdighetsinjektion: ett växande bibliotek av verifierade program som hämtas genom inbäddningslikhet.
När Voyager skriver kod som klarar självverifiering (den genererade Mineflayer-JavaScripten fungerar faktiskt i spelet) lagras koden och dess dokumentationssträng i en vektordatabas. Dokumentationssträngens inbäddning blir hämtningsnyckeln.
Vid varje ny uppgift som föreslås av den automatiska läroplanen:
Prompten ser ut så här:
You are a Minecraft bot. Here are some relevant skills you've learned:
// Skill: mineWoodLog
async function mineWoodLog(bot) { ... }
// Skill: craftPlanks
async function craftPlanks(bot) { ... }
Now write code to: build a wooden pickaxe
Den genererade koden kan anropa hämtade färdigheter med namn, vilket möjliggör kompositionell färdighetsuppbyggnad – komplexa beteenden konstruerade från enklare, verifierade primitiver.
Färdighetsbiblioteket är den centrala mekanismen för “livslångt lärande”. Det växer under agentens hela livstid, och nya färdigheter bygger på gamla. Till skillnad från de flesta ramverk där färdigheter skrivs av människor genereras, verifieras och lagras Voyagers färdigheter av agenten själv.
Tokenkostnaden är naturligt begränsad: oavsett om biblioteket innehåller 50 eller 5 000 färdigheter betalar varje uppgift bara för de 5 mest relevanta hämtningarna.
DSPy tar ett radikalt annorlunda tillvägagångssätt jämfört med alla andra ramverk. Istället för att injicera färdigheter vid körning kompilerar DSPy optimala few-shot-demonstrationer offline och bakar in dem permanent i modulpromptar.
Två huvudoptimerare hanterar kompileringen:
BootstrapFewShot: Använder en lärarmodul för att generera spår genom programmet. Spår som klarar ett användardefinierat mått behålls som demonstrationer. Varje dspy.Predict-modul inom programmet får sin egen kurerade uppsättning demonstrationer.
MIPROv2 (Multi-prompt Instruction Proposal Optimizer v2): En trefasprocess:
Parametrar som max_bootstrapped_demos (genererade exempel) och max_labeled_demos (från träningsdata) styr hur många exempel som hamnar i varje moduls prompt.
När de väl kompilerats lagras demonstrationer i varje Predict-moduls demos-attribut och formateras till prompten vid varje LLM-anrop. De ändras inte vid körning – “färdigheten” är frusen.
Detta innebär att DSPy-färdigheter är de mest förutsägbara i vår jämförelse: tokenkostnaden är känd efter kompilering, det finns ingen variation mellan turer, och agenten ser alltid samma demonstrationer. Nackdelen är oflexibilitet – för att ändra färdigheter måste du kompilera om.
Kompilerade program serialiseras till JSON, inklusive alla demonstrationer. De är fullt persistenta och laddningsbara mellan sessioner, vilket gör DSPy till en av de mest hållbara mekanismerna för färdighetslagring.
SuperAGI använder ett traditionellt verktygslådemönster där alla verktyg registreras vid agentinitieringen.
Varje verktygslåda utökar BaseToolkit med:
name och descriptionget_tools() som returnerar en lista med BaseTool-instanserget_env_keys() för obligatoriska miljövariablerVerktygslådor installeras från GitHub-repositorier via SuperAGI:s verktygshanterare. Vid agentinitieringen returnerar BaseToolkit.get_tools() alla verktyg, och deras fullständiga scheman exponeras för LLM:en som funktionsanropsdefinitioner.
Det finns ingen uppskjuten laddning, ingen progressiv avslöjning och ingen filtrering per tur. Varje registrerat verktygs schema finns i varje anrop. Detta är den enklaste injektionsmodellen och fungerar bra för agenter med fokuserade, små verktygsuppsättningar men skalas inte till agenter som behöver dussintals funktioner.
CAMEL-AI följer ett liknande mönster för registrering vid uppstart. Verktyg från olika verktygslådor (t.ex. MathToolkit, SearchToolkit) skickas som en lista till ChatAgent(tools=[...]) vid initieringen.
Ramverket betonar att anpassade funktioner behöver tydliga argumentnamn och omfattande docstrings så att modellen kan förstå användningen – verktygsschemat är det enda “färdighetsinnehåll” modellen ser. Det finns ingen separat mekanism för instruktionsinjektion.
Nyligen tillagda funktioner inkluderar MCP-stöd (Model Context Protocol) via MCPToolkit, som gör det möjligt för ChatAgent att ansluta till MCP-servrar och registrera externa verktyg. Detta utökar den tillgängliga verktygsobjektet men ändrar inte injektionsmodellen – alla upptäckta MCP-verktyg registreras fortfarande vid uppstart.
| Tidpunkt | Plattformar | Vad som injiceras |
|---|---|---|
| Alltid närvarande (sessionsstart) | Claude Code, CrewAI, Deep Agents, Semantic Kernel, SuperAGI, CAMEL-AI, DSPy | Metadata (namn + beskrivning) eller fullständiga scheman |
| Vid aktivering (användar- eller agentutlöst) | Claude Code, Deep Agents, OpenAI | Fullständig färdighetsbrödtext |
| Varje uppgift/tur | CrewAI, AutoGen Teachability | Fullständig brödtext (CrewAI) eller hämtade memon (AutoGen) |
| Vid LLM-val | Semantic Kernel, MetaGPT | Promptmallsinnehåll |
| Vid likhetsmatchning | Voyager, AutoGen Teachability | Hämtad kod eller memon |
| Kompilerad/fast | DSPy | Optimerade few-shot-exempel |
| Persistens | Plattformar | Mekanism |
|---|---|---|
| Enbart enstaka tur | MetaGPT, Voyager | Mall renderad per action / per generering |
| Inom session | Claude Code, Deep Agents, OpenAI, Semantic Kernel | Brödtext stannar i meddelandehistorik |
| Återinjicerad varje uppgift | CrewAI, SuperAGI, CAMEL-AI | Tillagd på nytt vid varje uppgiftsexekvering |
| Sessionsoberoende (persistent lagring) | AutoGen Teachability, Voyager, DSPy | Vektordatabas / kompilerade moduler / färdighetsbibliotek |
| Plattform | Vad händer när kontexten blir full |
|---|---|
| Claude Code | Återkopplar senaste färdigheter (5K tokens var, 25K-tak). Äldre färdigheter tas bort |
| CrewAI | Ej tillämpligt – injiceras nytt per uppgift, ingen ackumulering |
| Deep Agents | Brödtext i konversationshistorik, föremål för LangChains standardtrimning |
| OpenAI | Ej tillämpligt – varje API-anrop är oberoende |
| AutoGen | Bara relevanta memon hämtas per tur, naturligt begränsat |
| Voyager | Bara topp-K-färdigheter hämtas per uppgift, naturligt begränsat |
Den mest betydande arkitektoniska trenden över dessa plattformar är antagandet av progressiv avslöjning – ett koncept lånat från UI-design där information avslöjas stegvis baserat på behov.
En naiv metod för färdighetsinjektion – att ladda allt i förväg – skapar två problem:
Progressiv avslöjning löser båda problemen genom att upprätthålla ett lättviktigt index av tillgängliga färdigheter medan fullständigt innehåll bara laddas vid behov.
Claude Code använder ett dedikerat system: färdighetsmetadata i system-reminder-meddelanden, ett Skill-verktyg för aktivering och ToolSearch för uppskjutna verktygsscheman. Ramverket hanterar injektion automatiskt med prioritetsbaserad komprimering.
LangChain Deep Agents använder agentens befintliga filläsningsfunktion: SkillsMiddleware injicerar indexet, och agenten laddar fullständigt innehåll via read_file(). Detta är mer transparent men erbjuder mindre ramverksoptimering.
OpenAI Responses API använder namnrymdsbaserad gruppering med plattformshanterad sökning: verktygsnamnrymder tillhandahåller beskrivningar på hög nivå, och tool_search returnerar relevanta scheman. Plattformen hanterar söklogiken helt.
Siffrorna är övertygande. Med 12 färdigheter:
Det är en minskning på 83–98 % av färdighetsrelaterad tokenförbrukning per tur. Under en lång session med hundratals turer ackumuleras besparingarna dramatiskt.
Genom att titta över alla 11 plattformar framträder fyra distinkta arkitektoniska mönster:
Används av: CrewAI, SuperAGI, CAMEL-AI, Semantic Kernel
Hur det fungerar: Fullständigt färdighetsinnehåll eller verktygsscheman finns i varje LLM-anrop.
Fördelar:
Nackdelar:
Bäst för: Fokuserade agenter med 1–3 kärnfärdigheter som alltid är relevanta.
Används av: Claude Code, LangChain Deep Agents, OpenAI Responses API/Agents SDK
Hur det fungerar: Lättviktig metadata alltid närvarande; fullständigt innehåll laddas vid behov.
Fördelar:
Nackdelar:
Bäst för: Allmänna agenter som behöver tillgång till många funktioner men bara använder ett fåtal per uppgift.
Används av: AutoGen Teachability, Voyager
Hur det fungerar: Vektordatabasfrågor tar fram relevanta färdigheter/kunskap baserat på semantisk likhet med det aktuella sammanhanget.
Fördelar:
Nackdelar:
Bäst för: Agenter som lär sig av erfarenhet och behöver ackumulera domänkunskap över tid.
Används av: DSPy, MetaGPT
Hur det fungerar: Färdigheter kompileras till fast promptinnehåll (DSPy) eller aktiveras genom rigida actionmallar (MetaGPT).
Fördelar:
Nackdelar:
Bäst för: Produktionspipelines med väldefinierade uppgifter där tillförlitlighet övertrumfar flexibilitet.
Rätt arkitektur för färdighetsinjektion beror på din agents profil:
Om din agent har en smal, väldefinierad roll (t.ex. en kodgranskningsbot, en kundsupportagent för en produkt), är ständigt-på-injektion (CrewAI/SuperAGI-mönster) enklast och mest tillförlitligt. Tokenkostnaden för 2–3 ständigt närvarande färdigheter är hanterbar, och du undviker komplexiteten i aktiveringslogik.
Om din agent behöver breda funktioner men bara använder ett fåtal per interaktion (t.ex. en utvecklarassistent, en allmän automatiseringsagent), är progressiv avslöjning (Claude Code/Deep Agents-mönster) den klara vinnaren. Tokenbesparingarna på 83–98 % i stor skala är för betydande att ignorera.
Om din agent behöver lära sig och förbättras från interaktioner (t.ex. en personlig assistent, en domänexpert som ackumulerar kunskap), ger semantisk hämtning (AutoGen Teachability-mönster) den inlärningsloop som andra mönster saknar. Se bara till att du har kvalitetskontroller på vad som hamnar i kunskapsbasen.
Om din agent kör väldefinierade pipelines (t.ex. databehandling, rapportgenerering, standardiserade arbetsflöden), ger kompilerad injektion (DSPy-mönster) dig det mest förutsägbara, optimerade beteendet.
För produktionsagentteam där agenter behöver fungera direkt ur lådan rekommenderar vi en hybridmetod:
Kärnfärdigheter (1–2 per agent, som definierar deras primära domänexpertis): alltid injicerade i systemprompten, i CrewAI-stil. Dessa är icke-förhandlingsbara funktioner som agenten behöver vid varje tur.
Utökade färdigheter (ytterligare funktioner som agenten kan behöva): enbart metadata i systemprompten, laddade via en sök-/laddningsmekanism vid behov, i Deep Agents-stil. Dessa utökar agentens funktionsuppsättning utan att betala tokenkostnaden när de inte är relevanta.
Inlärd kunskap (ackumulerad domänexpertis): lagrad i en vektordatabas och hämtad semantiskt per tur, i AutoGen-stil. Detta gör det möjligt för agenten att förbättras över tid utan manuell färdighetsförfattning.
Denna lagerarkitektur mappar naturligt till hur en systemprompt byggs upp: datum -> persona -> systeminstruktioner -> kärnfärdigheter -> färdighetsindex -> roll-/teamkontext. Kärnfärdigheterna och indexet lägger till en förutsägbar, hanterbar tokenkostnad, medan de fullständiga färdighetstexterna bara dyker upp vid behov.
Oavsett vilket injektionsmönster du använder gäller dessa tokenhanteringsstrategier universellt:
Stapla oföränderlig kontext (systeminstruktioner, verktygsscheman) i början av prompten. Hos leverantörer som stöder promptcaching kostar cachade tokens 75 % mindre. Claude Code och OpenAI injicerar båda upptäckta verktygsscheman i slutet av kontexten specifikt för att bevara cacheträffar på det statiska prefixet.
Sammanfatta verktygssvar istället för att behålla fullständiga resultat i kontexten. Lagra den fullständiga datan i externa referenser som agenten kan läsa vid behov. Detta är särskilt viktigt för agenter som gör många verktygsanrop per session.
Komprimera konversationshistorik genom sammanfattning. Extrahera nyckelfakta från långa utbyten till komprimerade representationer. Varje ramverk med sessionsbaserad persistens drar nytta av aggressiv historikhantering.
Hämta relevant information dynamiskt vid körning istället för att ladda allt i förväg. Detta gäller färdigheter, kunskapsbaser och till och med konversationshistorik. Studier visar att detta kan minska promptstorlekar med upp till 70 %.
Använd underagenter för specifika uppgifter så att varje agents kontext förblir fokuserad. Istället för att ge en agent 20 färdigheter, skapa ett team av 5 agenter med 4 färdigheter vardera. Varje agent upprätthåller ett smalt kontextfönster, och teamet täcker kollektivt hela funktionsuppsättningen.
Sättet som ramverk för AI-agenter injicerar färdigheter i kontext är ett av de mest betydelsefulla arkitektoniska besluten i agentdesign – ändå diskuteras det sällan på denna detaljnivå.
Fältet konvergerar tydligt mot progressiv avslöjning som det föredragna mönstret för allmänna agenter, där Claude Code, LangChain Deep Agents och OpenAI alla oberoende har kommit fram till liknande trelagerarkitekturer. Samtidigt fyller specialiserade mönster som semantisk hämtning (AutoGen, Voyager) och kompilerad injektion (DSPy) viktiga nischer som progressiv avslöjning ensam inte adresserar.
För praktiker som bygger agentsystem idag är den viktigaste insikten att färdighetsinjektion inte är en universallösning. Rätt tillvägagångssätt beror på din agents roll, antalet färdigheter den behöver, om den behöver lära sig över tid, och din tolerans för avvägningar mellan tokenkostnader och tillförlitlighet.
De mest robusta produktionssystemen kommer sannolikt att kombinera flera mönster – ständigt-på för kärnfunktioner, progressiv avslöjning för utökade färdigheter och semantisk hämtning för ackumulerad kunskap – och skapa agenter som är både effektiva och expertkunniga.
Yasha är en skicklig mjukvaruutvecklare som specialiserar sig på Python, Java och maskininlärning. Yasha skriver tekniska artiklar om AI, prompt engineering och utveckling av chattbotar.

Designa AI-agentteam med intelligent färdighetsinjektion och kontexthantering. Ingen kod krävs.

Utforska tankeprocesserna hos AI-agenter i denna omfattande utvärdering av GPT-4o. Upptäck hur den presterar inom uppgifter som innehållsgenerering, problemlösn...

Utforska AI-agentmodellernas värld med en omfattande analys av 20 banbrytande system. Upptäck hur de tänker, resonerar och presterar inom olika uppgifter, och f...

Behärska AI-agentkomponenten i FlowHunt-arbetsflöden. Lär dig att konfigurera systemmeddelanden, ansluta verktyg, välja modeller och optimera agentprestanda för...
Cookie-samtycke
Vi använder cookies för att förbättra din surfupplevelse och analysera vår trafik. See our privacy policy.