Spring til indhold
DAbuild-your-owncontext-compaction

Jeg clearer ikke min kontekst mere

Standardrådet var: ryd konteksten og start forfra. Så kiggede jeg på 239 af mine egne compaction-noter — og holdt op med at cleare.

Scoret for

Standardrådet har lydt ens i et år: når din agent bliver dum, så ryd konteksten og start forfra. Det råd har jeg også selv givet — og jeg gør det ikke længere.

Pointen i det her indlæg er egentlig bare den ene sætning: at cleare er hukommelsestab — at compacte er en overlevering. Resten er, hvordan jeg skiftede mening, og hvorfor jeg er holdt op med at give det gamle råd.

Øjeblikket i et studie

Jeg sad i Verbos-podcastens studie og optog afsnit 113 om "loop engineering", da samtalen ramte præcis det her. Kasper, en af værterne, sagde den replik vi alle har gentaget det sidste år: clear that freaking context window. Og jeg hørte mig selv svare "det gør jeg ikke længere" — og så blev jeg nødt til at forklare hvorfor.

Her er det stykke af samtalen. Kapitlerne hopper til de fire vendepunkter.

Verbos #113 — compact vs. clear
2026-06-17
0:00 / 6:30

6½ minutter fra "Loop Engineering"-afsnittet, hvor vi havner i clear-vs-compact. Uredigeret, på dansk. Transskriberet med MAI-Transcribe 1.5.

Hør hele afsnit #113 "Loop Engineering" på Verbos Podcast →

Kapitler

Det, der bed sig fast, var en replik om compaction sidst i klippet:

Man skal gerne compacte med en eller anden prompt — hvad er det, du egentlig skal holde videre til næste? Sådan så det ikke bare er tilfældigt, hvad der bliver compactet.

Jeg gik hjem og tjekkede, om jeg selv gjorde det. Det gjorde jeg ikke.

Så jeg kiggede på 239 af mine egne

Jeg har et lille værktøj, pks brain, der læser alle mine Claude Code-sessioner. Det fangede ikke compaction som noget særligt — en compaction-opsummering lå bare som en lang "prompt" i bunken. Så jeg brugte en aften på at lære det at tagge dem: er det her en compaction? Skete den automatisk, fordi kontekstvinduet løb fuldt, eller skrev jeg /compact selv?

Bagefter havde jeg 239 rigtige compactions fra min egen maskine at kigge på. 218 automatiske, resten manuelle. På tværs af 39 forskellige versioner af Claude Code.

Det første, der overraskede mig: hvor ens de er.

Det er ikke et resumé. Det er en formular

Jeg troede, compaction var en slags "skriv et resumé af vores samtale". Det er det ikke. Det er en fast formular med ni felter, i samme rækkefølge, hver gang. 214 ud af de 239 brugte præcis de samme ni overskrifter. Outputtet er omtrent lige langt hver gang — medianen ligger på 14.405 tegn. En model, der bare "opsummerede frit", ville aldrig ramme så stabilt. Det her er en prompt, der er bygget ind i værktøjet.

De ni felter er en overlevering, ikke et referat:

  • Primary Request and Intent — hvad vi prøver at opnå
  • Key Technical Concepts og Files and Code Sections — hvad der findes, helt ned til filstier og kode
  • Errors and Fixes — hvad der gik i stykker, og hvad der fiksede det
  • Problem Solving — hvordan vi tænkte
  • All User Messages — mine egne ord, ordret
  • Pending Tasks, Current Work og til allersidst Optional Next Step

Det sidste felt er det vigtigste. Den ene næste handling står nederst — det friskeste i modellens hoved, når den fortsætter. Sådan ser en rigtig en ud i bunden (en af mine egne, om netop at genoptage en timet-ud session):

7. Pending Tasks:
   - Investigate why `claude --resume <sessionId>` causes the "main"
     tmux window to exit immediately

9. Optional Next Step:
   ... the next step is to find the actual command Claude was run with ...

If you need specific details from before compaction (like exact code
snippets, error messages, or content you generated), read the full
transcript at: /home/node/.claude/projects/.../6b3d5582-....jsonl
Continue the conversation from where it left off without asking the user
any further questions. Pick up the last task as if the break never happened.

Læg mærke til de to sidste linjer. Opsummeringen er ikke skrevet til mig. Den er skrevet til den næste udgave af agenten, med en ordre om at samle tråden op, som om pausen aldrig var sket. Og den efterlader en sti tilbage til det fulde transcript, hvis den mangler en detalje. Komprimeret som standard, men aldrig en blindgyde.

Det, som clear smider væk

Her er tallet, der fik mig til at skifte mening: af mine 239 compactions havde 239 et udfyldt "Pending Tasks"-felt og en konkret "Optional Next Step". Hver eneste. Det er den liste over, hvad der mangler, og hvad det næste skridt er — plus filerne, fejlene og mine egne ord.

clear beholder ingenting af det. Hver gang. Det er hele argumentet i to tal: 239 mod 0.

Den bedste måde, jeg kan forklare det på: clear er den nye vagt, der møder ind uden at vide noget. compact er den gamle vagt, der efterlader en overlevering — og den samme person, der arbejder videre. De fleste gange vil du have overleveringen.

Det ene håndtag, jeg ikke brugte

Tilbage til replikken fra studiet: du skal compacte med en prompt. Det er det eneste, du faktisk styrer ved compaction. Auto-compact kører den faste formular. Men når du selv skriver /compact, kan du give den en linje med om, hvad der er vigtigt at bære videre — så det ikke bliver tilfældigt, hvad der ryger med, og hvad der bliver tabt som støj.

Ud af mine 239 compactions havde jeg gjort det to gange. Her er den ene, ordret:

human prompt
1 lines
Seems like a good place to compact - fokus on what is the next step

To gange ud af 239. Jeg lod det vigtigste håndtag stå urørt næsten hver gang — og det var præcis det, podcasten sagde, man burde bruge. Det er nok den enkleste vane, jeg har ændret siden: når jeg compacter med vilje, skriver jeg en sætning med om, hvor jeg er på vej hen.

Hvornår clear stadig vinder

Jeg er ikke holdt op med at cleare af religion. Der er stadig gange, hvor en ren tavle er det rigtige:

Når tråden er færdig — opgaven er løst og committet — er der ingen grund til at betale for en 14.000-tegns overleveringsnote, der ikke bærer noget videre. Når jeg starter på noget helt nyt og urelateret. Og når konteksten er forgiftet: jeg er røget ned i et hul, jeg ikke vil have med videre, og en frisk session er hele pointen.

Og compaction er ikke gratis. Den koster et ekstra modelkald, den fyrer automatisk, om du vil det eller ej, og den bevarer hvad bedre end hvorfor — fravalgte alternativer og begrundelser overlever sjældent. Den farligste fejl er, når en opsummering tager fejl med fuld selvtillid: den ser ikke i stykker ud, den ser perfekt ud. Så stol på det fremadrettede — Pending Tasks, næste skridt, fillisten — men verificér enhver påstand om, at noget virker, før du bygger videre på den.

Men standardrådet — clear ofte — er forkert nu. Modellerne er blevet gode nok til at holde tråden langt ned i konteksten, og compaction er blevet en ordentlig overlevering. Så jeg clearer ikke min kontekst mere. Jeg lader den compacte — og en gang imellem fortæller jeg den, hvor vi er på vej hen.