Konanie bez pýtania sa: Šesť podmienok
Ako agent získa povolenie opravovať veci samostatne bez toho, aby sa toto povolenie potichu zmenilo na povolenie na všetko.
Plošné pravidlo „schváliť všetko“ robí agenta zbytočným pre bežné opravy; plošné povolenie ho robí nebezpečným. Stredná cesta je stály mandát: autonómna činnosť je povolená iba vtedy, keď platí všetkých šesť podmienok súčasne, so zlyhaním smerom k uzavretiu, s denným limitom a s pravidlom „jeden priestupok“, ktoré mandát pozastaví.
Problém
Agent, ktorý sa musí pýtať pred každou akciou, je bezpečný, no takmer nepoužiteľný. Väčšina toho, čo by mal robiť, sú malé, interné a vratné zásahy: opraviť nefunkčný odkaz, opraviť počet, zosynchronizovať index, ktorý sa rozišiel so skutočnosťou, opraviť cestu, ktorá sa presunula.
Ak sa budete pýtať na každý jeden zásah, znovu vytvoríte úzke hrdlo, ktoré mal agent odstrániť. Ak ich schválite hromadne, udelíte povolenie bez hraníc, ktoré sa nakoniec uplatní práve na hranici.
Ani jedno z týchto zlyhaní nie je hypotetické. To prvé zabilo publikačný projekt — 20 minút schvaľovania na jednu položku, odkladané, až kým sa to úplne nezastavilo. To druhé je zlyhanie, ktorého sa všetci obávajú a nikto ho nemeria.
Návrh
Stály mandát: vopred schválená autonómna činnosť v rámci pevne stanoveného rozsahu. Nie úroveň oprávnenia, nie vec úsudku — kontrolný zoznam vyhodnocovaný pred každou akciou, v ktorom musia platiť všetky podmienky súčasne.
Mandát je napísaný ako jeden citovateľný riadok, za ktorým nasledujú jeho podmienky:
Reversible internal repair may proceed without approval while all six conditions hold. Any one unmet: ask.
Šesť podmienok:
- Vratné, so zálohou. Existuje cesta späť, ktorá bola vytvorená pred zmenou, nie iba naplánovaná.
- Overené. Po zmene prebehne kontrola, ktorá dokáže rozlíšiť úspech od zlyhania, ktoré vyzerá vierohodne.
- Žiadny vonkajší dosah. Nič neopúšťa systém. Žiadne odosielanie, žiadne publikovanie, žiadne volanie tretej strany prenášajúce dáta.
- Riadenie je vylúčené. Mandát nesmie meniť pravidlá, ktoré definujú samotný mandát, rozhodovaciu maticu, ani nič, čo sa týka toho, ako sa autonómia udeľuje.
- Zaznamenané v audite. Každá akcia zapíše záznam. Nie kvôli hľadaniu vinníka — bez záznamu nie je možné nič kalibrovať a diskusia o tom, či je rozsah nastavený správne, sa zmení na výmenu dojmov.
- Sémanticky neutrálne. Zmena opravuje formu, nie význam. Oprava nefunkčného odkazu je v rozsahu; prepísanie vety, ktorá ho obsahuje, nie je.
Nad tým stoja ešte dve obmedzenia. Denný limit — desať akcií — takže nekontrolovateľná slučka je obmedzená už svojou konštrukciou, nie tým, že si jej niekto všimne. A pravidlo „jeden priestupok“: jediná akcia mimo stanoveného rozsahu úplne pozastaví mandát až do preskúmania.
Kompromisy
Podmienka 4 je nosná a zároveň najviac láka na uvoľnenie. Agent, ktorý si môže upravovať vlastné riadenie, dokáže postupne rozširovať svoj rozsah, pričom každý krok pôsobí lokálne rozumne. Vylúčenie riadenia stojí skutočné pohodlie — agent sa musí pýtať aj na opravu zjavného preklepu vo vlastných pravidlách — a táto cena je za to, že hranica zostane tam, kam bola postavená.
Zlyhanie smerom k uzavretiu vytvára trenie pri nejednoznačnosti. Ak sa ktorákoľvek podmienka nedá preukázať, akcia sa vráti k pýtaniu sa. Nie „vyzerá to v poriadku“ — ale preukázané. Tým sa nejasné prípady menia na otázky, čo je správny smer a občas je to na obtiaž.
Limit je stanovený svojvoľne. Desať za deň bolo zvolených preto, lebo to s rezervou prevyšuje pozorovanú potrebu bez toho, aby to umožnilo nekontrolovateľný rozbeh. Je to odhad a je zapísaný ako odhad, aby sa dal revidovať podľa záznamu, nie podľa pocitu.
Vratnosť nie je vždy taká jednoznačná, ako sa zdá. Zmenu, ktorú je technicky možné vrátiť späť, si medzitým mohol niekto prečítať. V rámci čisto interného systému je to prijateľné; presne preto podmienka 3 vylučuje čokoľvek vonkajšie, kde je vratnosť iba fikciou.
Ako to vyzerá v praxi
Mandát sa nevníma ako povolenie. Vníma sa ako absencia prerušení, čo sťažuje jeho hodnotenie — úspechy sú neviditeľné a badateľné je iba trenie.
Typická akcia, ktorá spĺňa podmienky: indexový súbor uvádza 24 položiek, adresár ich obsahuje 26, rozdiel vznikol pridaním dvoch položiek bez prepočítania. Oprava znamená upraviť jedno číslo. Záloha existuje, overenie je nové prepočítanie, nič neopúšťa systém, nejde o riadenie, akcia sa zaznamená a význam žiadnej položky sa nemení. Platí všetkých šesť podmienok, takže sa to udeje bez pýtania sa.
Prípad z tej istej rodiny, ktorý tesne neprejde: ten istý index uvádza 24 položiek, adresár ich obsahuje 22 a dve položky sa nedajú vysvetliť. Navonok ide o rovnakú opravu. Zníženie čísla v hlavičke by však tvrdilo, že tie dve chýbajúce položky nikdy neexistovali, čo nespĺňa podmienku 6 — zmena by menila význam, nie formu. Z tohto prípadu sa stáva otázka a práve táto otázka je cenným výstupom.
Rozdiel medzi týmito dvoma prípadmi je jadrom celého návrhu. Oba sú úpravou jedného čísla. Jeden je účtovníctvo a druhý je tvrdenie o histórii, a žiadne pravidlo formulované ako „oprav malé interné nezrovnalosti“ ich nedokáže od seba odlíšiť.
V praxi drží stanovený rozsah pohromade vďaka trom veciam.
Podmienky sa vyhodnocujú, nie si na ne spomína spamäti. Sú napísané ako kontrolný zoznam v tom istom súbore ako mandát a kontrolujú sa v poradí. Zásada sa pod časovým tlakom interpretuje; zoznam sa prečíta.
Záznam sa iba dopĺňa a je nudný. Jeden riadok na akciu: čo, prečo, ktoré podmienky boli skontrolované, ako to bolo overené. Nikoho nebaví ho písať a je to jediný artefakt, ktorý opisuje, čo sa skutočne stalo, nie čo sa malo stať.
Limit je citeľný ešte predtým, ako začne obmedzovať. Desať za deň je veľkorysé číslo, takže jeho dosiahnutie je samo osebe signálom — buď sa niečo zacyklilo, alebo je nejaká trieda opráv natoľko častá, že si zaslúži poriadnu opravu namiesto opakovaného ručného zásahu.
Čo zlyhalo
Mandát vznikol kvôli dvom opačným zlyhaniam a práve to druhé formovalo podmienku 4.
Prvým bola nečinnosť. Malé interné opravy sa hromadili v rade na schválenie a jednoducho sa neuskutočnili — nefunkčné odkazy, rozídené počty, zastarané cesty, každá jednotlivo triviálna, no dokopy stačili na to, aby sa vlastné záznamy systému stali nedôveryhodnými. Audit takto nahromadených nefunkčných odkazov našiel 240.
Druhým bolo postupné rozširovanie rozsahu v súvisiacej oblasti. Pravidlo napísané na pokrytie jedného úzkeho prípadu bolo analogicky uplatnené na širší prípad, na základe úvahy, ktorá bola v každom kroku lokálne správna. Nič sa nepokazilo, čo je horšie, než keby sa niečo pokazilo: neobmedzené povolenie, ktoré ešte nebolo zneužité, je na nerozoznanie od obmedzeného — až do chvíle, kým nie je.
Preto je stanovený rozsah kontrolným zoznamom, nie zásadou. Zásady sa interpretujú. Kontrolné zoznamy sa vyhodnocujú.
Vždy, keď sa to takto opíše, vynorí sa jedna otázka: prečo jednoducho nedôverovať úsudku agenta, keď na to úsudok je? Odpoveď znie, že úsudok je presne to, čo kontrolný zoznam chráni. Agent požiadaný, aby vyhodnotil je toto dostatočne vratné, odpovie „áno“ častejšie pod časovým tlakom, v dlhších kontextoch a po sérii úspešných podobných akcií — teda práve v troch situáciách, kde na správnej odpovedi záleží najviac. Kontrolný zoznam sa neunaví a nenaberá si sebavedomie z vlastnej histórie úspechov. Úsudok sa investuje do samotnej práce; rozsah sa neinvestuje do ničoho — a presne o to ide.
Súbory
Tri artefakty, všetky vo formáte markdown. Rozhodovacia matica, ktorá definuje úrovne a priradenia podľa typu akcie. Samotný mandát so šiestimi podmienkami, limitom a pravidlom „jeden priestupok“. A záznam akcií — jeden riadok na každú autonómnu akciu, iba pridávaný, nikdy neupravovaný.
Záznam je tá časť, ktorú by ako prvú vynechali a mala by sa vynechať ako posledná. Všetko ostatné opisuje zámer; iba záznam opisuje, čo sa skutočne stalo.
$ head -12 acting-without-asking.md
$ cite acting-without-asking
Citation id SV-9903 is stable. It resolves at
https://stillvalid.dev/sk/c/SV-9903 even if this artifact moves to another section,
which a bare URL does not survive. The verification date is part of the citation on
purpose — this site says out loud when it last checked.
[Konanie bez pýtania sa: Šesť podmienok](https://stillvalid.dev/sk/architecture/acting-without-asking) — stillvalid, SV-9903 (deep-dive, verified 2026-08-14)