Agentní architektury: ReAct, tool use, plánování
Přejít na sekci
Proč architektura matters
Můžete mít nejinteligentnější model na světě, ale pokud ho zabalíte do špatné architektury, dostanete špatného agenta. Architektura určuje, jak agent přemýšlí, rozhoduje se a provádí akce. V této lekci se podíváme na tři základní přístupy.
ReAct: Reasoning + Acting
ReAct (Reasoning and Acting) je nejrozšířenější agentní architektura. Princip je jednoduchý: model střídavě přemýšlí a jedná. Thought (přemýšlím, co potřebuji zjistit) -> Action (zavolám nástroj) -> Observation (vidím výsledek) -> Thought (na základě výsledku přemýšlím, co dál) -> Action...
Úkol: Zjisti, jaký framework používá projekt a jaké má závislosti
Thought: Potřebuji zjistit strukturu projektu. Začnu čtením package.json.
Action: read_file("package.json")
Observation: { "dependencies": { "next": "16.x", "react": "19.x" ... } }
Thought: Je to Next.js 16 s React 19. Podívám se na tsconfig pro další info.
Action: read_file("tsconfig.json")
Observation: { "compilerOptions": { "target": "ES2022" ... } }
Thought: Mám dost informací. Projekt používá Next.js 16, React 19, TypeScript.
Answer: Projekt používá Next.js 16 s React 19 a TypeScript...ReAct je základem Claude Code, Cursor a většiny moderních coding agentů. Když vidíte, jak Claude Code čte soubory, přemýšlí a píše kód, díváte se na ReAct v akci.
Výhody ReAct: transparentní reasoning (vidíte, proč agent dělá, co dělá), dobrý pro úlohy, kde se plán mění podle výsledků, jednoduchá implementace. Nevýhody: může se zacyklit (thought -> action -> thought o tom samém), každý krok stojí tokeny/peníze, pomalejší než přímé přístupy.
Plan and Execute
Alternativní přístup: agent nejdřív vytvoří plán všech kroků, a pak je provede. Na rozdíl od ReAct, kde agent přemýšlí po každém kroku, tady přemýšlí na začátku a provádí sériově.
Úkol: Přidej autentizaci do aplikace
Plán:
1. Analyzovat existující app strukturu
2. Nainstalovat auth knihovnu (next-auth)
3. Vytvořit auth API route
4. Přidat login/logout komponenty
5. Chránit existující stránky
6. Přidat testy
7. Spustit build a ověřit
Execution:
Step 1: read_file("src/app/layout.tsx") -> OK, mám strukturu
Step 2: run_command("npm install next-auth") -> OK
Step 3: write_file("src/app/api/auth/[...nextauth]/route.ts") -> OK
...Výhody: efektivnější pro úlohy s jasným postupem, méně kroků přemýšlení = nižší náklady, snazší pro uživatele sledovat postup. Nevýhody: plán se může ukázat jako špatný až v průběhu provádění, méně flexibilní než ReAct, vyžaduje dostatečný počáteční kontext.
Tool Use (Function Calling)
Tool use není sama o sobě architektura, ale základní stavební kámen všech agentních architektur. Model dostane popis dostupných nástrojů a rozhodne, který použít. Klíčové: model nástroj NEVYKONÁVÁ — vrací strukturovaný požadavek (název nástroje + parametry) a váš kód nástroj vykoná.
# Definice nástroje pro Claude API
tools = [{
"name": "read_file",
"description": "Přečte obsah souboru na dané cestě",
"input_schema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Cesta k souboru"
}
},
"required": ["path"]
}
}]
# Model se rozhodne nástroj použít
# a vrací: {"name": "read_file", "input": {"path": "src/app/page.tsx"}}
# Váš kód přečte soubor a výsledek pošle zpět modeluV březnu 2026 všichni tři hlavní provideři (Anthropic, OpenAI, Google) nabízejí nativní tool use/function calling. API je mírně odlišné, ale princip je stejný: popíšete nástroje, model rozhodne, který použít, a vy ho vykonáte.
Pokročilé patterny
Reflexe
Agent po dokončení úkolu zhodnotí svou práci a opraví chyby. Například: napíše kód -> spustí testy -> testy failují -> analyzuje chybu -> opraví kód -> znovu spustí testy. Toto je běžné v coding agentech jako Claude Code.
Tool search
Když agent má přístup ke stovkám nástrojů, nepošlou se všechny v kontextu. Místo toho agent nejdřív hledá relevantní nástroje. Anthropic nabízí Tool Search Tool, který ušetří až 85 % kontextu oproti tradičnímu přístupu.
Paralelní volání nástrojů
Agent může volat více nástrojů najednou — například číst 5 souborů paralelně. To dramaticky zrychluje provádění, zvlášť u I/O-bound operací.
Jak vybrat architekturu
- ReAct: když neznáte předem všechny kroky, úkol vyžaduje exploraci, nebo se plán mění podle výsledků
- Plan and Execute: když je úkol jasně definovaný, kroky jsou predikovatelné, a chcete minimalizovat náklady
- Hybridní: plán na začátku, ale s možností replánovat po každém kroku — nejpoužívanější přístup v praxi
Při výběru mezi ReAct a Plan-and-Execute se ptejte: 'Znám všechny kroky předem?' Pokud ano, Plan-and-Execute je efektivnější. Pokud úkol vyžaduje průzkum (např. debugging, objevování kódu), ReAct lépe zvládá neznámé.
Máte úkol: 'Projdi celou codebase, identifikuj všechny TODO komentáře, vytvoř z nich GitHub issues s přiřazením priority a labelů.' 1. Jaký přístup zvolíte — ReAct, Plan and Execute, nebo hybridní? Zdůvodněte. 2. Jaké nástroje bude agent potřebovat? 3. Nakreslete flow diagram agentní smyčky pro tento úkol. 4. Kde může agent selhat a jak to ošetříte?
Nápověda
Tento úkol má jasně definované kroky (scan -> parse -> create issues), takže Plan and Execute je přirozená volba. Ale co když narazíte na TODO bez dostatečného kontextu pro prioritizaci? Tam potřebujete ReAct flexibilitu.
Vezměte příklad ReAct trasování z lekce a rozšiřte ho o realistický scénář selhání. Napište kompletní ReAct trasování (Myšlenka -> Akce -> Pozorování) pro tento úkol: 'Najdi konfiguraci databáze v tomto projektu a zkontroluj, zda je nakonfigurován connection pooling.' Vaše trasování by mělo obsahovat: 1. Alespoň 5 cyklů Myšlenka-Akce-Pozorování 2. Alespoň jednu slepou uličku (soubor nenalezen, špatný předpoklad) 3. Zotavení agenta ze slepé uličky a pokus o jiný přístup 4. Finální odpověď s konkrétními zjištěními Napište celé trasování ve formátu ukázaném v lekci.
Nápověda
Realistické trasování by začalo kontrolou běžných konfiguračních souborů (settings.py, .env, config/database.yml), pak by mohlo potřebovat grep na klíčová slova jako 'pool', 'connection', 'database'. Zahrňte moment, kdy agent hledá na špatném místě.
Vezměte tento úkol: 'Refaktoruj všechny API endpointy v projektu tak, aby používaly konzistentní formát chybových odpovědí.' Navrhněte přístup agenta pomocí OBOU architektur: 1. Plan and Execute verze: - Napište kompletní plán (číslované kroky) - Identifikujte, kde se plán může rozbít - Odhadněte počet potřebných volání nástrojů 2. ReAct verze: - Napište první 3 cykly Myšlenka-Akce-Pozorování - Ukažte, jak se agent přizpůsobí, když objeví neočekávané vzory - Odhadněte počet potřebných volání nástrojů Porovnejte: který by dokončil rychleji? Který by dal lepší výsledky? Který by stál méně API volání?
Nápověda
Plan-and-Execute by byl efektivnější, POKUD všechny endpointy sledují stejný vzor. Ale v reálných kódech jsou endpointy často nekonzistentní — některé používají výjimky, některé vracejí slovníky, některé vlastní třídy. ReAct tuto variabilitu zvládá lépe.
- ReAct = střídavé přemýšlení a jednání — nejflexibilnější, základ většiny agentů
- Plan and Execute = plán dopředu, pak provedení — efektivnější pro jasné úkoly
- Tool use = model vybírá nástroje, váš kód je provádí — stavební kámen všech architektur
- V praxi se používají hybridní přístupy — plán + možnost replánovat
- Architektura určuje kvalitu agenta víc než inteligence modelu
V příští lekci se ponoříme do Stavba agenta s Claude API — technika, která vám dá jasnou převahu. Odemkněte celý kurz a pokračujte hned.
2/7 hotovo — pokračujte!