Proč AI kóduje, ale na systémový design nemá
Zlatý hlas AI: Proč umělá inteligence napíše kód, ale nenavrhnete s ní systém
Přiznejme si to. Všichni jsme tam byli. Najednou objevíte nový AI nástroj a máte pocit, že zvládnete postavit cokoliv. Léta jste přemýšleli „kdybych jen měl čas ten nápad realizovat"? Teď ho máte. Popíšete, co chcete, projdete pár iterací s AI a hotovo.
Ten pocit je omamný. A nebezpečný.
Krásná past „dostatečně dobrého" kódu
Minulý měsíc jsem se rozhodl otestovat limity vibe codingu. Chtěl jsem postavit „jednoduchý" paměťový systém pro AI agenty. Něco, co by mému kódovacímu pomocníkovi umožnilo pamatovat si, co se naučil, místo aby začínal od nuly.
Jak těžké to může být? Ukládej fakta, vytahuj je, když jsou relevantní, třeba označuj rozpory. Chytrá databáze s pěkným API.
Kód se skládal rychle. Fakt rychle. Rust daemon, classifikační systém, čtyři vyhledávací strategie s přerankingem přes lokální modely. Podle všech měřítek to vypadalo působivě. Testy prošly. Kompilátor byl spokojený.
A pak jsem to začal používat.
Tady je ten háček: paměťové systémy pro agenty nejsou o ukládání. Jsou o významu. A význam je, jak se ukázalo, filozoficky trnitý způsobem, který dělá z vašeho pečlivě napsaného kódu raketu postavenou bez započítání gravitace.
Problém rozporů, o kterém nikdo nemluví
Můj původní cíl byl prostý: když se agent naučí něco nového, zkontrolovat, jestli to nekoliduje s tím, co už „ví". Zní to rozumně. Paměť, která si odporuje sama sobě, není jen k ničemu — je přímo škodlivá. Plníte context window konfliktními informacemi.
Co může být jednoduššího? Porovnej dvě fakta, označ konflikt.
Jenže.
Co je vlastně rozpor v systému jako je tenhle? Když se agent v pondělí dozvěděl, že „Projekt X používá PostgreSQL", a v úterý, že „Projekt X používá MySQL", je to rozpor? Možná tech stack změnil. Možná jeden zdroj byl špatně. Možná „Projekt X" znamená různé projekty. Možná „používá" má v různých kontextech jiný význam.
Lidé to řeší díky rokům nastřádaného selského rozumu, kontextu a schopnosti říct „něco tu nesedí", i když nedokážou přesně vysvětlit proč. AI systémy dokážou generovat sebejistě znějící text o kterékoliv z těchto interpretací, ale ta sebejistota je často jen pattern matching bez skutečného porozumění.
Kde vibe coding selhává
Vibe coding vyniká v řešení problémů, které umíte jasně popsat. Máte bug? Popište příznaky. Potřebujete funkci? Specifikujte vstupy a výstupy. AI zvládne implementační detaily s pozoruhodnou kompetencí.
Ale system design — opravdový system design — je o řešení problémů, které nejste schopni jasně formulovat. Je to o předvídání interakcí mezi komponentami, které ještě neexistují. O kladení otázek „co se stane, když..." pro scénáře, které vás nenapadly.
Když jsem požádal svého AI asistenta, aby „implementoval detekci rozporů", v podstatě jsem ho žádal, aby vyřešil problém, který jsem nedokázal přesně definovat. Výsledky byly... kreativní. Prošli jsme Belnapovy svazy, čtyřhodnotovou logiku, formální verifikaci s Agda důkazy, Petriho sítě. Asistent byl ochotný na cokoliv, co jsem navrhl, a upřímně — některé nápady byly genuinně zajímavé.
Ale „ zajímavé" neznamená „funguje".
Důkaz v Agdě byl matematicky správně. Architektura byla dobře zdokumentovaná. A systém pořád spolehlivě nedetekoval rozpory, protože jsme formalizovali špatnou abstrakci. Stavíme krásnou katedrálu na základech z písku, a ani AI, ani já jsme to nepoznali, dokud jsme neinvestovali měsíce.
Nepříjemná pravda
Tady je to, co vám propagátoři vibe codingu neřeknou: těžká část vývoje softwaru nikdy nebyla psaní kódu. Bylo to vymyslet, co vlastně stavět.
To bylo vždycky pravda. Co se změnilo, je, že propast mezi „měl jsem nápad" a „mám kód" se dramaticky zúžila. To je skutečně skvělé pro prototypování, pro učení, pro zkoumání možností.
Ale taky to znamená, že můžete selhat rychleji a dražé než kdy dřív. Můžete generovat hory sebejistě vypadajícího kódu, který řeší špatný problém, a nemusíte si to uvědomit, dokud nepostavíte celý systém na vadných základech.
Co skutečně pomáhá
Nic z toho neznamená, že AI-assisted development je špatný nápad. Není. Ale efektivní používání vyžaduje jiné dovednosti než čistá schopnost kódovat:
Musíte vědět, co nevíte. Když AI navrhne řešení v oblasti, kterou neznáte, není ten správný moment říct „vypadá to dobře, implementuj to". Je to čas kopat hlouběji.
Proof of concepts musíte nemilosrdně testovat proti reálným případům. Když stavíte paměťový systém, strávte stejně času jeho rozbíjením jako jeho stavěním. Zkuste hlavně rozbít základní předpoklady, o kterých jste nevěděli, že je děláte.
Ta sebejistota není vaše. Když je AI asistent vysoce sebejistý ohledně designového rozhodnutí, ta sebejistota žije v modelu, ne ve vašem pochopení. Systém, který hluboce nerozumíte, je systém, který nemůžete udržovat ani debugovat.
System design je pořád disciplína. AI můžete používat k rychlejšímu prozkoumávání designů, k rychlejší implementaci částí systémů, k prototypování nápadů, které by dřív trvaly týdny. Ale pořád potřebujete někoho, kdo dokáže posoudit, jestud design dává smysl, jestli komponenty správně interagují, jestli základní abstrakce drží pohromadě.
Závěr
Pořád stavím svůj paměťový nástroj. Pomalu se zlepšuje. Naučil jsem se ptát jiných otázek, testovat důkladněji, být podezřívavější vůči výsledkům, které vypadají „dostatečně dobře".
Ale taky jsem se naučil respektovat propast mezi „kód funguje" a „systém je správný". Tahle propast tu vždycky byla. AI nástroje ji nezavřely — jen ji udělaly snazší ignorovat.
Nejlepší vibe kodeři nejsou ti s nejlepšími prompt skills. Jsou to ti, kteří vědí, kdy vibe nesedí.
Chcete prozkoumat možnosti AI-asistovaného hostingu a vývoje? Vibe Hosting od NameOceanu kombinuje výkonnou infrastrukturu s nástroji, které potřebujete k budování, nasazování a škálování vašich projektů.