Preskočiť na obsah
coden

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.

11 minút Matěj Žalmánek 2026-10-16

Séria Základy AI Diel 50 z 52
  1. Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
  2. Stručná história umelej inteligencie: od Turinga po jazykové modely
  3. Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
  4. Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
  6. Funkcie a zobrazenia: prečo je každý model v AI funkcia
  7. Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
  8. Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
  9. Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
  10. Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
  11. Gradientný zostup: ako sa model učí
  12. Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
  13. Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
  14. Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
  15. Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
  16. Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
  17. Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
  18. Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
  19. Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
  20. Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
  21. Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
  22. Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
  23. Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
  24. Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
  25. Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
  26. Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
  27. Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
  28. Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
  29. Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
  30. Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
  31. Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
  32. Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
  33. Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
  34. Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
  35. Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
  36. Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
  38. Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
  39. Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
  40. Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
  41. Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
  42. Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
  43. Prompty, kontext a RAG: ako modelu dať správne informácie
  44. Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
  45. Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
  46. Difúzne modely: ako sa z čistého šumu stane obrázok
  47. Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
  48. Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
  49. Policy gradient a PPO: učenie priamo stratégie
  50. Ako funguje AI agent: jazykový model v slučke s nástrojmi
  51. Programovanie s AI agentmi: zadanie, testy a kontrola
  52. Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť

Celá osnova série Hotovo: 52 z 83 tém

Čo si odnesiete
  • Č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

  1. T je množina všetkých textov (konečných postupností tokenov) a ⊕ : T × T → T pripojenie textu na koniec;
  2. 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);
  3. F ⊆ T je množina krokov, ktoré sú konečnou odpoveďou; ostatné kroky v ∈ T ∖ F sú volania nástroja;
  4. N : T ∖ F → T je obslužný program: volanie nástroja naozaj vykoná a vráti jeho výsledok ako text;
  5. 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.

Laicky povedané

Š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)
⊕ je pripojenie textu na koniec. Toto je zjednodušená formalizácia pre tento diel, nie zápis z článku o ReAct.
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ý

  1. menom ji (mená rôznych nástrojov sú rôzne),
  2. slovným popisom, na čo slúži,
  3. schémou parametrov Si — popisom, aké parametre a akých typov nástroj prijíma (typicky ako schéma JSON),
  4. 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:

  1. 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;
  2. 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.

Laicky povedané

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

Postup 1: hľadaj a čítaj výrez
  1. Hľadám presne slová z otázky.

    hledej(text: "KL divergence není metrika")
    nic nenalezeno
    +34 tokenov, kontext 209
  2. 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
  3. 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.

Postup 2: čítaj články jeden po druhom
  1. 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
  2. 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
  3. … ď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).

Laicky povedané

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

102103104105106 čítaj všetko 141 820 hľadaj a čítaj výrez 1 358 jednorazový RAG 647 spracované tokeny (počet, log. mierka) postup (variant)
Koľko tokenov model spracuje celkovo (logaritmicky)

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
Cena jedného kroku nezávisí len od toho, čo krok vráti, ale aj od toho, koľko krokov po ňom ešte príde.
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.

  1. 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.
  2. Pracovná pamäť je kontext ck jedného sedenia. Zaniká so sedením a je obmedzená dĺžkou kontextu, ktorú model zvládne.
  3. 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.
  4. Č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.
Laicky povedané

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:

  1. agent krok vykoná; pokus sa podarí s pravdepodobnosťou p;
  2. 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;
  3. pokus sa podaril ⇒ krok skončí úspechom;
  4. pokus sa nepodaril, kontrola to spoznala a agent zatiaľ opakoval menej než r-krát ⇒ agent krok opakuje od bodu 1;
  5. 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.

Laicky povedané

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
Úspešnosť kroku s kontrolou; celá úloha z n nezávislých krokov sa podarí s pravdepodobnosťou qn. Bez kontroly je d = 0 a zostane q = p.
0 %25 %50 %75 %100 % 020406080100 dĺžka úlohy n (počet krokov) úspešnosť úlohy (%)
Úspešnosť úlohy podľa počtu krokov (kontrola spozná 90 % chýb, najviac dva opakované pokusy) krok sa podarí v 90 % krok sa podarí v 99 % plne s kontrolou, čiarkovane bez

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.

Agent na vašom počítači, ovládaný z telefónu