Harness a scaffold u AI agentů: proč na terminologii záleží
Hugging Face vysvětluje rozdíl mezi modelem, scaffoldem a harness vrstvou u AI agentů.
V oblasti AI agentů se rychle mění nejen nástroje, ale i slovník. Hugging Face ve svém glossary článku upozorňuje, že pojmy jako model, scaffold, harness nebo agent se často používají různě podle kontextu. To pak komplikuje debatu o tom, co vlastně agent dělá, kde končí model a kde začíná systém kolem něj.
Nejde o akademickou slovíčkařinu. U agentů je právě rozlišení jednotlivých vrstev důležité pro návrh, ladění, evaluaci i trénování.
Model
Základní vrstvou je model. Ve zdroji je popsaný jednoduše: LLM přijímá text a generuje text. Sám o sobě nemá paměť mezi jednotlivými voláními a neběží v žádné smyčce.
Model může v odpovědi vyjádřit záměr zavolat nástroj, ale sám nástroj nespustí. Odpoví na jeden prompt a skončí. Agent z něj vzniká až ve chvíli, kdy je obalený dalšími vrstvami, které mu dodají kontext, nástroje a exekuční smyčku.
Scaffolding
Scaffolding je vrstva, ze které model pracuje. Patří sem systémový prompt, popisy nástrojů, formát odpovědí, pravidla pro parsování výstupu a správa kontextu mezi jednotlivými kroky.
Jinými slovy: scaffold určuje, co model vidí a podle čeho se má chovat. Formuje jeho pracovní prostředí. Ve zdroji se uvádí, že tato vrstva je důležitá při inference i při trénování, protože ovlivňuje, jak model vnímá situaci a jaké akce považuje za možné.
Tady zároveň vzniká část terminologického zmatku. Některé produkty, například Claude Code, Codex nebo Antigravity CLI, používají slovo harness v širším smyslu pro celý systém kolem modelu. Hugging Face ale rozlišuje užší význam: scaffolding je to, z čeho model pracuje, zatímco harness je vrstva, která agenta skutečně spouští.
Harness
Harness je exekuční vrstva uvnitř agenta. Volá model, zpracovává jeho tool cally a rozhoduje, kdy má běh skončit. Pokud scaffold říká, z jakých instrukcí, nástrojů a formátu model vychází, harness řídí samotnou smyčku.
Právě harness dělá z jednorázového modelového volání agentní systém. Řeší například:
- kdy model znovu zavolat
- jak provést tool call
- jak předat výsledek zpět do kontextu
- jak zpracovat chybu
- kdy běh zastavit
- jaké mantinely drží agenta v bezpečných mezích
Proto se mluví i o harness engineeringu: návrhu této exekuční vrstvy. Ve zdroji se zmiňuje, že se to týká inference i trénování. Podobný princip existuje také u eval harnessu, který nespouští trénování, ale pevnou sadu scénářů a zaznamenává metriky.
U komplexnějších systémů se pak může objevit ještě orchestrator. Ten neřídí jen jednu modelovou smyčku, ale koordinuje více agentů nebo subagentů, z nichž každý může mít vlastní harness.
Agent jako celek
Zjednodušeně se dá říct:
- model generuje odpovědi
- scaffold definuje instrukce, nástroje, formát a kontext
- harness model opakovaně volá, provádí nástroje a řídí smyčku
- agent je celek, který díky těmto vrstvám dokáže nejen odpovídat, ale také jednat
To vysvětluje, proč mohou dva produkty nad stejným modelem působit úplně jinak. Rozdíl nemusí být jen v modelu samotném, ale v harnessu, scaffoldingu, nástrojích, správě kontextu a rozhodování o tom, kdy pokračovat nebo skončit.
Proč je to důležité
Hugging Face výslovně upozorňuje, že tyto pojmy zatím nemají univerzálně přijímané definice. Různé frameworky mohou používat stejná slova odlišně. Cílem glossary není vnutit jednu správnou terminologii, ale nabídnout praktický mentální model.
Pro vývojáře je to užitečné hlavně proto, že při práci s agenty nestačí říct „model selhal“ nebo „agent to udělal špatně“. Je potřeba rozlišit, kde problém vznikl:
- v samotném modelu
- v instrukcích a kontextu
- v tool call formátu
- v exekuční smyčce
- v chybějících stop podmínkách
- nebo v orchestraci více agentů
Tohle rozlišení pomáhá při ladění agentních systémů. Pokud model umí správně navrhnout akci, ale harness ji špatně provede, problém není v modelu. Pokud harness funguje, ale model dostává špatný kontext, problém je spíš ve scaffoldingu nebo context engineeringu.
Právě proto na terminologii záleží. Ne proto, aby se používala dokonale akademicky, ale aby bylo jasné, o které vrstvě agentního systému se vlastně bavíme.