====== LongHorizon-Harness ======
//Vytvořeno: **25.8.2026** | Aktualizováno: **~~LASTMOD~~**//
[[https://github.com/AMAP-ML/LongHorizon-Harness|LongHorizon-Harness]] je open-source harness pro dlouhé agentní úlohy. Nestaví nový model ani nenahrazuje Claude Code nebo Codex; obaluje je řídicí smyčkou, která rozděluje práci na malé kroky, uchovává jen ověřený stav a nenechá agenta hodnotit vlastní práci bez nezávislé kontroly.
===== Proč je potřeba =====
Agent při dlouhé práci naráží hlavně na tři problémy: roste mu historie, hromadí se chyby a ztrácí přehled o skutečném stavu projektu.
* [[https://arxiv.org/abs/2503.14499|METR]] měří 50% časový horizont: délku práce vyjádřenou časem zkušeného člověka, kterou agent dokončí alespoň v polovině případů. Ve studované sadě převážně softwarových a výzkumných úloh se tento horizont od roku 2019 zdvojnásoboval přibližně každých 7 měsíců. Není to tvrzení, že agent spolehlivě dokončí libovolně dlouhou práci.
* [[https://www.trychroma.com/research/context-rot|Context Rot]] testoval 18 modelů při postupně delším vstupu, až k milionu tokenů. Při stejné obtížnosti úloh se výkon s délkou vstupu zhoršoval; milion tokenů tedy neznamená milion stejně spolehlivých tokenů.
* Studie [[https://arxiv.org/abs/2606.05976|The Self-Correction Illusion]] zjistila statisticky významné zlepšení explicitního rozpoznání chyby v 10 z 12 kombinací modelu a domény. Při předložení stejného chybného tvrzení jako externího vstupu byl nárůst 23,3 až 93,3 procentního bodu. To vysvětluje, proč má oddělený auditor praktický smysl.
===== Smyčka Manage–Execute–Audit =====
Základ frameworku popisuje článek [[https://arxiv.org/abs/2608.01964|LongHorizon-Harness: Advancing Long-Horizon Agents for Real-World Tasks]]. Práce není jedna dlouhá relace, ale opakování tří rolí:
* **Manager** drží původní cíl, ověřený stav a auditní důkazy. Vybere jeden omezený další krok včetně akceptačních kritérií. Nemá přímý přístup k souborům, terminálu ani GUI.
* **Executor** dostane čerstvý kontext, kontrakt pro konkrétní krok a potřebné ověřené informace. Je jediná role, která záměrně mění pracovní prostředí.
* **Auditor** dostane výsledek Executora jako cizí tvrzení a nezávisle zkontroluje skutečné soubory, testy, logy nebo stav aplikace. Má pracovat pouze pro čtení.
Jen závěr Auditora může změnit trvalý stav úlohy. Pokud audit neprojde, Manager vidí důkazy o selhání a připraví opravu nebo jiný další krok. Hrubá historie práce Executora se po kole nezachovává; mezi koly zůstává kompaktní stav a auditní reporty.
Příklad: místo zadání „vytvoř celou aplikaci“ Manager připraví krok „přidej přihlášení s e-mailovým heslem; test musí ověřit úspěšné přihlášení i odmítnutí špatného hesla“. Executor jej implementuje. Auditor pak nespokojí s tvrzením „hotovo“, ale spustí testy a podle potřeby provede end-to-end kontrolu v prohlížeči.
===== Metriky z paperu =====
Následující tabulka porovnává běžný Claude Code a LongHorizon-Harness se stejným backbone tam, kde to autoři měřili přímo. ''PassRate'' znamená podíl zcela splněných úloh, ''Binary'' vyžaduje finální skóre 1 a ''Partial'' je průměrné dílčí skóre.
^ Benchmark ^ Model a backend ^ Claude Code bez LHH ^ LongHorizon-Harness ^
| WeaveBench (114 GUI+CLI úloh) | Qwen 3.7-Plus, Claude Code | PassRate 51,8 %; Overall 0,702 | PassRate 80,7 %; Overall 0,835 |
| OSWorld 2.0 (108 desktopových úloh) | Qwen 3.7-Plus | Binary 2,8 %; Partial 21,5 % | Binary 8,3 %; Partial 35,2 % |
| Terminal-Bench 2.1 | Qwen 3.7-Plus, Claude Code | Success rate 69,7 % | Success rate 77,2 % |
| OSWorld 2.0, podmnožina 34 úloh | Claude Opus 4.7 | Binary 20,6 %; Partial 55,8 % | Binary 35,3 %; Partial 66,9 % |
Nejvýraznější je trojnásobný nárůst binárního dokončení na OSWorld 2.0: 2,8 % na 8,3 %. Znamená to ale jen to, že úloha splnila všechna benchmarková kritéria; neznamená to trojnásobnou obecnou schopnost modelu.
Autoři uvádějí i prakticky důležitou cenu za vyšší spolehlivost:
* Na OSWorld 2.0 stoupla průměrná spotřeba výstupních tokenů z 28,9 tisíce na 104 tisíc na úlohu, tedy zhruba 3,6×.
* Na WeaveBench spotřeboval framework 2,3× více tokenů než baseline.
* Na Terminal-Bench 2.1 naopak spotřeboval o 24 % méně tokenů a současně dosáhl vyšší úspěšnosti.
* Samotný Auditor tvořil 19,4 % tokenů na WeaveBench, 24,8 % na OSWorld a 38,1 % na Terminal-Bench. Kontrola není levný doplněk, ale podstatná část celého přístupu.
Závěr není „tři role vždy stojí trojnásobek“. Náklady závisí na úloze, schopnosti Executora a počtu kol nutných pro opravy.
===== Případové studie: proč nestačí výsledek, který vypadá dobře =====
Paper obsahuje konkrétní trajektorie, které video používá jako názorné příklady. Jde o skóre jednotlivých benchmarkových úloh, ne o obecnou míru úspěšnosti frameworku.
* **Wireshark / WebRTC simulcast audit:** základní Claude Code se stejným Qwen 3.7-Plus zůstal více než 400 kroků ve smyčce kolem nereagujícího dialogu a skončil na skóre 0,59. LHH zapsal selhání jako nevyřešený stav, další kolo dohledalo chybějící grafy a paketové důkazy a výsledné skóre bylo 0,92.
* **LibreOffice:** úkolem bylo naformátovat 15 nadpisů. Baseline přepsal XML přímo, takže dokument na pohled vypadal dobře, ale nedodržel povinnost provést změnu přes LibreOffice; skóre bylo 0,00. LHH provedl GUI workflow a Auditor ověřil podkladový styl všech 15 nadpisů; skóre bylo 0,89.
* **LibreOffice Calc:** pro opravu vzorců a zachování důkazů před opravou i po ní se skóre zvedlo z 0,45 na 0,87. Auditor zde kontroloval celou posloupnost devíti screenshotů.
* **Chrome DevTools:** při sběru výkonového důkazu se skóre zvedlo z 0,53 na 0,85, protože dokončená optimalizace zůstala ve stavu a další Executor se soustředil jen na chybějící důkazy.
Toto je hlavní hodnota frameworku: neudělá model lepším v matematice, vidění nebo algoritmizaci. Může ale zabránit tomu, aby už ověřený pokrok zanikl v dlouhé historii nebo aby vizuálně věrohodný výsledek prošel bez kontroly postupu.
===== Video: tři dny autonomního vývoje =====
Ve videu [[https://www.youtube.com/watch?v=B8Is4KZze9c|Nechal jsem AI 3 dny bez dozoru. Tohle postavila.]] Marek Bartoš vysvětluje princip na vlastním projektu Skippy Workouts.
{{youtube>B8Is4KZze9c?}}
Je potřeba oddělit čísla z osobní demonstrace od benchmarků v paperu. Následující hodnoty jsou tvrzení autora videa, nikoli nezávisle replikovaný benchmark:
* autonomní vývoj trval **3 dny**;
* před vznikem produkčního kódu vzniklo přes **3 000 řádků** přípravy, rozboru zadání a definic hotového stavu;
* specifikace se rozdělila do **8 fázových kontraktů** a záměr do **7 oddělitelných systémů**;
* AI před během opravila **3** autorovy technické předpoklady;
* vznikly **stovky automatizovaných testů**;
* během třídenního běhu se systém **4×** zastavil nad neúplnými nebo vadnými pravidly a podle autora je dokázal bez zásahu opravit, případně upravit zadání.
Video také správně upozorňuje, že běžný agent může opakovat neúspěšný krok velmi dlouho: v ukázce Wiresharku šlo o více než 400 kroků. Důležitější než vytrvalost je proto schopnost převést selhání do ověřeného stavu, na který další krok skutečně reaguje.
===== Rozpor v počtu kol =====
Video mluví o maximálně **40 iteracích**. Tuto hodnotu nelze bez kontextu brát jako aktuální výchozí nastavení. Paper použil pro své experimenty maximum **25** kol. Ve zdrojovém kódu verze 0.1.7 je výchozí hodnota také 25, zatímco README v témže repozitáři uvádí 30. Jde tedy o nekonzistenci dokumentace nebo o změnu mezi konfiguracemi.
Pro vlastní běh je bezpečnější nastavit limit explicitně, například:
lh-harness run --task @task.md --agent claude_code --max-rounds 5 --no-dashboard
===== Co framework přidává nad Claude Code =====
[[https://docs.anthropic.com/en/docs/claude-code/overview|Claude Code]] už umí plánovat, pracovat s nástroji a udržovat kontext. LongHorizon-Harness nad něj přidává hlavně:
* oddělený, auditovaný stav úlohy mimo rostoucí konverzaci;
* čerstvý kontext Executora v každém kole;
* kontrakt s hranicemi a kritérii přijetí pro jeden krok;
* nezávislou kontrolu prostředí před tím, než se změna zapíše jako hotový pokrok;
* dashboard, auditní stopu a možnost pokračovat nebo zastavit běh.
To odpovídá principům z článku [[https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents|Effective harnesses for long-running agents]]: postupovat po malých ověřitelných funkcích, používat Git a průběžný záznam práce, po každé relaci ponechat projekt v čistém stavu a neoznačovat položku za hotovou bez end-to-end ověření.
===== Instalace a první běh =====
Pro CLI workflow je potřeba Python 3.10+ a alespoň jeden agentní runtime v cestě, například `claude`, `codex` nebo `opencode`. Pro ovládání desktopových aplikací je navíc nutný podporovaný computer-use plugin a oprávnění operačního systému.
Nejbezpečnější je začít v samostatném Git repozitáři, ne v produkčním projektu:
# Nejprve se přihlásit do Claude Code, pokud se má použít předplatné
claude
# Instalace harnessu
uv tool install lh-harness
# V adresáři testovacího projektu
lh-harness init
lh-harness doctor
# Krátký první běh bez dashboardu
lh-harness run --task @task.md --agent claude_code --max-rounds 5 --no-dashboard
Soubor `''task.md''` by měl obsahovat konkrétní cíl, omezení a ověřitelné Definition of Done. Příkaz `''lh-harness run''` standardně pracuje v aktuálním adresáři, proto je izolovaný workspace důležitý.
===== Claude Code předplatné nebo API klíč =====
API klíč není pro Claude Code povinný. Volba pro předání API klíče je v LongHorizon-Harness volitelná; pokud ji nepředáš, adapter spustí CLI `''claude''` a použije jeho existující přihlášení. Pro lokální použití s aktivním předplatným Claude Code tedy stačí se nejdřív přihlásit přes `''claude''`.
API klíč je vhodný nebo nutný, pokud:
* běh probíhá v CI nebo na headless serveru bez interaktivního přihlášení;
* je potřeba řídit náklady podle tokenů nebo používat samostatný billing;
* používá se proxy, vlastní kompatibilní endpoint nebo jiný poskytovatel modelu;
* jednotlivé role mají používat různé modely mimo účet Claude Code.
Předplatné Claude Code nepokrývá volání modelů jiných poskytovatelů. Také je potřeba počítat s tím, že Manager, Executor a Auditor znamenají opakované samostatné invokace modelu. Dlouhý běh proto může narazit na usage limity předplatného dříve než běžná interaktivní práce v Claude Code.
===== Bezpečnost a omezení =====
Executor má měnit skutečné prostředí. Claude Code adapter ve frameworku spouští Claude v režimu přeskočení potvrzování oprávnění; omezení rolí se realizuje hlavně seznamem zakázaných nástrojů. Nejde o bezpečnostní sandbox.
Nespouštět první úlohy proti produkci, na hostiteli s citlivými přístupy nebo v hlavní větvi důležitého repozitáře. Vhodný postup je samostatný workspace, omezený počet kol, Git commit před během, testovací data a průběžná kontrola dashboardu či auditních reportů.
===== Zdroje =====
* [[https://github.com/AMAP-ML/LongHorizon-Harness|LongHorizon-Harness – repozitář a dokumentace]]
* [[https://arxiv.org/abs/2608.01964|LongHorizon-Harness: Advancing Long-Horizon Agents for Real-World Tasks]]
* [[https://arxiv.org/abs/2503.14499|METR: Measuring AI Ability to Complete Long Software Tasks]]
* [[https://www.trychroma.com/research/context-rot|Chroma: Context Rot]]
* [[https://arxiv.org/abs/2606.05976|The Self-Correction Illusion]]
* [[https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents|Anthropic: Effective harnesses for long-running agents]]
* [[https://docs.anthropic.com/en/docs/claude-code/overview|Claude Code – přehled a přihlášení]]
* [[https://www.youtube.com/watch?v=B8Is4KZze9c|Video: Nechal jsem AI 3 dny bez dozoru. Tohle postavila.]]