Lekce 02.5: Smart Zone / Dumb Zone (Smart Zone / Dumb Zone)
🧠 Mentální model & teoretický rozbor
Toto je nejdůležitější mentální koncept pro každého, kdo to s programováním pomocí AI myslí vážně:
[!CAUTION] Kapacita kontextového okna NENÍ to samé jako kapacita logického uvažování.
Moderní modely inzerují obří kontextová okna: Google Gemini 1 000 000 až 2 000 000 tokenů, Anthropic Claude 200 000 tokenů. To u webových vývojářů vyvolává falešný dojem: „Do Gemini se vejde celá má aplikace, databáze i dokumentace najednou, nemusím nic řešit!“ Tento předpoklad je fatální omyl. I u milionového okna výzkumy mechanismu pozornosti (Transformer Attention) prokazují fenomén Attention Degradation a Lost in the Middle:
STAV POZORNOSTI A ROZPOČET LOGIKY:┌───────────────────────────┬─────────────────────────────────────────────┐│ SMART ZONE (Špičkové IQ) │ DUMB ZONE (Pozornost rozptýlená balastem) │├───────────────────────────┼─────────────────────────────────────────────┤│ • Špičková pozornost │ • Ignorování pravidel v AGENTS.md/CLAUDE.md ││ • Přísné dodržování typů │ • Halucinace neexistujících parametrů ││ • Nulové zmatení │ • Zacyklení ve stejné chybě v testech ││ • Okamžitá oprava chyb │ • Lenost (vynechávání kódu přes // TODO) │└───────────────────────────┴─────────────────────────────────────────────┘V Smart Zone (první desítky tisíc tokenů) má model dostatek kapacity pozornosti, aby propojil každé slovo z vašeho inženýrského zadání se systémovými pravidly a kódem. V Dumb Zone je matice pozornosti tak rozmělněná mezi tisíce nepodstatných tokenů z logů testů a otevřených souborů, že model začíná fungovat povrchně, ignoruje typové restrikce a generuje nekvalitní kód (slop).
🏢 Realistický scénář z praxe
Vývojář refaktoruje složitý stavový automat v Reactu:
- Prvních 15 minut (kontext na 15 %): Agent navrhuje precizní TypeScript discriminated unions, perfektně ošetřuje všechny stavy a testy procházejí na první pokus.
- Po 45 minutách (kontext na 55 % po mnoha výpisech z testů): Agent náhle navrhne změnu, která přepíše discriminated union na
any. Když ho vývojář upozorní, agent se omluví, ale v dalším kroku smaže 3 klíčové handlery a zanechá v kódu komentář// TODO: implement rest. - Co se stalo? Model neohloupnul fyzicky – pouze spadl hluboko do Dumb Zone.
💻 Konkrétní ukázky kódu & promptů
Jak včas rozpoznat symptomy Dumb Zone:
| Symptom | Co to znamená | Okamžitá inženýrská akce |
|---|---|---|
| Agent se začne omlouvat („Omlouvám se za přehlédnutí…“), ale udělá stejnou chybu. | Model ztratil pozornost nad mantinelem. | Zastavit sezení (Ctrl+C), nehádat se. |
V kódu se začnou objevovat zástupné komentáře // zbytek kódu zůstává stejný. | Model šetří výstupní tokeny a ztrácí přehled o souboru. | Prozkoumat velikost kontextu (/cost). |
| Agent navrhne instalaci knihovny, kterou už v projektu máte. | Agent zapomněl obsah package.json. | Čas na Handoff nebo /clear. |
⚠️ Analýza selhání & Anti-patterns
Chyba: Snaha “dovysvětlit” problém v Dumb Zone
Když je model v Dumb Zone, většina lidí napíše ještě delší a naštvanější prompt: „Už jsem ti třikrát říkal, že nemáš používat var a že máš zachovat tyhle tři metody! Dělej to pořádně!“
- Tento dlouhý prompt přidá dalších 500 tokenů do už tak přeplněného kontextu.
- Model se dostane ještě hlouběji do Dumb Zone a situace se jen zhorší.
🛠️ Inženýrský postup krok za krokem (Playbook)
- Hlídejte semafor kontextu:
- 🟢 0 – 30 %: Zelená zóna. Plná svoboda práce, experimentování, refaktoring.
- 🟡 30 – 45 %: Oranžová zóna. Dokončete rozdělaný krok, vyhněte se otevírání dalších souborů.
- 🔴 Nad 45 %: Červená zóna (Dumb Zone). STOP. Uložte změny, sepište předávací protokol a zadejte
/clear.
- Přechod přes Handoff: Nikdy nepokračujte v novém úkolu v červené zóně.
🧪 Praktické cvičení (Hands-on Lab)
Úkol:
Naučte se číst indikátory zaplnění a identifikovat hranici své Smart Zone.
Kroky:
- Otevřete Claude Code.
- Zadejte příkaz
/costa spočítejte si, kolik procent z 200k okna aktuálně zabírají vaše systémové instrukce. - Stanovte si pevné pravidlo: „Jakmile v tomto projektu dosáhnu 50 000 tokenů, okamžitě provádím commit a /clear.“