Přeskočit na obsah

Jedna otázka, šest minut čtení

vlastní kód · MCP službathinkingcap-27b
Odpověď nástroje
33 984 tokenů
Jen na přečtení
358 s
Potřeba k odpovědi
5 %
Pokusů, než to prošlo
6

Změřeno 3. 8. 2026 na vlastní účetní službě, kterou má asistent připojenou jako nástroj.

Teze: U lokálního modelu neplatíte za nástroj tím, že ho zavoláte, ale tím, že si musíte přečíst, co vrátil. A nástroje vracejí všechno.

Otázka a odpověď

Mám nějakou otevřenou pozici v hongkongském dolaru?

Správná odpověď je „ne". Dvě písmena.

Nástroj na to poslal 70 835 znaků, tedy 33 984 tokenů. Pro srovnání: celý systémový prompt agenta má 16 500 tokenů. Jedno volání nástroje stálo dvakrát víc kontextu než všechny instrukce, dokumenty a definice nástrojů dohromady.

Podle naměřené křivky to znamená 358 sekund jen na přečtení — skoro šest minut, než model napíše první znak odpovědi.

Z čeho se těch 34 tisíc tokenů skládá

Služba vrací seznam 103 pozic. Každá má 27 polí: nákupní cena, aktuální cena, stáří ceny, hodnota, nerealizovaný zisk v korunách i procentech, předchozí cena, denní změna, stav po daňovém testu, stav před ním, nejbližší dozrání, brokeři, počet lotů, první a poslední nákup.

Na položenou otázku jsou potřeba dvě — ticker a měna.

znaků
všech 103 pozic se všemi poli 62 762
jen ticker a měna 3 161
skutečná odpověď 2

Devadesát pět procent té odpovědi bylo k otázce nepoužitelných.

Jak to dopadlo v provozu

Volání bez filtru se do kontextu nevešlo a odpověď se osekala uprostřed. Pak následovaly čtyři minuty a šest pokusů:

  1. zavolat nástroj znovu, tentokrát bez argumentů
  2. najít na disku odložený výstup a přečíst ho Pythonem
  3. totéž s absolutní cestou
  4. hledat, kam se ten výstup uložil — vrátilo nulu (proč)
  5. napsat vlastní skript, který ten soubor rozparsuje
  6. zavolat nástroj s parametrem broker — a to prošlo

Ten šestý krok je pointa. Parametr existoval od začátku a zmenšil odpověď z 33 984 na 9 797 tokenů, tedy na necelou třetinu. Agent ho ale použil až poté, co jsem se sám doptal, jestli by pomohlo omezit to na jednoho brokera.

Nenapadlo ho zúžit dotaz. Napadlo ho obejít výsledek.

Co s tím jde dělat

Služba je moje, takže tohle není stížnost na cizí API. Napadly mě tři úrovně — a v pořadí, ve kterém jsem je sepsal, byly špatně.

Jako první jsem chtěl výběr polí: kdyby šlo požádat o ticker,mena, spadne odpověď na tři tisíce znaků. Jenže vlastní nález tohohle článku říká, že model si dotaz sám nezúžil — parametr broker existoval od začátku a použil ho až po mém doptání. Cokoli, co čeká, až si model řekne, nevystřelí. Skončilo by to jako broker: k dispozici a nepoužité.

Správné pořadí je obrácené:

Kompaktní tvar jako výchozí. Ne opt-in zúžení, ale opt-out rozšíření. Model dostane deset polí, aniž by cokoli věděl; plnou sadu si vyžádá detail: true.

Strop s poctivou hláškou. Když se odpověď nevejde, musí to říct a poradit, čím ji zúžit — ne se useknout uprostřed JSONu a nechat model hádat, co se stalo.

Souhrn místo seznamu. Na otázku po měnách stačí pár set znaků; výpis řádků je na ni špatná odpověď bez ohledu na to, jak je úsporný.

Co se změnilo

Nasazeno 3. 8. 2026 večer, naměřeno na stejné otázce:

znaků tokenů
původní odpověď 62 762 30 174
kompaktní výpis (nově výchozí) 19 351 9 303
souhrn portfolia 1 234 593
detail: true62 762 znakůkompaktní — nově výchozí19 351 znakůsouhrn portfolia1 234 znakůskutečná odpověď2 znaky51× menšíPlochy odpovídají počtu znaků odpovědi nástroje na otázku „mám něco v HKD?“.

Otázka po měně je dnes jedenapadesátkrát menší než tehdy. Šest minut prefillu se smrsklo pod deset sekund.

Strop jsem přitom hned napoprvé nastavil špatně — 30 000 znaků odřízlo i plný výpis, na kterém stojí noční hlídač portfolia, a rozbilo ho. Ukázalo se, že jsem stropu dal dva neslučitelné úkoly: vynucovat stručnost vůči modelu a chytat odpovědi nepoužitelné pro kohokoli. To první patří výchozímu tvaru. Strop je teď nad legitimním maximem (62 762) a pod uprchlíky — nefiltrované dividendy mají 492 856 znaků a jednotlivé nákupní loty 1 629 810, tedy zhruba 780 tisíc tokenů v jedné odpovědi.

Poznámka k publikaci

Konkrétní tickery a částky nejsou uvedené; počty polí, znaků, tokenů a časy jsou naměřené. Otázka na měnu je skutečná a padla v běžném provozu.

Oprava (3. 8. 2026 večer). První verze tvrdila „všech 29 pozic se všemi poli, 19 639 znaků". Pozic je 103 — číslo 29 bylo ze stejného měření, ale znamenalo počet různých názvů polí. Tabulka je přeměřená na nasazené službě. Údaj „27 polí na pozici" platí (medián; maximum je 28, protože nazev a delistedAt se uvádějí, jen když říkají něco navíc).

Co se pro to změnilo
  • MCPkompaktní tvar odpovědi jako výchozí, plná sada na `detail: true`
  • MCPstrop odpovědi s hláškou, čím dotaz zúžit (místo useknutí uprostřed JSONu)
  • MCPnový souhrn portfolia — otázka po měně je 51× menší
  • MCP5. 8.: kompaktní odpovědi v TOON a dividendy bez filtru vrací součty — 939 znaků místo 492 856
Souvisí — štítek „výkon“