Představme si, že AI agent přidá do firemní aplikace mezipaměť. Stránka zrychlí, testy projdou a změnu někdo schválí. Za měsíc si zákazník změní nastavení, ale aplikace mu dál ukazuje starou hodnotu. Programátor otevře kód a zeptá se asistenta, proč tam mezipaměť je. Dostane plynulé vysvětlení — jenže pořád neví, jestli čte původní důvod, nebo příběh právě sestavený z výsledku.
Tohle je problém, který stojí za pozornost i bez dalšího souboje modelů. AI umí komentovat cizí kód, ale komentář není paměť vzniku programu. Experimentální nástroj Wy, představený v naší zprávě o propojení změn kódu s historií agentů, se snaží obě věci rozdělit. Vedle změněných souborů ukazuje uložené konverzace Codexu a Claude Code, aby člověk mohl otevřít podklad a zjistit, co v něm opravdu stojí.
Podle nás je na tom nejcennější odmítnutí jedné pohodlné zkratky: že každé rozumně znějící vysvětlení je zároveň dokladem záměru. U programu, který má někdo udržovat několik let, tenhle rozdíl rozhoduje o tom, co si příští vývojář troufne odstranit a co bude ze strachu obcházet.
Vysvětlení má datum. Nebo by ho alespoň mělo mít
Dokumentace Wy rozlišuje tři stavy: Recorded, Inferred a Unexplained. První znamená nalezené výslovné zdůvodnění ve viditelném záznamu agenta. Druhý je hypotéza opřená o dostupný kód. Třetí přiznává, že rozhodnutí vidíme, ale jeho motivaci z podkladů neznáme. To není stupnice kvality programu; je to informace o původu vysvětlení.
K označení Recorded podle dokumentace nestačí nový posudek modelu. Nástroj kontroluje, že zdůvodnění obsahuje přesnou uloženou citaci asistenta a že odkazy míří do předaných podkladů. Nově vytvořené vysvětlení zůstává samostatným zpětným hodnocením a nepovýší se na původní záměr. Model nesmí dopsat minulost a pak ji vydávat za nalezený záznam.
To ovšem neznamená, že původní agent mluvil pravdu nebo zvolil dobré řešení. Jestli tehdy napsal, že ukládání výsledku zrychlí aplikaci, máme doklad jeho tvrzení, nikoli měření výkonu. A konverzace spojená s repozitářem sama nedokazuje autorství změny. Wy na obě hranice výslovně upozorňuje; jeho citace mají pomoci vyšetřování, ne ukončit debatu.
V našem příkladu proto potřebujeme oddělit dvě otázky. Proč agent mezipaměť přidal? A za jakých podmínek je ještě správné ji používat? První může zodpovědět uložená věta, druhou musí vyřešit požadavek na chování aplikace a jeho ověření. Když důvod nenajdeme, je poctivé nechat místo prázdné. Elegantní domněnka se nesmí stát závazkem pro dalšího správce.
Největší účet přijde při předání práce
Důvody změn nejsou akademická ozdoba. U opakování neúspěšného požadavku chce příští vývojář vědět, zda se řešil krátký výpadek spojení, nebo zda lze bezpečně opakovat celou operaci. U pevného limitu potřebuje rozlišit ochranu před přetížením od čísla převzatého z ukázky. U databázového sloupce se ptá, jestli odpovídá obchodnímu pravidlu, nebo vznikl jen proto, že se agentovi snadněji psal dotaz. Stejný řádek kódu může mít v každé situaci jiný důvod k zachování.
Wy k tomu podle autora načítá rozdíly v Gitu, soubory a existující lokální záznamy relací. Před začátkem programování není nutné zapínat jeho vlastní rekordér. V podporovaných záznamech úprav dokáže uchovat také podobu kódu z relace, i když už byla změna začleněna do historie projektu. Člověk tak nemusí prohledávat dlouhý chat odděleně od souboru, kterého se rozhovor týkal.
Nečekejme ale automatického historika celého systému. Výchozí offline detekce je podle README selektivní, omezená na nejvýše dvanáct rozhodnutí v jedné revizi a zaměřená na vybrané vzory, například mezipaměť, verze závislostí, provozní limity, databázová schémata a opakování požadavků. Vyhledávání podkladů pracuje s lexikální shodou. Důležité rozhodnutí proto může uniknout jen tím, že se o něm v konverzaci mluvilo jinými slovy.
Praktický přínos bychom hledali při předávání rozdělané práce, údržbě starší změny a hledání příčiny chyby. Nikoli v soutěži, kdo dokáže vygenerovat nejdelší souhrn projektu. Čím rychleji vzniká kód, tím méně dává smysl spoléhat na to, že si jeden člověk udrží v hlavě všechny kompromisy, které během jeho vzniku přijal. Historie má cenu tehdy, když lze z konkrétní změny dojít ke konkrétnímu podkladu.
Další AI může pomoci. Nesmí přepsat původní výpověď
Základní prohlížení změn a uložených podkladů funguje podle dokumentace bez síťového požadavku. Nové vysvětlení uživatel vyžádá výslovně; vybraný instalovaný Codex nebo Claude dostane omezené výřezy kódu, změn a konverzací s odstraněnými rozpoznanými tajnými hodnotami. To je jiné uspořádání než automaticky posílat každou otevřenou položku do modelu. Současně platí, že lokálně uložený rozhovor neznamená lokální zpracování při použití cloudového asistenta.
Na Radyz jsme nedávno rozebírali vzájemné revize Claude Code a Codexu. Tam druhý agent hledá chyby v práci prvního. Wy řeší jinou otázku: odkud pochází tvrzení o důvodu změny. Oba postupy se mohou doplňovat, ale nelze je zaměnit. Oponent může navrhnout lepší návrh programu; tím ještě nezjistí, co vedlo autora k původnímu řešení.
Zvlášť užitečné je, když se nová analýza s původním zdůvodněním rozchází. Agent mohl při psaní změny přehlédnout následky, které další kontrola odhalí. Správný výsledek pak není uhlazený společný příběh, ale viditelný rozpor: tehdy bylo řečeno toto, nynější kód dělá něco jiného. Právě z takového rozporu lze odvodit konkrétní test nebo otázku na zadavatele.
Projekt je podle README experimentální a ve verzi 0.2.0. Jeho popis vyhodnocování výslovně říká, že automatické kontroly ověřují chování implementace, nikoli přesnost vysvětlení v reálné práci; neuvádí výsledky kvality ani nákladů při použití skutečných modelů. Wy jsme sami provozně netestovali. Je to zajímavý návrh pracovního postupu, nikoli doložený důkaz, že revize už budou rychlejší nebo spolehlivější.
Historie změn potřebuje správce, ne další skládku
Spojit kód s konverzací znamená také vytvořit další místo s citlivými informacemi. Bezpečnostní dokumentace Wy uvádí, že lokální složka .wy obsahuje snímky zdrojového kódu, výřezy rozhovorů a cesty k souborům. Úložiště není šifrované a automatické odstraňování tajných hodnot nemůže rozpoznat všechna firemní data. Autor proto doporučuje tuto složku vyloučit ze sdílení přes Git.
Podobnou cenu podrobné historie jsme popsali u černé skříňky pro AI agenty, která se věnuje záznamu jejich akcí a kontrole rizikových operací. Wy není taková provozní ochrana: podle dokumentace samo neupravuje aplikační soubory ani nespouští posuzovaný kód. Prohlížeč důvodů, bezpečnostní brzda a test chování jsou tři různé role. Je chyba čekat všechny od jednoho nástroje.
Tým by si proto před pokusem měl určit, kdo smí historii číst a co z ní smí poslat poskytovateli modelu. U důležité změny bychom chtěli dohledat původní požadavek, podklad pro zdůvodnění, podmínku ověřenou testem a člověka, který změnu přijal. Pokud se důvod později ukáže jako chybný, nová informace má původní stopu doplnit, nikoli ji potichu nahradit. Žádný prohlížeč historie nezachrání tým, který si při předání uchová pouze větu „hotovo, vše funguje“.
Wy má zveřejněnou licenci MIT, ale otevřenost projektu není zárukou správných citací ani bezpečného zacházení s firemním kódem. Jeho podstatná myšlenka je přesto zdravá: u vysvětlení máme chtít znát nejen obsah, ale i jeho původ. AI nám může pomoci pochopit program. Neměla by si přitom vymýšlet jeho životopis. Člověk, který po ní převezme údržbu, nepotřebuje lepší výmluvu. Potřebuje vědět, které rozhodnutí bylo skutečně učiněno, na základě čeho a kdo za něj dnes odpovídá.