Přepnuli jste model příkazem /model, zopakovali úlohu a odpověď byla jiná. Ale agent přečetl CLAUDE.md stejně jako předtím, o povolení před spuštěním příkazu požádal také a hook se spustil jako dřív. To znamená, že nic z toho není součástí modelu.

Podíváme se, kde končí model a začíná program kolem něj. Pomůže vám to pochopit, co zkontrolovat, když agent chybuje.

Model a obal

Model zpracuje předaný kontext a vytvoří odpověď nebo požadavek na nástroj. Například vybere soubor, který má přečíst, a příkaz, který má spustit. K provedení těchto akcí je potřeba program kolem modelu: přistupuje k souborům, spouští příkazy a vrací modelu výsledky.

V anglických materiálech se takovému programu říká harness. Doslova to znamená "postroj" (ano, ten koňský), česky se ale lépe hodí obal. Dokumentace Anthropic to říká přímo: Claude Code je obal a Claude je model uvnitř. S výrazem harness se setkáte i v článcích o agentech obecně, takže stojí za to si ho zapamatovat.

Požadavek zleva vstupuje do obalu. Uprostřed obalu je model a kolem něj tři skupiny: co model vidí, čím může jednat a co ho zastaví. Obal provede požadavek na nástroj a vrátí jeho výsledek modelu, který zvolí další krok. Vpravo je výsledek práce v projektuObal (harness)cyklusPožadavekModelvolba krokuCo model vidípokyny, CLAUDE.mdČím model jednánástroje, MCP, subagentiCo zastaví modeloprávnění, hooksVýsledekv projektu
Pracovní cyklus: požadavek na nástroj, výsledek, další krok

Obal na schématu shromažďuje kontext, kontroluje oprávnění a provádí požadavky modelu na nástroje. Šipka pod modelem znázorňuje cyklus: výsledek nástroje se vrátí do kontextu a model vybere další krok, nebo dokončí odpověď. Hotová odpověď ještě nedokazuje, že je úloha vyřešená - výsledek je potřeba ověřit.

Co jste už nastavovali

Takhle se části obalu projevují v Claude Code. Soubory a příkazy v pravém sloupci vám pomohou najít jednotlivé mechanismy v projektu nebo relaci.

Část obaluCo děláKde ji najít
Systémové pokynyClaude Code je přidá do kontextu před vaší první zprávou: jak pracovat, jaké jsou k dispozici nástroje a ve které složce probíhá relaceřádek System prompt ve výstupu /context
CLAUDE.mdpravidla projektu, která agent čte na začátku relacesoubor v kořenové složce projektu
Nástroječtení a úpravy souborů, vyhledávání, příkazy v termináluřádky jako Read(...) a Bash(...) v průběhu práce
Skillspokyny, které si model může vybrat podle úlohy nebo které můžete vyvolat přímo.claude/skills/, /skills
MCPmost k externím službám a aktuálním datům/mcp
Subagentisamostatní pomocníci s vlastním kontextem.claude/agents/
Žádosti o oprávněníobal kontroluje, zda je akce povolená, a v případě potřeby si vyžádá váš souhlasdotaz v terminálu před příkazem nebo úpravou
Hooksvaše příkazy na události relace; spouštějí se bez rozhodnutí modelu/hooks
Kontext a relaceco model právě vidí a ke kterému okamžiku se lze vrátit/context, /clear, /rewind
Cyklus agentavrací modelu výsledky nástrojů, aby mohl zvolit další krokněkolik po sobě jdoucích akcí v reakci na jeden požadavek

CLAUDE.md a skills dávají modelu pokyny. Model může pravidlo špatně pochopit nebo ho přehlédnout. Kontrola oprávnění a příkazy nastavené v hooks se vykonávají programově: výsledek závisí na zadaných podmínkách a samotných příkazech.

Plugins v tabulce nejsou, protože nejde o samostatnou součást, ale o balíček: několik skills, příkazů nebo hooks, které se instalují najednou.

Jeden model, různé chování

Představte si webový chat bez přístupu k vašemu projektu a terminálu. Má vlastní obal: historii konverzace, rozhraní, někdy také vyhledávání na internetu nebo nahrávání souborů. V takovém chatu může model vysvětlit úpravu a ukázat kód, zatímco Claude Code s přístupem k projektu ji může zapsat do souboru. Model je stejný, možnosti se liší, protože se liší program kolem něj.

S příkazem /model je to naopak. Model se změní, obal zůstane stejný, takže pravidla, nástroje a žádosti o oprávnění nikam nezmizí.

Na modelu závisí, jak pochopí úlohu, vybere nástroje a vyhodnotí jejich výsledky. Obal shromažďuje kontext, zpřístupňuje nástroje a kontroluje oprávnění. Model může například požádat o chybějící soubor a obal ho přečte a vrátí jeho obsah.

Jak to vypadá v Claude Code

Agent sebejistě popisuje funkci, která v projektu už dávno není? Nejdřív ověřte, jestli má v kontextu aktuální kód. Můžete ho předat pomocí @ a cesty k souboru, vložit do zprávy nebo načíst nástrojem pro čtení. V prvních dvou případech nemusí dojít k samostatnému volání nástroje pro čtení. Pokud se nástroj použil, podívejte se, co vrátil: obsah souboru, nebo chybu přístupu či cesty. Pokud kód v kontextu chybí, předejte ho nebo požádejte o přečtení souboru. Jestliže už ho agent má, ale jeho závěr je chybný, ověřte úvahu podle konkrétních řádků. Pomoci může i jiný model.

Co upravit, když agent chybuje

Jednorázovou chybu nejsnáze opravíte krátkou poznámkou: "tohle není správný soubor, podívej se do src/utils.js". Pokud se ale chyba opakuje v každé relaci, zkontrolujte pokyny a dostupná data. Možná musíte pokaždé znovu vysvětlovat stejné pravidlo.

V praxi to může vypadat třeba takhle:

  • agent v každé relaci zapomene pravidlo projektu, například že se testy spouštějí příkazem npm test - zapište ho do CLAUDE.md. Důležité pravidlo je spolehlivější výslovně uložit do tohoto souboru než spoléhat na připomínku v konverzaci;
  • stejný postup vysvětlujete už potřetí - je čas převést ho do skillu. Agent si může pokyn načíst podle úlohy. V průběhu práce ověřte, že se skill spustil; pokud ne, zavolejte ho sami příkazem /skill-name, kde místo skill-name dosadíte jeho skutečný název;
  • agent hádá, protože nemá potřebná data - předejte mu je: přidejte soubor do kontextu pomocí @ nebo připojte externí službu přes MCP. Domlouváním se hádání nevyřeší;
  • agent napíše "hotovo", ale nespustí kontrolu - hook pro událost Stop může spustit testy sám, bez rozhodnutí modelu. Výsledek práce posuzujete pořád vy, podle výstupu příkazu, ne podle zprávy;
  • potřebná data jsou dostupná a agent si je přečetl, ale v náročném uvažování se ztrácí - vyzkoušejte jiný model příkazem /model a porovnejte výsledek na stejné úloze.
Ověřte příčinu

Nejdřív ověřte, jestli jsou potřebná data a nástroje dostupné. Pokud je problém v uvažování, můžete rovnou zkusit jiný model. Porovnávejte kvalitu výsledku i spotřebu v /usage: opakované neúspěšné pokusy také spotřebovávají limit i váš čas.