Po hodině práce na úkolu agent najednou navrhne možnost, kterou jste před půlhodinou odmítli. Nebo znovu popíše soubor, který jste mezitím ručně upravili. Vypadá to jako zapomnětlivost, ve skutečnosti ale agent prostě takhle pracuje: dívá se do okna s omezenou kapacitou. Nevidí celý projekt, jen to, co se do okna dostalo.

Podíváme se, čím je okno zaplněné, jak to zjistit příkazem /context a co dělat, když už v něm skoro nezbývá místo.

Kontext a jeho limit

Kontext jsou informace dostupné modelu pro další krok: vaše zprávy, odpovědi agenta, přečtený kód, výstupy příkazů a pokyny projektu. Kontextové okno určuje, kolik takových informací se do něj vejde najednou. Nejde o volné místo na disku ani o operační paměť vašeho počítače.

Právě tady vzniká častý zmatek. Tři věci, které se snadno zamění:

  • soubory na disku - obsah projektu, který lze přečíst pomocí nástrojů;
  • uložená historie relace - záznam konverzace uložený na disku, který lze znovu otevřít;
  • aktuální kontext - informace, které má model právě teď k dispozici.

Tyto množiny spolu souvisejí, ale nejsou totožné. Soubor může být ve složce, aniž by se kdy dostal do konverzace. A v konverzaci může zůstat verze souboru stará půl hodiny. Věta "vždyť jsme o tom mluvili" proto sama o sobě neznamená, že má agent aktuální informace.

  • Soubor projektu
  • Načtení nástrojem
  • Informace pro odpověď

Mezi existencí souboru a tím, že o něm agent ví, stojí jeho načtení. Claude Code to dělá sám: prohledává projekt, otevírá potřebné soubory a přechází k souvisejícímu kódu. Nemusíte předem vypisovat všechny cesty. Dokud ale soubor nenačte, v konverzaci není.

Objem těchto informací se měří v tokenech - částech textu, na které model rozděluje váš požadavek i přečtený kód. Token může být celé slovo, ale také jen jeho část, takže počet tokenů podle počtu slov nezjistíte.

Co zabírá místo v okně ještě před prvním dotazem

Místo v okně je obsazené ještě předtím, než napíšete první slovo. Příkaz /context ukáže, čím konkrétně:

Výstup příkazu /context: obsazeno 4k z 200k tokenů, rozdělení do kategorií System prompt, Memory files, Skills, Messages a řádek Free space.

Relaci jste právě otevřeli, a už je obsazeno 4k z 200k tokenů. Zabírá je čistě systémová část: System prompt - pokyny pro samotného agenta, Memory files - načtené soubory CLAUDE.md a pravidla projektu, Skills - seznam dostupných dovedností. Řádek Messages, tedy samotná konverzace, je zatím prázdný.

A takto může vypadat přehled po hodině práce, navíc s několika připojenými MCP servery:

/context

  System prompt     3.2k   ( 2%)   systémové pokyny
  System tools     12.1k   ( 6%)   popisy vestavěných nástrojů
  MCP tools        21.4k   (11%)   připojené externí servery
  Memory files      1.8k   ( 1%)   CLAUDE.md, rules, auto memory
  Messages         45.2k   (22%)   vaše konverzace, soubory, logy
  Free space      116.3k   (58%)

Je to ilustrační přehled, ne výstup konkrétní verze: sada řádků a jejich rozložení na obrazovce závisí na verzi Claude Code a na tom, co je v projektu připojeno. Velikost okna zase závisí na modelu. Celkový obraz je ale vždy zhruba stejný a dá se z něj vyvodit několik praktických závěrů:

  • základní systémová část - pokyny pro agenta a popisy jeho vestavěných nástrojů - je přítomná vždy a nemůžete ji ovlivnit;
  • každý připojený MCP server přidá do okna alespoň seznam svých nástrojů, i když jste je ještě nepoužili. Připojit ho "pro jistotu" znamená platit za něj v každé relaci;
  • také rozsáhlý soubor CLAUDE.md se znovu započítá při každém spuštění. Další důvod, proč ho udržovat stručný;
  • během práce roste v podstatě jediný řádek - zprávy. Právě ten stojí za to sledovat.
Vyzkoušejte to na svém projektu

Máte-li Claude Code po ruce, spusťte /context, požádejte agenta o přečtení několika souborů a spusťte příkaz znovu. Řádek se zprávami viditelně naroste a ukáže, kolik stojí jedno načtení.

Co se během práce postupně hromadí

Okno pak plníte vy - a nejen svými slovy. Do kontextu se dostane vše, co agent na váš pokyn přečetl nebo získal:

ZdrojCo přesně zabírá místo
Konverzacevaše zprávy, odpovědi agenta včetně odmítnutých variant
Přečtené souborycelý obsah nebo potřebné úryvky
Výsledky nástrojůvýstup příkazu, nalezené řádky, pozorování z prohlížeče
Materiály dovedností a MCPpokyny použité dovednosti, popis vyvolaného nástroje

