Risker med progressiv sammanfattning
Tal, procenttal och datum blir vaga vid sammanfattning.
Risker med progressiv sammanfattning är en gratis lektion i Claude Architect på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Claude Architect, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Claude Architect innehåller totalt 4 lektioner.
Varför sammanfattningar glider
Långvariga agenter kan inte behålla varje tur i kontextfönstret. En vanlig lösning är progressiv sammanfattning: med jämna mellanrum komprimeras tidigare meddelanden till en kortare sammanfattning så att konversationen fortfarande får plats.
Det fungerar för berättelsens flöde. Men det finns ett allvarligt felläge inom området Context Management & Reliability: när löptext komprimeras blir siffror, procenttal och datum vaga. ”$1,284.50 refunded on 2026-03-14” blir obemärkt ”en återbetalning utfärdades nyligen.”
Vad som faktiskt går förlorat
Sammanfattning optimerar för kärnan, inte precision. Modellen behåller berättelsens huvuddrag och tar bort de exakta token som förmedlar transaktionsbetydelse.
- Belopp: "$4,999.00" → "en stor debitering"
- Procenttal: "a 17.5% discount" → "en rabatt"
- Datum: "order placed 2026-01-09" → "tidigare i år"
- ID:n: "order #A-88231" → "beställningen"
Detta är exakt de uppgifter som efterföljande verktyg och policykontroller är beroende av.
/compact medför samma risk
I Claude Code komprimerar /compact den pågående kontexten för att frigöra utrymme — samma mekanism, samma risk. Efter en komprimering kan radnumren i en stack trace, det exakta påståendet i ett misslyckat test eller ett konfigurationsvärde bli otydliga.
Lösningen är inte att undvika komprimering, utan att se till att de exakta uppgifter du behöver senare inte finns enbart i den del som komprimeras.
# Claude Code session: compaction is convenient but lossy
/compact # compresses earlier turns -> numbers/dates can become vague
# Safer: persist exact facts that must survive
/memory # write durable facts into CLAUDE.md before compactingGrundmönstret: ett block med fakta om ärendet
Den lösning som krävs på tentan är enkel: flytta transaktionsfakta till ett separat block med "fakta om ärendet", som bevaras ordagrant utanför sammanfattningen.
Sammanfatta den samtalsbaserade berättelsen fritt — men underhåll ett strukturerat block som endast utökas, med exakta värden som aldrig skickas genom sammanfattaren. Sammanfattningen håller kontexten kostnadseffektiv; blocket med fakta om ärendet bevarar exakta siffror.
Strukturera fakta om ärendet
Håll blocket maskinläsbart och ordagrant. Varje post bevarar originalvärdet exakt som det angavs, med tillräcklig märkning för att kunna återanvändas senare.
Detta block infogas på nytt i systemprompten vid varje tur — kom ihåg att API:t inte bevarar något tillstånd på serversidan, så ni måste skicka det igen som en del av den fullständiga meddelandehistoriken i varje begäran.
case_facts = {
"customer_id": "CUS-44190",
"order_id": "A-88231",
"order_date": "2026-01-09",
"order_total": "4999.00", # exact, never rounded
"discount_pct": "17.5",
"refund_amount": "1284.50",
"refund_date": "2026-03-14",
}
system = (
"You are a support agent.\n"
"## CASE FACTS (verbatim, authoritative)\n"
f"{json.dumps(case_facts, indent=2)}\n"
"## CONVERSATION SUMMARY (may be lossy)\n"
f"{rolling_summary}"
)Sammanfatta berättelsen, bevara fakta
Dela upp er rutin för kontexthantering i två delar. När ni komprimerar ska sammanfattaren köras endast på dialogen, medan blocket med fakta om ärendet lämnas orört.
Ordningen spelar också roll: placera fakta nära början och den informationsförlustbehäftade sammanfattningen längre ned. Modellen uppmärksammar början och slutet av kontexten mer än mitten (lost-in-the-middle), så auktoritativa siffror bör placeras där uppmärksamheten är som starkast.
def build_context(history, case_facts, max_dialogue_turns=8):
recent = history[-max_dialogue_turns:]
older = history[:-max_dialogue_turns]
# Compress ONLY the narrative; facts are excluded from summarization
summary = summarize(older) if older else ""
return {
"facts_block": case_facts, # verbatim, top of context
"summary": summary, # lossy, fine for narrative
"recent": recent,
}Extrahera fakta när de fångas upp
Försök inte återskapa exakta siffror efter att de har sammanfattats bort — då är källan redan borta. Fånga upp dem så fort de visas, direkt från verktygsresultaten.
Korta ned utförliga verktygsresultat till relevanta fält innan de hamnar i historiken, men styr först de exakta värden ni kommer att behöva till blocket med fakta om ärendet. Använd strukturerad output (ett verktygsanrop med ett JSON Schema) så att extraheringen blir tillförlitlig och inte bygger på en gissning med regex.
# After lookup_order returns, capture facts verbatim before trimming
order = tool_result["order"]
case_facts.update({
"order_id": order["id"],
"order_total": order["total"], # keep raw string/decimal
"order_date": order["created_at"],
})
# Now the full verbose payload can be trimmed/summarized safelyVarför retry inte räddar er
En frestande reflex är att helt enkelt försöka igen med återkoppling om ett senare svar anger fel belopp. Men retry-with-feedback korrigerar endast format-, struktur- eller räknefel — ni skickar det ursprungliga dokumentet, den felaktiga outputen och det exakta valideringsfelet igen.
När ett tal har sammanfattats bort helt ur kontexten saknas informationen helt enkelt i källan. Retry hjälper inte när information saknas. Förebyggande åtgärder (faktablocket) är den enda tillförlitliga lösningen.
Skydda hårda regler med hooks, inte minnet
När ett tal styr en konsekvensrik åtgärd — exempelvis en återbetalningströskel — får ni aldrig låta ett sammanfattat, otydligt belopp styra beslutet. Tillämpa regeln deterministiskt.
En hook för PostToolUse eller utgående anrop läser det ordagranna värdet från blocket med fakta om ärendet och blockerar policyöverträdelser varje gång. Prompter är cirka 90 % sannolikhetsbaserade; hooks är deterministiska. Använd hooks när fel får ekonomiska, juridiska eller säkerhetsmässiga konsekvenser.
{
"hooks": {
"PreToolUse": [{
"matcher": "process_refund",
"command": "check_refund_limit.py"
}]
}
}
# check_refund_limit.py reads case_facts.refund_amount (verbatim),
# not the lossy summary, and exits non-zero if > $500.Bevara källhänvisningen tillsammans med fakta
Vid forskning och extrahering blir ett ordagrant faktum mer tillförlitligt om det har en källhänvisning: käll-URL:en eller dokumentnamnet, det exakta citatet och publiceringsdatumet.
Datum löser ofta upp uppenbara motsägelser mellan motstridiga siffror — "revenue was $2.1M" jämfört med "$2.4M" återspeglar ofta bara olika kvartal. Anteckna källorna till motstridiga siffror i stället för att låta en sammanfattning välja en i tysthet och göra resten otydligt.
fact = {
"claim": "Q4 revenue was 2.4M USD",
"value": "2400000",
"source_doc": "FY26-Q4-earnings.pdf",
"quote": "Total revenue for Q4 reached $2.4M.",
"published": "2026-02-02",
}Ny session jämfört med --resume
När en lång session har komprimerats många gånger kan en återupptagen tråd innehålla en försämrad sammanfattning — och återupptagna verktygsresultat kan vara inaktuella om kodbasen har ändrats. Ibland är en ny session som initieras med en strukturerad sammanfattning (ert rena block med fakta om ärendet) bättre än --resume.
Det strukturerade blocket är bärare: det gör att ni kan börja om rent utan att förlora de exakta siffror och datum som arbetet bygger på.
# Long thread got fuzzy after repeated /compact?
# Start fresh and hand over the verbatim facts block:
claude -p "Resume task. ## CASE FACTS (authoritative):
$(cat case_facts.json)"
# vs. claude --resume my-session (may carry a degraded summary
# and stale tool results)Snabb kontroll: skydda siffrorna
En kundsupportagent körs i många turer och sammanfattar regelbundet tidigare meddelanden för att hålla sig inom kontextfönstret. QA upptäcker att agenten nu återger återbetalningsbelopp och beställningsdatum som är något felaktiga eller otydliga. Vilken lösning är korrekt enligt tentan?
Sammanfattning: bevara fakta ordagrant
Viktiga slutsatser för området kontexthantering och tillförlitlighet:
- Progressiv sammanfattning (och /compact) gör siffror, procenttal och datum otydliga — kärnan överlever, men inte precisionen.
- Lösning: underhåll ett separat block med fakta om ärendet, ordagrant och utanför sammanfattningen; sammanfatta endast berättelsen.
- Fånga fakta vid källan från verktygsresultaten; försök aldrig återskapa dem när de väl är borta — retry kan inte återställa information som saknas.
- Placera fakta nära kontextens början (motverka lost-in-the-middle); bevara källhänvisningar och datum vid forskning.
- Styr konsekvensrika tröskelvärden med deterministiska hooks som läser ordagranna värden, och föredra en ny session med en strukturerad sammanfattning framför en försämrad återupptagning.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 26
- Lektioner
- 104
Vanliga frågor
Är lektionen ”Risker med progressiv sammanfattning” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Claude Architect, inklusive ”Risker med progressiv sammanfattning”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Claude Architect innehåller totalt 4 lektioner.
Vad lär jag mig i ”Risker med progressiv sammanfattning”?
Tal, procenttal och datum blir vaga vid sammanfattning. Ni övar på Claude Architect med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Claude Architect?
Du behöver inga förkunskaper. Utbildningen i Claude Architect på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Risker med progressiv sammanfattning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Claude Architect-lektionen?
Ja. Varje Claude Architect-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Hela historiken krävs
- Risker med progressiv sammanfattning
- Effekten av det som går förlorat i mitten
- Block med fakta från fallet och trimning av utdata