Fuckup AI projektu vám přijde poštou o půl roku později
Na demu AI projekt funguje. Průšvih dorazí až za pár měsíců, jako incident nebo jako faktura.
Dnešní newsletter je o tom, proč se to opakuje pořád stejně a jak fuckup vytáhnout na světlo dřív, než ho zaplatíte.
Vezměte si číslo, kterým se dnes prodává AI ve vývoji: zrychlení o 20 až 30 procent. Změřené, u nás na třech projektech. Platí ale tam, kde má model kontext. Na projektu s hodně integracemi na třetí strany, ke kterým se AI nemá jak dostat, spadne to samé zrychlení na pět procent. Když si rozpočet postavíte na 25 procentech plošně, na integračně těžké části práce vám chybí dvacet procentních bodů, které do plánu nikdo nezapočítal. Na startu se to neukáže, přijde to až ve skluzu.
A výstup, který vypadá hotově, hotový být nemusí. Na jednom projektu mutační agent ukázal, že skoro třetina AI-generovaných testů netestuje nic. Zelená v pipeline, prázdno uvnitř.
Doručená pošta, datum: za šest měsíců
Představte si, že vám dnešní AI projekt pošle poštu za půl roku. Předměty, které dorazí, vypadají takhle. Odškrtněte si, kolik z nich by přišlo i vám.
Re: code review – proč nám z agenta teklo TLS ven?
Agent v jedné aplikaci vypnul TLS. Zákaznická data tekla po internetu nešifrovaně. Za běhu to nezvedlo nic, objevilo se to až při review. V regulovaném provozu za tímhle e-mailem chodí rovnou hlášení regulátorovi.
FW: nákup – vendor slíbil AI, zvládla 2 z 20 dotazů
Vestavěná AI v customer care odbavila dva dotazy z dvaceti, a to jsme jí dopředu připravili dvacet maker. Běží na zastaralém lokálním modelu. To v demu nikdo neřekl.
URGENT: appka od nováčka zase spadla
Junior appku „vyvajboval“ za pár dní a na demu jela. V produkci padá. Nemá pořádný backend, přeskočila se architektura i guardraily.
Report: noční smoke testy běží, na flaky nikdo nereaguje
Testy běží každou noc, report se generuje. Jen ho nikdo nečte a na flaky testy nikdo nekoná. Gate žádný.
Re: produktivita – čísla za tokeny nám nesedí
Chtěli jsme měřit přínos AI přes spálené tokeny. Lidi si přes model začali generovat básničky, aby čísla vypadala líp. Měřili jsme, kdo umí utratit tokeny.
FW: dev tým – marketing nám zase hodil kód přes zeď
Někdo si týden něco naklikal mimo naše skeletony a pipeline a poslal nám to dodělat. Vývojář na tom strávil týden, aby to vůbec nastartovalo.
Re: pilot automatizace – proč to testuje cookie lištu?
Nasadili jsme obecný automatizační nástroj na kvalifikaci zboží. V demu utopil většinu úsilí do testování cookie lišty. Na to, proč jsme ho kupovali, nedošlo.
Odesílatel je pokaždé stejný
Sedm různých katastrof, jeden zpáteční adresát. Pokaždé chyběla stejná věc, a nebyl to lepší model.
- U TLS chyběla tvrdá kontrola, která agenta zastaví dřív, než něco vypne. Pravidlo, přes které se prostě nedostane.
- U vendora s 2 z 20 chyběl test na vašich datech před podpisem. Demo běží na jejich příkladech, vaše realita je jinde.
- U appky od nováčka a u kódu přes zeď chyběl vlastník výstupu a mantinel, který nepustí nehotovou věc dál.
- U nočních testů a u tokenů chyběl gate a poctivá metrika. Report, na který nikdo nereaguje, ani číslo, které jde nahrát básničkou, vás před ničím neochrání.
Společný jmenovatel je jeden: shit in, shit out. Příčina sedí pokaždé v procesu okolo modelu a dá se vytáhnout na světlo dřív, než dojde na poštu.
Filtr, který ty e-maily zachytí ještě v konceptu
Dobrá zpráva: žádný z těch e-mailů nepotřebuje reorganizaci ani nový nástroj. Potřebuje bránu na správném místě.
- Deterministická kontrola dřív než agent. Co nesmí projít nikdy, třeba vypnout šifrování nebo sáhnout na produkční data, patří do pravidla v pre-commit nebo v CI, ne do promptu. Deny-list volání, přes která se agent nedostane. Agentní review až nad tou tvrdou vrstvou.
- Test na vašich datech před podpisem. Než koupíte vestavěnou AI, dejte jí dvacet svých reálných dotazů a dopředu si napište, kolik z nich musí projít, aby to byl nákup. Číslo z toho testu je pravda, číslo z dema je marketing.
- Vlastník u každého výstupu. Někdo musí říct „tohle jde dál“ a „tohle ne“. Bez jmenovaného vlastníka projde do produkce cokoliv, co vypadá hotově.
- Gate, na kterém někdo koná. Noční report bez akce buď zrušte, nebo k němu přidejte člověka, který na červenou reaguje. Jinak platíte za to, abyste nevěděli nic dřív a dráž.
- Metrika, která nejde nahrát básničkou. Jedno číslo se vždycky obejde, tak neměřte jedno. Postavte report z víc signálů a přiložte tvrdý výsledek, který jde ověřit, třeba kolik defektů uteklo do produkce, proti baseline sejmuté na vašich systémech, ne v dodavatelově reportu.
Žádná z těch bran není nový tým ani nová platforma. Je to jedno pravidlo na místě, které už máte, v CI, v pre-commit, u přejímky. A každá zruší jednu budoucí poštu dřív, než se stačí odeslat. V tom je celý ten obchod: fuckup vytažený v konceptu je levný a tichý. Fuckup doručený za půl roku platíte i s úroky. Vy máte tu vzácnou možnost číst tu poštu dopředu, dokud se s ní ještě dá něco udělat.
Pohled za byznys – Jakub Štengl
Ty tři příběhy z tohohle čísla, TLS, básničky za tokeny, vendor „2 z 20“, mají všechny stejný kořen: u výstupu nikdo nestál jako vlastník. Ale je tu druhá půlka, kterou v příbězích nevidíte. Odpovědnost. Když AI agent nechá téct zákaznická data, není to ve vašem provozu „nález z code review“. Je to breach a hlídá vám ho regulátor. GDPR vám dává 72 hodin na hlášení. A ten dopis regulátorovi nepodepisuje ten, kdo dělal demo. Podepisujete ho vy.
To je celý problém nákupu AI. Riziko a odměna sedí u dvou různých lidí. Vendor sklidí odměnu na podpisu, riziko vám zůstane na účtu o půl roku později. Jak se říká: nikdy se neptejte holiče, jestli potřebujete ostříhat. Demo je ostříhání. Vendor ho řídí, běží na jeho datech, na jeho scénářích. Vy potřebujete vidět ten nástroj tam, kde 2 z 20 dotazů znamená hlášení incidentu, ne špatný kvartál.
Takže tah kupujícího. Až vám vendor řekne „test na vašich reálných datech je až placená PoC fáze“ a řekne to, nenechte se odbýt. Podmínku dejte do akceptačních kritérií před podpisem: baseline změřený na vašich systémech, konkrétní pass/fail práh, a gate před platbou navázaný na ten práh. Číslo z vašeho prostředí, ne hezký report od dodavatele. Když vendor na takhle postavenou smlouvu couvne, právě jste zadarmo zjistili to nejdražší, že jeho nástroj neunese váš provoz. To zjištění chcete mít před podpisem, ne v tom dopise regulátorovi.
Pohled za technologie – Jakub Inger
Většina lidí čte tyhle fuckupy jako problém modelu. Vyber lepší, dej mu víc pravidel, bude to dobré. Není to problém modelu. Agent, co vypnul TLS, nebyl hloupý, jen mu nikdo nepostavil bránu, přes kterou tohle neprojde. „Nesmíš vypnout TLS“ patří do pravidla v pre-commit nebo v CI stage, plus deny-list volání, endpointů a nástrojů, na které agent prostě nesmí sáhnout. Deterministicky, algoritmicky. Agentní review běží až nad touhle tvrdou vrstvou. Agent se v milionu pravidel ztratí a začne halucinovat, tak mu dej úzký prostor a tvrdé mantinely a teprve pak ho pusť na úsudek.