Chybějící nástroj si agent nahradí — pětatřiceti jinými
- web_search
- 35 volání
- web_extract
- 1 — selhal
- Tool výstupy
- ~20 tis. tokenů
- Kontext 65k
- přetekl
Stalo se 9. 8. 2026 při obyčejné rešerši: výběr intenzivního kurzu, porovnání cen, ohlasy mimo oficiální web. Přesně úloha pro asistenta.
Teze: Agent s dírou v sadě nástrojů neselže viditelně. Chybějící schopnost si potichu nahradí tou nejbližší, kterou má — a účet přijde jinde.
Co se stalo
Model si při rešerši sáhl po web_extract, aby přečetl konkrétní stránku.
Nástroj odpověděl poctivě:
Brave Search (Free) is a search-only backend and cannot extract
URL content. Set web.extract_backend to firecrawl, tavily, exa…
Extrakční backend nebyl nikdy nakonfigurovaný — vyhledávání přes Brave funguje, čtení stránek ne. Model se nezastavil a neřekl „chybí mi nástroj". Udělal to, co agenti dělají: našel si cestu. Místo přečtení tří stránek položil 35 vyhledávacích dotazů a odpověď skládal z útržků ve výsledcích.
Účet přišel o hodinu později
Každé hledání vrací 5 tisíc znaků úryvků. Pětatřicet jich dohromady dalo
**20 tisíc tokenů** tool výstupů v jedné konverzaci — nad systémovým
promptem o 16,5 tisících. Ve tři čtvrtě na šest to sečetl inferenční server:
Streaming failed before delivery: {"code":500,
"message":"Context size has been exceeded."}
Okno 65 536 tokenů přeteklo uprostřed odpovědi. Komprese kontextu (nově přepracovaná v Hermes 0.20) sezení zachránila a konverzace dojela do konce — včetně poslední otázky, kde si asistent správně přečetl můj zdravotní přehled a doporučil rozhodnutí odložit. Výsledek dobrý; cesta k němu draze zaplacená za nástroj, který nikdy neexistoval.
Proč to nikdo neviděl dřív
Ta díra je v konfiguraci od začátku — a tohle je první úloha, která extrakci doopravdy potřebovala. Rešerše se do té doby dělaly hledáním, kde úryvky stačí. Selhání nemá podobu chyby: model dál odpovídá, jen pomaleji, dráž a z horších pramenů — z útržků místo stránek. Bez čtení záznamu konverzace by rozdíl nikdo nepoznal.
Je to zrcadlový obraz nálezu 17: tam nástroj tiše vracel nulu a vypadalo to jako prázdno. Tady nástroj poctivě řekl, že chybí — ale agent si poradil tak hladce, že poctivá chyba zanikla. Náhradní cesta se někdy odhaluje hůř než tichá nula.
Přeměřeno týž večer
Jádro nedělní rešerše — podrobnosti a ohlasy mimo oficiální web — položené znovu, tentokrát s funkční extrakcí:
| bez extrakce (neděle) | s extrakcí (večer) | |
|---|---|---|
| volání nástrojů | 35 hledání + 1 selhaná extrakce | 4 hledání + 2 extrakce |
| prameny | útržky z výsledků hledání | celé stránky |
| kontext 65k | přetekl uprostřed odpovědi | v pořádku |
Srovnání je orientační — neděle byla třífázová konverzace, tohle jedna otázka — ale řádový rozdíl v počtu koleček model↔nástroj je jasný. A jedna poctivá nuance: objem přečtených znaků klesl jen málo (~54 tisíc proti ~61). Extrakce rešerši nezlevnila, ale ohraničila — dvě stránky po 15 tisících znaků se stropem místo neomezené řady útržků, a odpověď stojí na skutečném obsahu stránek. I závěr byl kvalitnější: místo skládanky si model troufl napsat, že čerstvé nezávislé recenze prostě neexistují.
Poznámka k publikaci
Předmět rešerše je uveden obecně a zdravotní kontext bez podrobností. Počty volání, velikosti a chybové hlášky jsou doslovné ze záznamu sezení.
- config9. 8. večer: `web.extract_backend: tavily` — extrakce ověřena naostro (15 250 znaků z první stránky, strop 15k platí)
- pozn.autodetekce podle klíče nestačila, backend chtěl uvést explicitně
- přeměřenotáž rešerše: 36 volání → 6, kontext přežil, prameny celé stránky