Velikost požadavku a kontextu, který z něj vznikne, se může výrazně lišit. Prosba "ukaž celý log" má tři slova, ale její výsledek zabere tisíce řádků. Proto může rozsáhlý výstup uškodit víc než dlouhý dotaz.

Vyplatí se proto přidávat zdroje cíleně. Znak @ před cestou vloží soubor do konverzace a při psaní cesty fungují našeptávače: Přečti @src/reward-flow.js a vysvětli, kde se určuje počet bodů. Ani zmínku o složce pomocí @ ale neberte jako načtení obsahu všech jejích souborů: odkaz na složku zobrazí seznam souborů. Vybírejte zdroj podle toho, na co se ptáte. Právě tento rozdíl mezi odkazem na soubor a na složku popisuje dokumentace k odkazování na soubory.

Ještě jedna drobnost. Pokud jste potom ručně přepsali deset na dvacet, předchozí odpověď se sama neaktualizuje. Před dalším výstupem požádejte agenta, aby načetl aktuální obsah. Odkaz na jednou přečtený soubor neudělá ze starého textu v konverzaci živou kopii souboru na disku.

Když dochází místo

Okno není nafukovací, relace ale neskončí uprostřed věty. Jak se okno plní, Claude Code provádí kompaktaci: nahradí podrobnou historii stručným shrnutím a uvolní místo. Probíhá automaticky a její načasování závisí na modelu a nastavení.

Kompaktaci můžete spustit i sami příkazem /compact. Výhodou ručního spuštění je, že okamžik určujete vy - třeba před novou větší částí práce - a můžete určit, co je důležité zachovat:

/compact Zachovej cíl úkolu a rozsah úprav,
odmítnutou variantu se samostatným handlerem
a další krok: ověřit vymazání vyhledávacího pole.

To hlavní ke kompaktaci: v okně zůstane převyprávění, ne konverzace. Detail, který se do shrnutí nedostal, z okna zmizel. Po kompaktaci nemá smysl namítat "vždyť jsi s tím před dvaceti minutami souhlasil" - potřebnou informaci je jednodušší znovu načíst ze souboru. Pokyny projektu se přitom neztratí: kořenový soubor CLAUDE.md se načte znovu.

Druhý příkaz, /clear, nic nekompaktuje. Otevře novou konverzaci; předchozí zůstane uložená a dostupná přes /resume. Soubory projektu se nezmění a pokyny projektu se načtou jako obvykle.

PříkazCo děláKdy ho zvolit
/contextukáže, čím je okno zaplněnénení jasné, kam se místo podělo
/compactshrne historii do stručného přehleduúkol pokračuje, ale historie už je dlouhá
/clearzačne novou konverzacizměnil se úkol

Pravidlo je jednoduché: stejný úkol - proveďte kompaktaci, jiný úkol - začněte novou konverzaci. Mazat konverzaci po každém příkazu není třeba: dokud řešíte jeden problém, jeho pozorování a upřesnění pracují pro vás. Před novým tématem se ale hodí zapsat důležité zjištění do pár řádků: "odměna se nastavuje v src/reward-config.js, přidělování probíhá v src/reward-flow.js". Je to vodítko, kam se vrátit, aniž byste museli přepisovat celou konverzaci.

Jak šetřit místo v okně

Žádný z těchto tří příkazů nebudete potřebovat tak často, když okno od začátku nezaplníte zbytečnostmi. Nejvíc pomůže několik návyků:

  • Ptejte se konkrétně. Na vágní zadání agent reaguje průzkumem: čte zbytečné soubory a zkouší různé možnosti. Když uvedete konkrétní soubor a očekávaný výsledek, ušetříte místo i čas.
  • Nevkládejte do konverzace všechno bez rozdílu. Když řešíte selhání testu, potřebujete řádky kolem chyby, ne celý log.
  • Pokyny projektu udržujte stručné. Soubor CLAUDE.md se načítá v každé relaci. Rozsáhlou referenční dokumentaci raději uložte do samostatných souborů, které agent načte podle potřeby.
  • Odpojujte nepotřebné MCP servery. Server připojený "pro jistotu" zabírá místo při každém spuštění, ale nepřináší žádný užitek.
  • Rozsáhlý průzkum svěřte subagentovi. Pracuje ve vlastním okně a vrací shrnutí; desítky přečtených souborů zůstávají u něj.

Co si zapamatovat

Kontext tvoří to, co jste položili na stůl, ne všechno, co "je v projektu". Soubor na disku, záznam v historii a informace v aktuálním okně jsou tři různé věci. Jejich záměna vysvětluje většinu podivných odpovědí.

Všechno se nakonec točí kolem tří kroků: zjistit zaplnění příkazem /context, předat potřebný zdroj pomocí @ a včas se rozhodnout, zda konverzaci zkrátit, nebo začít novou. Vybírejte podle situace - kompaktace nenahradí načtení potřebného souboru a předání souboru za vás neověří agentovo uvažování.