Přeskočit na obsah
EshAlora

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ě.