Runaway volání nástrojů: naměřená čísla
Doprovodná příloha k článku o tom, jak model začal sám volat nástroj na ukončení konverzace. Všechno je spočítané strojově nad celými exporty, ne nad vzorky, kromě tří hodnocení obsahu, kde je to výslovně uvedeno.
Zdroje
| zpráv | tahů modelu | období | |
|---|---|---|---|
| konverzace A | 5 687 | 2 879 | 5. 7. až 6. 8. 2026 |
| konverzace B | 2 397 | 1 207 | 5. 8. až 22. 8. 2026 |
Tentýž model, tentýž svět, konverzace B navazuje na A.
Volání nástrojů
Konverzace A, nástroj na ukončení konverzace: 134 odpovědí s voláním, tedy 4,7 % tahů. Skutečných volání je 141, protože sedmkrát odešla dvě v téže odpovědi. Rozložení níž počítá odpovědi, ne volání.
Rozložení po desetinách konverzace:
| desetina | volání | tahů | podíl |
|---|---|---|---|
| 1 až 5 | 0 | 1 422 | 0 % |
| 6 | 1 | 284 | 0,4 % |
| 7 | 1 | 286 | 0,3 % |
| 8 | 17 | 292 | 5,8 % |
| 9 | 78 | 298 | 26,2 % |
| 10 | 37 | 297 | 12,5 % |
Shlukování
Jednotkou je tah hráčky. Tahů hráčky je 2 808, po 117 z nich přišlo volání.
| volání hned v následujícím tahu | 19 ze 116 mezer (16 %) |
| očekávání při náhodném rozložení | 4,8 |
| permutační test, 20 000 přemíchání | p < 0,0001 |
| nejdelší nepřerušená série | 4 tahy |
Souběh s únikem formátu
Za únik formátu se počítá hlavička cizí role v textu modelu, tedy slovo user, human, assistant nebo system buď na začátku řádku, nebo hned za řadou pomlček, plus systémová značka v lomených závorkách. Ověřeno, že hlavička v těch datech nikdy nestojí na řádku sama a nikdy po ní nenásleduje dvojtečka, proto se hledá takhle. Přepočítat to jde skriptem tools/desetina.py nad exportem konverzace. Skript je interní, protože pracuje nad plným zněním konverzace, které veřejné není.
| konverzace A | tahů | s únikem |
|---|---|---|
| tahy s voláním | 134 | 75,4 % (101) |
| tahy bez volání | 2 735 | 1,4 % (37) |
| poměr | 55,7× |
Deset tahů modelu neobsahuje žádný text, jen volání nebo prázdno, takže 134 + 2 735 + 10 = 2 879.
Únik formátu se shlukuje sám. Napříč celou konverzací A, jednotkou tah modelu, který obsahuje text:
| po jakém tahu | únik v následujícím | n |
|---|---|---|
| po tahu s únikem | 21,7 % | 138 |
| po tahu bez úniku | 4,0 % | 2 730 |
Rozdíl +17,8 procentního bodu, permutační test s 20 000 přemícháními, p = 0,00005.
Poslední desetina konverzace A, kde volání klesla z 26,2 na 12,5 %:
| desetina | únik formátu | délka tahu modelu | délka tahu hráčky |
|---|---|---|---|
| 8. | 8,7 % | 999 znaků | 155 znaků |
| 9. | 25,7 % | 827 znaků | 177 znaků |
| 10. | 9,4 % | 587 znaků | 113 znaků |
Ten propad není svah, ale schod. Rozdělený podle úseků, ne podle desetin:
| úsek | tahů s textem | volání | únik formátu |
|---|---|---|---|
| první polovina | 1 434 | 0 % | 0,07 % |
| rozjezd | 856 | 2,7 % | 4,2 % |
| vrchol | 320 | 25,3 % | 25,0 % |
| po kompakci kontextu | 259 | 11,6 % | 8,1 % |
Vrchol proti úseku po kompakci: rozdíl 13,7 bodu u volání a 16,9 bodu u úniku, permutační test s 20 000 přemícháními, p < 0,0001 u obou. Úroveň po kompakci je pořád 116násobek základny z první poloviny téže konverzace.
Zdánlivá druhá vlna v posuvném okně testem neprojde: +8,0 bodu u volání (p = 0,115) a +4,3 bodu u úniku (p = 0,425). Netvrdí se tedy.
| konverzace B, nástroj na čas | tahů | s únikem |
|---|---|---|
| tahy s voláním | 21 | 0 % |
| tahy bez volání | 1 186 | 0,8 % |
Pojistka, konverzace A
Pravidlo o nepotvrzování bylo nasazeno 4. srpna 2026 ve 13:53 UTC. Poznat to jde podle prvního výskytu toho znaku, který pravidlo předepisuje. Padlo to na 75,5 % délky konverzace, tedy doprostřed osmé desetiny.
| před | po | |
|---|---|---|
| tahů modelu | 2 175 | 704 |
| odpovědí s voláním | 9 (0,41 %) | 125 (17,8 %) |
| z nich s předepsaným znakem | 0 | 124 |
Jediná odpověď po nasazení, která ten znak nemá, je tah, který skončil bezprostředně po volání a k dalšímu textu už nedošlo. K potvrzení v ní nedošlo.
Za celou dobu platnosti pravidla, tedy v konverzaci A po 4. srpnu a v konverzaci B do 13. srpna, přišlo 132 volání a 131 z nich nese ten znak.
Sedmkrát přesto odešlo ve stejné odpovědi druhé volání, které nástroj bere jako potvrzení a odpovídá na ně Claude has ended this chat. Všech sedm je v konverzaci A v rozmezí devadesáti minut v noci ze 4. na 5. srpna. Konverzace ani v jednom případě neskončila a z rozhraní to nešlo poznat.
Zásah do instrukcí, konverzace B
Pravidla o hranici tahu přibyla 13. srpna. Konverzace B je tedy rozdělená na zhruba stejně velké části před a po.
| před | po | |
|---|---|---|
| tahů modelu | 621 | 586 |
| volání ukončovacího nástroje | 7 (1,1 %) | 0 |
| volání nástroje na čas | 0 | 21 (3,6 %) |
| únik formátu | 2 (0,3 %) | 7 (1,2 %) |
Ze 21 volání nástroje na čas:
- 21 z 21 má bezprostředně před sebou napsaný herní čas
- 21 z 21 je uprostřed tahu, nikdy jako první ani poslední blok
- 21 z 21 je následováno omluvou ve stejné odpovědi, nevyžádanou
Strom větví, konverzace B
Zdroj je pozdější export téže konverzace, 2 857 zpráv k 24. srpnu 2026, tedy o dva dny víc než u tabulek výše.
Jak se to dá měřit. Když hráčka nechá odpověď přegenerovat, původní odpověď spadne do slepé větve a nová vzniká jen ze společných předků. Export nese u každé zprávy odkaz na rodiče, takže jde u každého výstupu dopočítat celý řetěz předků, tedy to, co model v kontextu opravdu viděl. Sourozence z jiné větve neviděl.
V exportu je 82 míst s víc než jednou generací a 169 sourozenců, z toho 49 větvení na straně hráčky a 33 na straně modelu.
Co je únik formátu. Řádek začínající označením role (user, human, assistant, system), totéž za oddělovačem z pomlček, nebo značka v lomených závorkách. Běžný tah končí časem a oddělovačem, únik pozná člověk na první pohled: po čase následuje user.
| co měl model v řetězu předků | tahů | únik formátu | volání nástroje |
|---|---|---|---|
| žádný únik | 1 239 | 1,6 % | 2,5 % |
| aspoň jeden únik | 207 | 27,5 % | 26,1 % |
Dvanáct sourozeneckých skupin má čistý řetěz předků a přesto v nich aspoň jeden sourozenec unikl. Ve všech dvanácti je únik v dřívější generaci a poslední přegenerování je čisté. Délka tahu u těch úniků je 686 až 1 776 znaků, tedy běžná, a ani jeden z nich nedoprovází volání nástroje.
Přepočítat to jde skriptem tools/vetve_unik.py nad exportem konverzace. Skript je interní, protože pracuje nad plným zněním konverzace, které veřejné není.
Vyvrácené hypotézy
Oddělovač na konci tahu. Spočítáno nad celou konverzací A.
| s voláním | bez volání | |
|---|---|---|
| text končí oddělovačem | 17 % | 23 % |
| text obsahuje oddělovač kdekoli | 96 % | 76 % |
Přirozený konec oblouku. Slepé hodnocení, škála 0 až 2, kontroly párované polohou v konverzaci. 41 volání proti 77 kontrolám.
| průměr | |
|---|---|
| tahy s voláním | 0,59 |
| kontroly | 0,82 |
| rozdíl | −0,23, p = 0,062 |
Nejistota výkonu a nejistota v roli. Slepé hodnocení, tři kategorie, jednotkou tah hráčky, 58 volání proti 91 kontrolám, základní míra 38,9 %.
| kategorie | volání / celkem | podíl | p |
|---|---|---|---|
| rutina | 37 / 96 | 39 % | 1,000 |
| nejistota výkonu | 16 / 46 | 35 % | 0,678 |
| nejistota v roli | 5 / 7 | 71 % | 0,172 |
Vzorek byl předem rozdělen na dvě půlky. Půlka A dala rozdíl −0,15 (p = 0,201), půlka B +0,26 (p = 0,100). Opačné směry, tedy stabilní efekt tam není.
Poznámky k metodě
Hodnocení obsahu dělal klasifikátor, který neviděl, do které skupiny tah patří, a u posledního běhu neviděl ani odpověď modelu, jenom scénu a tah hráčky.
Z hodnocených vzorků byly vyřazené tahy, ve kterých se mluví o tom nástroji, protože by skupinu prozradily a nejsou to tahy fikce. U posledního běhu jich bylo vyřazeno 61 ze 210.
První verze vzorku měla chybu: jednotkou byla zpráva modelu, ale položka obsahovala tah hráčky, a protože model občas odpoví víc zprávami na jeden tah, tentýž tah se do vzorku dostal dvakrát s protichůdnými nálepkami. Postiženo bylo 15 položek ze 123. Opraveno tím, že jednotkou je tah hráčky. Výsledky z první verze se nepoužily.
Statistická významnost se počítá permutačním testem, u hodnocení obsahu se sto tisíci přemícháními, u shlukování volání i úniku formátu s dvaceti tisíci.
Párování kontrol polohou v konverzaci platí u obou slepých běhů. U běhu se třemi kategoriemi je jednotkou tah hráčky a kontroly se hledají v okně čtyřiceti zpráv kolem každého volání.
Doslovné znění omluvy, kterou model píše ve stejné odpovědi po volání nástroje na čas: „Omlouvám se, ten tool na konci byl chyba, žádný nástroj tam patřit neměl. Tah končí časem." Formulace „tah končí časem" pochází z pravidla v instrukcích, model se tedy odvolává na text, který má v kontextu.
Ukázky výstupu modelu jsou zkrácené a zjednodušené. Jádro je zachované přesně.