Cizí benchmark, vlastní metr — a past prvního běhu
- Čas (8 běhů)
- −27 %
- Vstupní tokeny
- −31 %
- Řádky kódu
- −21 %
- První běh tvrdil
- +13 % tokenů
Měřeno 22. 8. 2026 na kódovacím profilu agenta. Předmět: plugin ponytail — injektovaný ruleset (~1,5 tisíce tokenů na každé volání), který model tlačí k minimalismu žebříčkem „je to vůbec potřeba → není to už v kódu → neumí to standardní knihovna → … → teprv pak piš". Autoři udávají z vlastního benchmarku −54 % řádků, −20 % nákladů, −27 % času.
Teze: Cizí benchmark je tvrzení, ne fakt — dokud neprojde vlastním metrem. A vlastní metr má taky pravidla: jeden běh není měření.
Ranní verze: plugin prodražuje
První pokus byl jeden pár úloh (napiš nástroj, rozšiř ho), jednou s pluginem a jednou bez. Výsledek: kód o 30 % kratší, ale vstupní tokeny +13 % a čas stejný. Závěr se psal sám: injektáž se platí v každém volání a slíbená úspora se nekoná; nechat jen kvůli kratšímu kódu.
Jenže to bylo n=1 — přesně ten druh výsledku, o kterém nález 20 říká „indicie, ne důkaz". Tak se měřilo znovu, pořádně.
Odpolední verze: 4 úlohy × 2 větve × 2 opakování
Šestnáct běhů, každý v čerstvé sesi, větve prokládaně (A B A B), tokeny párované na běh podle časových oken. Úlohy vybrané tak, aby over-engineering bolel různě: tvorba nástroje, rozšíření existujícího, oprava bugu v záměrně přebujelém kódu (109 řádků abstraktních továren s jednou chybou a failing testem) a malý správce úkolů s persistencí.
| metrika | bez pluginu | s pluginem | rozdíl |
|---|---|---|---|
| čas celkem | 824 s | 599 s | −27 % |
| volání modelu | 145 | 101 | −30 % |
| vstupní tokeny | 3,72 mil. | 2,57 mil. | −31 % |
| řádky kódu (vč. testů) | 308 | 242 | −21 % |
| testy prošly nezávisle | 12/12 | 12/12 | — |
Mechanismus úspory není magie: kratší kód znamená méně koleček smyčky agenta (101 volání místo 145) — a každé ušetřené kolečko ušetří celý systémový prompt. Injektovaný ruleset se pořád platí, ale úspora z menšího počtu iterací ho převáží. Vidět je to na průměru: vstup na jedno volání vyšel v obou větvích skoro stejně (~25,7 proti ~25,5 tis. tokenů) — injektáž přidává, kratší historie kratších běhů ubírá, a celý rozdíl −31 % tak dělá počet volání. Ranní +13 % bylo jedno smolné kolo, kde jedna větev potřebovala víc pokusů — šum, který se v osmi bězích rozpustil.
A úloha s opravou bugu přidala důležitý zápor, který se nekonal: plugin nevede k přepisování cizího kódu. Obě větve opravily chybu diffem 1+/1− a přebujelé továrny nechaly být.
Jak ten rozdíl vypadá v kódu
Dvě místa z téhož nástroje, doslovně:
Za pozornost stojí, že kratší verze není osekaná — je jinak rozvržená.
Validaci parametru nechala argparse, místo aby ji obalila vlastní funkcí
s regulárním výrazem. A kontrolu vstupu má věcnější: ověří hlavičku CSV,
což delší verze vůbec nedělá — ta se místo toho brání proti hodnotám
None naslepo.
Sliby vs. metr
Rychlost autoři trefili na procento přesně (−27 %). Úspora nákladů vyšla i lepší, než slibují (−31 % proti −20 %). Redukce řádků je poloviční (−21 % proti −54 %) — jejich číslo zřejmě pochází z úloh, kde je bez pravidel víc prostoru bujet. Celkem: dvě tvrzení potvrzena, jedno nadsazené, žádné vyvráceno.
Poznámka k publikaci
Všechna čísla jsou z logů šestnácti běhů z 22. 8.; úlohy byly syntetické (mimo produkční repozitáře), obě větve dostaly identická zadání a jejich testy prošly nezávislým spuštěním. Plugin se jmenuje ponytail a je veřejný (MIT); jeho instalace má vlastní příběh — nález 29.
- pluginponytail (lazy senior dev ruleset) trvale zapnutý v kódovacím profilu
- metodikabenchmark: 4 typy úloh × 2 větve × 2 opakování, prokládaně, čerstvé sese, tokeny párované na běh