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.
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 obalu | Co dělá | Kde ji najít |
|---|---|---|
| Systémové pokyny | Claude 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.md | pravidla projektu, která agent čte na začátku relace | soubor 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 |
| Skills | pokyny, které si model může vybrat podle úlohy nebo které můžete vyvolat přímo | .claude/skills/, /skills |
| MCP | most k externím službám a aktuálním datům | /mcp |
| Subagenti | samostatní 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áš souhlas | dotaz v terminálu před příkazem nebo úpravou |
| Hooks | vaše příkazy na události relace; spouštějí se bez rozhodnutí modelu | /hooks |
| Kontext a relace | co model právě vidí a ke kterému okamžiku se lze vrátit | /context, /clear, /rewind |
| Cyklus agenta | vrací modelu výsledky nástrojů, aby mohl zvolit další krok | ně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.
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 doCLAUDE.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
Stopmůž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
/modela porovnejte výsledek na stejné úloze.
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.
GO TO FULL VERSION