Přeskočit na obsah

Lekce 04.2: Likvidace balastu (Killing Bloat)

⏱️ 3 min čtení Lekce 04.2

🧠 Mentální model & teoretický rozbor

Kontextový balast (Context Bloat) je tichým zabijákem inteligence agenta. Balastem rozumíme jakýkoliv text v kontextovém okně, který:

  1. Nepřináší žádnou novou informaci pro řešení aktuálního úkolu.
  2. Rozmělňuje pozornost modelu nad podstatnými pravidly.
  3. Stojí peníze při každém dalším odeslání požadavku na API.
PŘÍKLAD BALASTU:
Spuštění `npm test` vygeneruje:
[============================= 100 % =============================]
✓ 148 testů prošlo (zelená)
✗ 1 test selhal: UserProfile > should render avatar
at src/components/__tests__/UserProfile.test.tsx:42:15
[Následuje 800 řádků stack trace a výpisů z jiných testů]
Z celého výpisu má pro agenta hodnotu POUZE 5 řádků s chybou.
Zbylých 795 řádků je 100% čistý balast!

🏢 Realistický scénář z praxe

Agent řeší chybu v jednom komponentním testu.

  • Špatný postup: Agent spustí npm test. Do kontextu se vysype výstup ze 70 testů (12 000 tokenů). V dalším kroku agent zkouší opravu a znovu spustí npm test (dalších 12 000 tokenů). Během 3 kroků je kontext plný identických zelených testů a model přestává vnímat zadání.
  • Správný postup: Vývojář instruuje agenta: npm test -- UserProfile.test.tsx --bail 1. Do kontextu vstoupí pouhých 30 řádků přesně k věci.

💻 Konkrétní ukázky kódu & promptů

Filtrování terminálových výstupů pro ochranu kontextu:

Terminál
# 1. Spuštění testu s ukončením při první chybě a tichým módem
npx vitest run src/components/UserProfile.test.tsx --bail 1 --reporter=basic
# 2. Omezení délky výpisu pomocí Unix nástrojů (head/tail)
npm run build 2>&1 | tail -n 25
# 3. Vyhledání chyb v systémovém logu bez čtení celého souboru
grep -i "error" /var/log/app.log | tail -n 20

Mantinel v CLAUDE.md:

## Pravidla pro výstupy příkazů
- Nikdy nespouštěj globální testy projektu. Vždy filtruj na konkrétní soubor.
- Při prohledávání souborů používej `grep` nebo `ripgrep` s limitem na počet výsledků (max 10 řádků).

⚠️ Analýza selhání & Anti-patterns

Chyba: Zobrazení minifikovaného bundlu nebo sourcemapy

Agent otevře soubor dist/bundle.js.map.

  • Sourcemapa má velikost 2 MB (přes 400 000 tokenů).
  • Kontext okamžitě exploduje, překročí maximální limit a sezení spadne s chybou ContextWindowExceededError.
  • Obrana: Složky dist a build musí být striktně v .gitignore.

🛠️ Inženýrský postup krok za krokem (Playbook)

  1. Filtrujte testy: Spouštějte pouze test pro právě editovaný soubor.
  2. Ořezávejte logy: Používejte roury | head -n 30 nebo | grep -C 5 "Error".
  3. Čtěte jen části souborů: Pokud soubor přesahuje 200 řádků, nechte agenta číst pouze relevantní blok řádků.

🧪 Praktické cvičení (Hands-on Lab)

Úkol:

Vyzkoušejte si oříznutí výstupu v terminálu.

Kroky:

  1. Spusťte příkaz, který generuje dlouhý výstup (např. git log nebo výpis balíčků npm list).
  2. Sledujte, jak výstup zaplní obrazovku.
  3. Nyní spusťte stejný příkaz s filtrem: git log -n 3 --oneline.
  4. Porovnejte množství předaných informací – druhý příkaz přenesl 90 % užitečné hodnoty při 5 % objemu tokenů!