Minnessystem
Ett system som försöker göra en agent tillståndsfull mellan sessioner. Det sparar information i miljön under en session och läser in den i kontextfönstret igen när framtida sessioner börjar, så att agenten behåller kontinuitet även efter att användaren rensat sessionen.
Ett minnessystem har två halvor. Skrivvägen: under en session sparar agenten det den har lärt sig — en preferens du uttryckt, ett faktum om projektet — som filer i miljön. Läs vägen: vid sessionsstart läser agentramverket in dessa filer, eller ett index över dem, i kontextfönstret igen. Många agentramverk levereras med ett eget minnessystem — Claude Codes `/memory` är ett exempel — men du kan också bygga ett själv: en katalog med anteckningar och en instruktion i AGENTS.md att läsa dem.
Samma avvägningar som för allt innehåll som alltid läses in gäller. Minnen samlas på hög, så de flesta system läser in ett index på en rad och lämnar själva innehållet bakom kontexthänvisningar i stället för att bädda in allt. Minnen är också sekundärkällor, och därför blir de inaktuella: ett faktum från mars läses in med samma säkerhet i juni, efter att projektet gått vidare. Ett minnessystem behöver rensas, precis som AGENTS.md.
Användning:
”Jag måste hela tiden berätta att jag använder Postgres, inte MySQL.”
”Koppla in ett minnessystem — skriv det agenten lär sig till filsystemet vid första turen, läs in det igen när sessionen startar. Modellen är i sig tillståndslös; minneslagret låtsas ge den kontinuitet.”
AGENTS.md
En fil i miljön som agentramverket läser in i kontextfönstret när en session börjar — projektets stående instruktioner till agenten. En konvention som fungerar över agentramverk; vissa har även en egen variant (Claude Codes heter CLAUDE.md).
Eftersom filen läses in automatiskt är den ett sätt att slippa upprepa sig mellan sessioner. Modellen är tillståndslös — en korrigering du ger i en session är borta i nästa, och du får tala om för varje ny session att projektet använder pnpm, att tester körs med en viss flagga och att en katalog är genererad och inte ska röras. När du har korrigerat agenten om samma sak två gånger är korrigeringen en möjlig rad i AGENTS.md.
Lämpligt innehåll är sådant agenten inte kan härleda ur koden: bygg- och testkommandon, konventioner som inte är uppenbara i kodbasen och absoluta begränsningar (”redigera aldrig den genererade klienten”). Kort och deklarativt — det är en instruktion, inte dokumentation.
Avvägningen är att allt i filen alltid läses in. Instruktioner samlas på hög, de flesta irrelevanta för en viss uppgift, och en lång AGENTS.md kostar tokens och urvattnar sig själv — ju fler instruktioner som finns i kontexten, desto mindre tillförlitligt följer modellen någon av dem.
Undvik: att använda AGENTS.md för innehåll som bör visas gradvis — allt i filen kostar en token varje tur, i varje session, oavsett om sessionen behöver det eller inte. En stilguide kan ligga bakom en skill eller kontexthänvisning; reservera AGENTS.md för regler som gäller överallt.
Användning:
”Varför börjar varje session med att 4 000 tokens redan har förbrukats?”
”Kolla AGENTS.md — någon klistrade in hela stilguiden där i stället för att lägga den bakom en skill.”
Stegvis exponering
Läs bara in den kontext en agent behöver just nu och använd kontextpekare till resten. Begreppet är hämtat från gränssnittsdesign, där det betyder att bara visa användarna de kontroller som hör till deras aktuella uppgift och dölja resten bakom ett klick.
Tekniken finns eftersom kontext kostar på två sätt. Varje token som läses in i förväg faktureras som indatatoken vid varje tur, och varje token förbrukar uppmärksamhetsbudget oavsett om agenten behöver den eller inte. En AGENTS.md som fyllts med hela stilguiden, drifthandboken och databasreglerna gör agenten sämre på alla tre områden — instruktionerna som är viktiga för den aktuella uppgiften späds ut av dem som inte är det. Tecknet är en agent som ignorerar regler du vet finns i dess kontext: reglerna finns där, men de är begravda.
Progressiv visning vänder på det. Håll det alltid inlästa lagret litet — en mening per ämne och en pekare till var detaljerna finns. Agenten läser stilguiden när den skriver en komponent, drifthandboken vid driftsättning och ingendera när den rättar ett test. Färdigheter är det mönster som byggts in i agentmiljön: en kort beskrivning läses in varje session, och de fullständiga instruktionerna läses bara in när färdigheten aktiveras.
Användning:
”Ska jag lägga in hela stilguiden i AGENTS.md?”
”Nej — använd progressiv visning. Hänvisa till stilguiden som en färdighet agenten läser in när den faktiskt behöver skriva en komponent. AGENTS.md kostar token vid varje tur.”
Kontextpekare
En hänvisning i ett dokument till ett annat, så att agenten bara hämtar in det i kontextfönstret när uppgiften kräver det. Grundenheten som gradvis visning byggs av.
Skälet till att använda en hänvisning (i stället för att bädda in innehållet) är kostnaden. En hänvisning är en rad i kontextfönstret. Dokumentet bakom kan innehålla tusentals token, men de kostar ingenting förrän agenten faktiskt följer hänvisningen. Bädda in en driftshandbok på 2 000 token i AGENTS.md, så betalar varje session för den; ersätt den med ”utrullningsprocess: se `internal/deploy.md`”, så laddas den bara in i de sessioner som rullar ut. Agenten följer hänvisningen med ett verktygsanrop när uppgiften passar.
En hänvisning behöver två delar för att fungera: en stabil sökväg och en tillräcklig beskrivning för att agenten ska veta när det är värt att följa den. En naken sökväg ger agenten ingen anledning att följa den; ”se `internal/deploy.md`” utan någon antydan om innehållet hoppas över av en session som hade behövt den. Skriv raden så att den stämmer med hur uppgifter ser ut: ”release, utrullning eller återställning — läs `internal/deploy.md` först”.
Hänvisningar finns överallt när man väl börjar leta: rader i AGENTS.md, beskrivningar av skills (agentramverket läser in beskrivningen; innehållet i skillen väntar bakom den), filnamn i en kataloglista och länkar mellan dokument.
En hänvisning kan också knyta en sekundärkälla tillbaka till den primärkälla den bygger på — komprimeringssammanfattningen som nämner den ursprungliga transkriptionen, dokumentet som nämner källfilen det beskriver. Då kan sekundärkällans förluster återställas: när sammanfattningen inte räcker följer agenten hänvisningen och läser originalet i stället för att arbeta utifrån det sammanfattningen råkade behålla.
Undvik: ”referens” — för torrt; förmedlar inte att det drar in mer kontext att följa den. ”Portal” — för högtravande.
Användning:
”AGENTS.md börjar bli enorm.”
”Det mesta bör vara kontexthänvisningar, inte innehåll. Behåll reglerna som alltid gäller direkt i filen; gör driftshandboken och stilguiden till skills och lämna kvar en kontexthänvisning.”
Skill
En inlärningsbar förmåga samlad som en enhet — instruktioner och resurser för att utföra en uppgift väl, förvarade i miljön tills en kontexthänvisning hämtar in dem i kontextfönstret för den aktuella uppgiften. Enheten för gradvis visning i ett agentramverk.
Skills är en öppen standard som definieras på agentskills.io — ursprungligen utvecklad av Anthropic och sedan antagen av de flesta större agentramverk, så en skill som skrivs en gång fungerar i dem alla. Formatet är en mapp som innehåller:
- En `SKILL.md`-fil — metadata (minst ett namn och en beskrivning) samt själva instruktionerna
- Eventuellt skript som agenten kan köra
- Eventuellt mallar och referensmaterial som instruktionerna hänvisar till
Som standard finns bara namn och beskrivning i kontexten. När agentens uppgift passar läser den in resten. Fram till dess tar skillen nästan ingen plats — en mening eller två av token, oavsett hur omfattande hela instruktionen är.
Detta skiljer skills från AGENTS.md, som läses in i varje session oavsett uppgift. En skill läses när en viss typ av arbete blir aktuell — en release, uppstart av en ny tjänst eller skrivandet av en migrering — och ignoreras resten av tiden.
Undvik: ”verktyg” — ett verktyg är något agenten anropar; en skill är instruktioner den läser.
Användning:
”Var ska jag lägga utrullningshandboken?”
”Som en skill — agenten läser in den bara när uppgiften gäller utrullning. I AGENTS.md skulle den kosta tokens vid varje tur för något vi använder varje vecka.”
Underagent
En agent som startas av en annan agent via ett verktygsanrop. Körs i sin egen session med eget kontextfönster, och skickar tillbaka ett enda verktygsresultat. Skild från en överlämning — den överordnade agenten förväntar sig uttryckligen ett svar; en överlämning har ingen returväg. Kan inte starta fler underagenter — trädet går bara en nivå ned. Underagenter finns till för att isolera kontext, inte för att bygga hierarkier.
Poängen är att hålla störande arbete borta från den överordnade agentens kontext. En bred sökning eller en lång utflykt bland filer producerar sidor med verktygsresultat, varav de flesta bara är relevanta precis så länge det tar att hitta svaret. Körs det i den överordnade agenten stannar allt i dess kontext resten av sessionen. Körs det i en underagent fyller bruset i stället ett tillfälligt fönster — bara slutrapporten hamnar i den överordnades kontext. Rapporten är en sekundärkälla: den överordnade agenten får underagentens redogörelse, inte råresultaten, så allt rapporten utelämnar är osynligt för den.
Underagenter kör också parallellt — en överordnad agent kan starta flera samtidigt för oberoende arbetsdelar.
Användning:
”Grep-resultaten fyller hela min kontext.”
”Starta en underagent för sökningen — den använder sitt eget kontextfönster på bruset och rapporterar de två filsökvägar du faktiskt behöver.”