Ako funguje AI agent: jazykový model v slučke s nástrojmi
Slučka úvaha – volanie nástroja – výsledok na skutočnej úlohe nad článkami webu, tri postupy a ich cena v tokenoch, prečo rastie kontext, plán a pamäť, spoľahlivosť dlhých úloh s kontrolou a bez nej, a prečo agent potrebuje schvaľovanie.
Séria Základy AI Diel 50 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Čo sa v agentovi deje krok po kroku a čo robí model a čo obslužný program.
- Prečo je kontext drahý a ako ho dobré agenty šetria.
- Prečo dlhé úlohy bez kontroly zlyhávajú a ako pomáhajú testy a schvaľovanie.
Čo sa hodí vedieť vopred: Prompty, kontext a RAG: ako modelu dať správne informácie, Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
Jazykový model sám osebe len odpovedá: dostane text, vráti text. Agent je model, ktorému dáme ruky — nástroje, ktorými môže niečo zistiť alebo urobiť — a necháme ho pracovať v slučke, kým úlohu nedokončí. Takto fungujú programovacie agenty, ktoré samy čítajú kód, spúšťajú testy a opravujú chyby, aj asistenti, ktorí hľadajú na webe. A takto funguje aj agent, ktorého coden ovláda z telefónu. V tomto diele rozoberieme slučku na skutočnej úlohe a spočítame, čo stojí a kde sa láme.
Nadväzuje na diely Prompty, kontext a RAG, Tokenizácia a Markovove rozhodovacie procesy.
1. Model v slučke
Definícia — AI agent
Vo všeobecnosti je agent funkcia, ktorá každej doterajšej histórii vnemov priradí akciu (agentová funkcia z mapy AI). AI agent v užšom zmysle tohto dielu je táto konkrétna konštrukcia. Nech
- T je množina všetkých textov (konečných postupností tokenov) a ⊕ : T × T → T pripojenie textu na koniec;
- M : T → T je jazykový model, ktorý z kontextu napíše ďalší krok (model so vzorkovaním je v skutočnosti náhodný; tu berieme jeden pevný priebeh);
- F ⊆ T je množina krokov, ktoré sú konečnou odpoveďou; ostatné kroky v ∈ T ∖ F sú volania nástroja;
- N : T ∖ F → T je obslužný program: volanie nástroja naozaj vykoná a vráti jeho výsledok ako text;
- c1 ∈ T je počiatočný kontext (systémový prompt, popis nástrojov a úloha) a Kmax ∈ ℕ, Kmax ≥ 1, rozpočet krokov.
Beh agenta je postupnosť kontextov c1, c2, … a krokov v1, v2, … daná pre k = 1, 2, …, Kmax predpisom
vk = M(ck), ck+1 = ck ⊕ vk ⊕ N(vk) (ak vk ∉ F).
Beh sa zastaví v prvom kroku k, pre ktorý vk ∈ F — výstupom je odpoveď vk —, alebo po kroku Kmax, ak žiadny krok nebol konečnou odpoveďou — výstupom je „došiel rozpočet krokov“.
Agent teda strieda krok modelu a vykonanie nástroja, kým model neodpovie alebo nedôjde rozpočet. Striedanie úvahy a akcie opísali Shunyu Yao a kol. (2022) pod menom ReAct (reason + act); zápis vyššie je zjednodušená formalizácia pre tento diel.
Šikovný kolega na telefóne, ktorý nevidí váš počítač. Povie „otvor priečinok src“, vy mu prečítate, čo tam je, on povie „teraz súbor server.js, riadky 100 až 150“ — a tak ďalej, kým nemá odpoveď. Model je ten kolega, obslužný program sú vaše ruky a oči. V reči posilňovaného učenia: stavom je doterajšia konverzácia, akciou volanie nástroja.
vk = M(ck), ck+1 = ck ⊕ vk ⊕ N(vk)
- ck
- kontext pred k-tým volaním modelu: systémový prompt, úloha a všetko, čo sa zatiaľ stalo. Je to celý „stav“ agenta — nič iné si model nepamätá
- M
- jazykový model; z kontextu napíše ďalší krok. Jediná časť, ktorá „premýšľa“, a jediná, ktorej sa nedá úplne veriť
- vk
- krok modelu: úvaha a volanie nástroja, alebo konečná odpoveď (potom slučka končí)
- N(vk)
- výsledok nástroja, ktorý vypočíta obslužný program; pridáva do kontextu to, čo model sám vedieť nemôže (obsah súboru, výstup testov)
kontext = [systémový prompt, popis nástrojov, úloha]
for k = 1 … K_max: # rozpočet krokov
krok = model(kontext) # číta CELÝ kontext
kontext += krok
if krok je konečná odpoveď: return ju
if nástroj potrebuje súhlas a človek ho nedal:
kontext += "zamietnuté"; continue
výsledok = proveď(krok.nástroj, krok.parametry) # obslužný program
kontext += výsledok
return "došiel rozpočet krokov"
2. Nástroje
Definícia — volanie nástrojov (tool use, function calling)
Nech má agent m ≥ 1 nástrojov. Nástroj i ∈ {1, …, m} je daný
- menom ji (mená rôznych nástrojov sú rôzne),
- slovným popisom, na čo slúži,
- schémou parametrov Si — popisom, aké parametre a akých typov nástroj prijíma (typicky ako schéma JSON),
- procedúrou, ktorú obslužný program pre platné parametre spustí a ktorá vráti výsledok ako text.
Meno, popis a schéma všetkých nástrojov sa vložia do promptu. Volanie nástroja je štruktúrovaný výstup modelu tvaru (j, x) — meno a parametre, napríklad {"nastroj": "hledej", "text": "KL divergence"}. Model je doladený tak, aby taký výstup vedel napísať namiesto bežného textu. Obslužný program volanie (j, x) spracuje takto:
- ak existuje i s j = ji a parametre x zodpovedajú schéme Si, spustí procedúru nástroja i s parametrami x a jej výsledok pripojí do kontextu ako ďalšiu správu;
- inak do kontextu pripojí chybovú správu a nástroj nespustí.
Model sám teda nič nespúšťa — len píše, čo sa má spustiť; spúšťa (alebo odmietne spustiť) obslužný program.
Jedálny lístok a objednávka. Model dostane lístok („tieto nástroje máš a takto sa objednávajú“) a napíše objednávku presne v tvare, ktorému kuchyňa rozumie. Varí kuchyňa, nie hosť. Preto sa dá kuchyni prikázať, že niektoré jedlá bez súhlasu nevydá.
Náš agent pracuje nad textami 21 starších článkov tohto webu (rovnakými ako v dieloch o tokenizácii a RAG; sú po česky, preto aj agent pracuje po česky) a má tri nástroje. Celý jeho systémový prompt má 157 tokenov:
Jsi agent, který odpovídá na otázky podle článků webu. Máš nástroje:
- seznam(): Vypíše články a jejich délku ve znacích.
- hledej(text, max): Najde výskyty textu ve všech článcích; vrátí článek, pozici a okolí.
- cti(clanek, od, do): Vrátí úsek článku od pozice do pozice (znaky).
V každém kroku napiš krátkou úvahu a zavolej jeden nástroj, nebo napiš konečnou odpověď s odkazem na článek. Když něco nenajdeš, zkus jiný dotaz.
Skutočné nástroje programovacích agentov sú podobné: hľadať v súboroch, prečítať úsek súboru, upraviť ho, spustiť príkaz v termináli. Od roku 2024 sa nástroje dajú pripájať aj cez spoločný protokol MCP (Model Context Protocol), takže rovnaký nástroj — databázu, kalendár, prehliadač — môže používať ktorýkoľvek agent.
3. Jedna otázka, tri postupy
Otázka: „Prečo KL divergencia nie je vzdialenosť? Uveď príklad z článkov.“ (v origináli „Proč KL divergence není vzdálenost? Uveď příklad z článků.“). Odpoveď je v článku o teórii informácie: KL divergencia nie je symetrická, DKL(0,7 ‖ 0,5) = 0,119, ale DKL(0,5 ‖ 0,7) = 0,126. Kroky agenta sme spísali ručne — za model sme napísali úvahy a volania. Nástroje, ich výsledky aj tokeny sú však skutočné.
Príklad — prečo DKL(0,7 ‖ 0,5) ≠ DKL(0,5 ‖ 0,7)
Pre dve rozdelenia áno/nie (dážď s pravdepodobnosťou p, model hovorí q; p, q ∈ (0, 1)) je DKL(p ‖ q) = p log2 p/q + (1 − p) log2 1 − p/1 − q bitov (teória informácie).
DKL(0,7 ‖ 0,5) = 0,7 · log2 0,7/0,5 + 0,3 · log2 0,3/0,5 = 0,7 · log2 1,4 + 0,3 · log2 0,6 = 0,340 − 0,221 = 0,119.
DKL(0,5 ‖ 0,7) = 0,5 · log2 5/7 + 0,5 · log2 5/3 = −0,243 + 0,368 = 0,126.
Priemeruje sa zakaždým podľa iného rozdelenia (podľa toho, čo je skutočnosť), preto prehodenie argumentov dá iné číslo — a vzdialenosť (metrika) musí byť symetrická. Toto je odpoveď, ktorú agent hľadá.
-
Hľadám presne slová z otázky.
hledej(text: "KL divergence není metrika")nic nenalezeno
+34 tokenov, kontext 209 -
Nič. Skúsim len názov pojmu.
hledej(text: "KL divergence")5 výskytů: informace:3258: … minimum je tam, kde model říká pravdu. KL divergence Definice — Kullbackova–Leiblerova diver… informace:3656: …,222 bitu. Podle Gibbsovy nerovnosti je KL divergence vždy nezáporná a nulová jen pro q = p .… informace:3717: …záporná … (ďalších 310 znakov)
+205 tokenov, kontext 414 -
Je to v článku informace. Prečítam okolie.
cti(clanek: "informace", od: 3660, do: 3960)ivergence vždy nezáporná a nulová jen pro q = p . Pozor, KL divergence není vzdálenost: není symetrická. D KL (0,7 ‖ 0,5) = 0,119, ale D KL (0,5 ‖ 0,7) = 0,126. Záleží na tom, co je skutečnost a co model. Informační zisk Definice — podmíněná entropie H ( Y | X … (ďalších 40 znakov)
+146 tokenov, kontext 560
Tri volania nástrojov a štvrté volanie modelu napíše odpoveď. Prvé hľadanie nič nenájde — slová z otázky v texte nie sú. Agent to vidí a skúsi všeobecnejší dopyt; to je výhoda slučky oproti jednorazovému vyhľadaniu. Kontext na konci má 560 tokenov.
-
Neviem, kde to je. Prejdem články jeden po druhom.
cti(clanek: "co-je-pravdepodobnost")Jazykový model nevybírá další slovo, ale pravděpodobnosti všech slov. Klasifikátor neříká „je to kočka“, ale „s pravděpodobností 0,93 je to kočka“. Celé strojov … (ďalších 7 175 znakov)
+1 933 tokenov, kontext 2 108 -
Tu to nie je, ďalší článok.
cti(clanek: "csp")Rozvrh hodin, ve kterém žádný učitel neučí dvě třídy naráz. Sudoku. Rozmístění součástek na desce, směny v nemocnici, přidělení letadel k branám. Všechny tyhle … (ďalších 11 914 znakov)
+3 148 tokenov, kontext 5 256 - … ďalších 8 krokov rovnako (kontext na konci 24 927 tokenov)
Agent bez hľadania prechádza články v abecednom poradí. Na odpoveď narazí až v 10. článku a kontext medzitým narastie na 24 927 tokenov.
A tretí postup, jednorazový RAG z minulého dielu: vyhľadať tri najpodobnejšie úseky a vložiť ich do promptu. Všetky tri úseky pochádzajú zo správneho článku (informace, informace, informace), ale ani jeden neobsahuje príklad s číslami 0,119 a 0,126 — odpoveď by bola bez príkladu. Agent v slučke si môže povedať „toto nestačí, čítam ďalej“. Jednorazové vyhľadanie nie.
4. Kontext je drahý
Definícia — cena slučky
Model nemá pamäť medzi volaniami; pri každom volaní znova číta celý kontext — systémový prompt, úlohu a všetky doterajšie kroky a výsledky nástrojov. Nech beh agenta (definícia vyššie) skončil po K ≥ 1 volaniach modelu a pre k = 1, …, K je ck ∈ ℕ dĺžka kontextu (počet tokenov) pred k-tým volaním. Cena slučky je počet tokenov, ktoré model počas behu spracuje na vstupe:
Z = ∑k=1K ck.
Keďže kontext s každým krokom rastie, rastie Z zhruba s druhou mocninou počtu krokov (veta nižšie).
Ako keby ste pred každou vetou listu museli celý list prečítať znova od začiatku. Krátky list nevadí. Dlhý list, do ktorého ste navyše vlepili desať prečítaných kníh, je drahý — a vo všetkých tých stranách sa ľahko stratí to podstatné.
Postup „čítaj všetko“ stojí 141 820 spracovaných tokenov, „hľadaj a čítaj výrez“ len 1 358 — 104-krát menej, a na rovnakú odpoveď. Preto dobré programovacie agenty najprv hľadajú (grep) a čítajú len kúsky súborov. A preto sa dlhé sedenie z času na čas zhusťuje: staršia časť konverzácie sa nahradí zhrnutím, aby sa kontext zmestil a model sa v ňom nestrácal. Pomáha aj ukladanie začiatku promptu do vyrovnávacej pamäte (prompt caching), vďaka ktorému sa opakované čítanie rovnakého začiatku platí lacnejšie.
Z = ∑k=1K ck, ck = c1 + ∑j<k (vj + oj)
- Z
- celkovo spracované tokeny — to, čo sa platí a na čo sa čaká
- K
- počet volaní modelu (kroky s nástrojom + konečná odpoveď); každé volanie číta kontext znova od začiatku
- c1
- systémový prompt a úloha; sú v kontexte od prvého volania, takže sa zaplatia K-krát — preto sa oplatí mať ich krátke a ukladať do vyrovnávacej pamäte
- vj + oj
- tokeny, ktoré pridal krok j: volanie a výsledok nástroja. Krok j sa číta vo všetkých neskorších volaniach, preto sa dlhý výsledok nástroja platí mnohokrát
Veta — cena rastie s druhou mocninou počtu krokov
Nech K ∈ ℕ, K ≥ 1, je počet volaní modelu, c1 ≥ 0 dĺžka počiatočného kontextu a d ≥ 0 počet tokenov, ktorý pridá každý krok (volanie aj výsledok nástroja dohromady), takže ck = c1 + (k − 1) d pre k = 1, …, K. Potom
Z = K c1 + d · K(K − 1)/2.
Dôkaz: Z = ∑k=1K (c1 + (k − 1) d) = K c1 + d ∑k=1K (k − 1) a ∑k=1K (k − 1) = 0 + 1 + … + (K − 1) = K(K − 1)/2. ∎ Pre veľké K prevládne druhý člen ≈ d K²/2: dvakrát dlhšie sedenie stojí zhruba štyrikrát viac. (Farby zodpovedajú členom rozboru vyššie: d je stála hodnota vj + oj.)
Príklad — prepočet oboch postupov
Hľadaj a čítaj výrez. Systémový prompt má 157 tokenov, otázka 18, teda c1 = 175. Po troch krokoch má kontext 209, 414, 560 tokenov. Štyri volania modelu čítajú Z = 175 + 209 + 414 + 560 = 1 358 tokenov (farby podľa vzorca vyššie).
Čítaj všetko. K = 11 volaní, kontext narastie z 175 na 24 927 tokenov, priemerne o d = 24 927 − 175/10 ≈ 2 475 za krok. Podľa vety Z ≈ 11 · 175 + 2 475 · 11 · 10/2 = 138 050; skutočnosť je 141 820 (články majú rôznu dĺžku, takže kroky nepridávajú presne rovnako). Systémový prompt s otázkou je z toho len 1 925 tokenov — skoro všetko je opakované čítanie článkov.
5. Plán a pamäť
Definícia — plánovanie a pamäť agenta
Tieto pojmy nie sú matematické; sú to roly častí behu agenta (definícia AI agenta vyššie, kontexty c1, c2, …, nástroje N). Jedno sedenie je jeden beh agenta od c1 po zastavenie.
- Plán je text v kontexte — číslovaný zoznam krokov, ktorý agent napíše ako jeden zo svojich krokov vk na začiatku sedenia a v ďalších krokoch opakovane prepisuje (odškrtáva hotové, mení zvyšné). Model ho číta ako každú inú časť kontextu; nič ho nevynucuje.
- Pracovná pamäť je kontext ck jedného sedenia. Zaniká so sedením a je obmedzená dĺžkou kontextu, ktorú model zvládne.
- Dlhodobá pamäť sú dáta uložené mimo modelu aj mimo kontextu (súbory, databázy), ktoré pretrvajú koniec sedenia. Agent do nich zapisuje a číta z nich len volaním nástrojov; v ďalšom sedení sa dostanú do kontextu, len ak ich agent prečíta alebo ich obslužný program vloží do c1.
- Čiastkový agent je iný beh agenta, ktorý hlavný agent spustí ako nástroj: čiastkový agent začne s vlastným počiatočným kontextom (len popis čiastkovej úlohy), pracuje vo vlastnej slučke a do kontextu hlavného agenta sa ako výsledok nástroja N(vk) vráti len jeho konečná odpoveď. Podrobnosti jeho práce tak hlavný kontext nezaplnia.
Remeselník na dlhšej zákazke si píše zoznam na papier a večer si do zošita poznačí, čo zistil — ráno si nemusí všetko pamätať, stačí otvoriť zošit. Na pomocné práce pošle učňa a od neho chce len „hotovo, bolo to tu“.
Pri programovacích agentoch je dlhodobou pamäťou zvyčajne obyčajný textový súbor v projekte (pravidlá, príkazy, na čo si dať pozor), ktorý agent číta na začiatku každého sedenia. Je to najjednoduchšia a najprehľadnejšia pamäť: človek ju môže prečítať aj opraviť.
6. Dlhé úlohy a kontrola
Agent, ktorý urobí správny krok v 90 % prípadov, vyzerá spoľahlivo. Lenže úloha sa skladá z mnohých krokov a chyba v ktoromkoľvek z nich ju pokazí. Keď sa krok podarí s pravdepodobnosťou p, podarí sa celá úloha z n krokov s pravdepodobnosťou pn — ak agent chyby nespoznáva.
Definícia — uzavretá slučka so spätnou väzbou
Nech p ∈ [0, 1], d ∈ [0, 1], r ∈ ℕ ∪ {0} a n ∈ ℕ, n ≥ 1. Krok s kontrolou (uzavretá slučka) prebieha takto:
- agent krok vykoná; pokus sa podarí s pravdepodobnosťou p;
- agent výsledok overí (spustí testy, prečíta výstup príkazu, porovná s očakávaním); podarený pokus kontrola vždy prijme, nepodarený spozná ako chybný s pravdepodobnosťou d;
- pokus sa podaril ⇒ krok skončí úspechom;
- pokus sa nepodaril, kontrola to spoznala a agent zatiaľ opakoval menej než r-krát ⇒ agent krok opakuje od bodu 1;
- inak (chyba prešla kontrolou, alebo došli opakovania) krok skončí neúspechom.
Výsledky jednotlivých pokusov a kontrol sú navzájom nezávislé. Úspešnosť kroku q je pravdepodobnosť, že krok skončí úspechom; úloha je n takých krokov za sebou, nezávislých, a podarí sa práve vtedy, keď sa podaria všetky. Potom
q = p ∑k=0r ((1 − p) d)k, P(úloha sa podarí) = qn.
Sčítanec k je pravdepodobnosť, že prvých k pokusov zlyhá a zlyhanie sa spozná (každý s pravdepodobnosťou (1 − p) d) a pokus k + 1 sa podarí; tieto možnosti sa navzájom vylučujú, preto sa sčítajú. Bez kontroly (d = 0 alebo r = 0) je q = p.
Kto píše dlhý program bez spúšťania, skoro isto v ňom má chybu. Kto po každej zmene pustí testy, chybu nájde hneď, keď je ešte malá a vie sa, kde je. Agenty na tom nie sú inak.
q = p ∑k=0r ((1 − p) d)k = p + p (1 − p) d + p ((1 − p) d)² + …
- p
- pokus sa podarí; každý sčítanec končí práve jedným podareným pokusom
- 1 − p
- pokus zlyhá; každé zlyhanie pred úspechom stojí jeden taký činiteľ
- d
- kontrola zlyhanie spozná; len vtedy agent krok zopakuje — nespoznaná chyba prejde ďalej a pokazí úlohu
- ∑k=0r, k
- k = koľko pokusov zlyhalo, kým jeden vyšiel; najviac r opakovaní, aby agent neskúšal donekonečna
S p = 0,9 a dvadsiatimi krokmi sa bez kontroly podarí len 12 % úloh, s kontrolou 79 %. Simulácia 20 000 úloh dáva 12 % a 79 %, vzorec sedí. Aj veľmi dobrý krok (p = 0,99) pri stovke krokov bez kontroly zlyhá častejšie, než uspeje (37 %); s kontrolou uspeje v 90 %. Toto je hlavný dôvod, prečo programovacie agenty fungujú tak dobre: kód sa dá spustiť a otestovať, takže skoro každý krok má spätnú väzbu. Organizácia METR (2025) meria, že dĺžka úloh, ktoré agenty zvládnu v polovici prípadov, sa zhruba každých sedem mesiacov zdvojnásobuje.
Príklad — p = 0,9, d = 0,9, r = 2, dvadsať krokov
Úspešnosť kroku (farby podľa vzorca vyššie): q = 0,9 + 0,9 · 0,1 · 0,9 + 0,9 · (0,1 · 0,9)² = 0,9 + 0,081 + 0,00729 = 0,98829.
Celá úloha: bez kontroly 0,920 = 0,122, s kontrolou 0,9882920 = 0,790. Krok sa zlepšil len z 90 % na 98,8 %, ale úloha z 12 % na 79 % — mocnina n malé rozdiely v kroku nafukuje.
Definícia — dĺžka úlohy, ktorú agent zvládne v polovici prípadov
Nech q ∈ (0, 1) je úspešnosť kroku a úloha z n nezávislých krokov sa podarí s pravdepodobnosťou qn (definícia vyššie). Dĺžka úlohy zvládnuteľnej v polovici prípadov je reálne číslo n50 % > 0, pre ktoré qn50 % = 1/2, teda
n50 % = ln 0,5/ln q = ln 2/−ln q ≈ 0,69/1 − q pre q blízko 1
(približná rovnosť vyplýva z −ln q ≈ 1 − q pre q → 1). Keďže qn s rastúcim n klesá, platí qn ≥ 1/2 práve vtedy, keď n ≤ n50 %; najväčší celý počet krokov, ktorý agent zvládne aspoň v polovici prípadov, je teda ⌊n50 %⌋.
V našom modeli: p = 0,9 bez kontroly 6,6 kroku, s kontrolou 58,8; p = 0,99 bez kontroly 69,0, s kontrolou 686. Úloha, ktorú agent zvládne napoly, sa predĺži zhruba úmerne tomu, koľkokrát klesne chybovosť kroku 1 − q.
Rovnakú veličinu (dĺžku úlohy, ktorú agent zvládne v 50 % prípadov) meria METR — len nie v krokoch, ale v čase, ktorý by úloha zabrala človeku (Thomas Kwa a kol., Measuring AI Ability to Complete Long Tasks, 2025). Náš vzorec je zjednodušený model s nezávislými krokmi, nie ich metóda.
7. Oprávnenia a dohľad
Agent, ktorý smie spúšťať príkazy, smie aj škodiť — omylom (zmaže nesprávny priečinok) alebo na pokyn, ktorý si prečítal v cudzom texte (prompt injection). Obrana nestojí na modeli, ale na obslužnom programe: nástroje s obmedzenými právami, beh v izolovanom prostredí, a hlavne schvaľovanie — nebezpečné alebo nevratné kroky vykoná až po súhlase človeka. Na tom stojí aj coden: agent pracuje na vašom počítači a vy jeho kroky schvaľujete z telefónu.
8. Zhrnutie
- Agent = jazykový model v slučke: úvaha, volanie nástroja, výsledok do kontextu, znova.
- Model nástroje len opisuje štruktúrovaným volaním; spúšťa ich obslužný program, ktorý môže vynútiť pravidlá.
- Slučka vie opraviť neúspešné hľadanie — jednorazový RAG nie.
- Každé volanie číta celý kontext: „čítaj všetko“ stálo 141 820 tokenov, „hľadaj a čítaj výrez“ 1 358.
- Plán, poznámky v súboroch a čiastkové agenty držia kontext malý a prehľadný.
- Bez kontroly klesá úspešnosť s dĺžkou úlohy ako pn; testy a overovanie to menia (20 krokov pri p = 0,9: 12 % → 79 %).
Chcete si to vyskúšať? Požiadajte AI agenta, nech vám opíše každé volanie nástroja, ktoré pri úlohe urobí, a na konci nech odhadne, koľko tokenov ho úloha stála. Potom mu zadajte rovnakú úlohu s pokynom „najprv hľadaj, čítaj len výrezy“.
Máte na to iný názor? Napíšte na support@coden-app.com.