lessons.md

$ cat lessons.md

5 věcí, na kterých jsem se u agentického vývoje spálil (a jak to dělám teď)

Agentické nástroje používám každý den na opravdové produkční práci, ne na víkendových hračkách. Claude Code v terminálu, Cursor když chci zůstat v editoru, Codex občas pro druhý názor. Neuvěřitelně se zlepšily. A taky umí naprosto sebejistě udělat úplnou blbost. Za poslední rok jsem si stoupl skoro na všechny hrábě, na které se stoupnout dá.

Tohle není stížnost na AI. Zpátky bych nešel. Ale hype přeskakuje tu část, kde se ty nástroje musíte teprve naučit řídit, a já se to naučil jediným způsobem: tím, že jsem se spálil. Tady je pět průšvihů, které bolely nejvíc, a co dělám jinak.

1. Pustil jsem agenta bez plánu

Chyba: napsal jsem jednu větu, „přidej cachování na export endpoint", a zmáčkl jsem enter. Agent je horlivý. Začne hned editovat. Za dvacet minut sáhl na osm souborů, vymyslel abstrakci, kterou jsem nechtěl, a ono to sice funguje, ale ve tvaru, který bych nikdy nezvolil. Buď přijmu nepořádek, nebo to celé zahodím. Většinou jsem to zahazoval.

Řešení: nejdřív plán, pak teprve editace, vždycky. Používám plan mode (nebo si plánovací krok vynutím v promptu), aby agent nejdřív sepsal, co chce udělat, na které soubory sáhne a proč. To si přečtu. Pohádám se s tím. Pak teprve smí psát kód. Konsenzus napříč nástroji v roce 2026 je stejný: nejdřív načrtnout architekturu, doladit plán, a až potom nechat implementovat. Pět minut nad plánem ušetří hodinu uklízení. Naprostá většina průšvihů začíná tím, že se začne dělat dřív, než se domluvíte na postupu.

2. Zahltil jsem agenta kontextem

Chyba: víc kontextu mi přišlo bezpečnější, tak jsem mu dával všechno. Celý soubor, celý modul, „na, přečti si celý repozitář". A pak jsem v jednom sezení jel hodiny v kuse. Kvalita šla strmě dolů a já nechápal proč. Agent si začal odporovat ve věcech, které sám před hodinou rozhodl, vracel zpátky chyby, které právě opravil, ztrácel nit.

Řešení: brát kontext jako vzácnou surovinu, kterou opravdu je. Práce s kontextem je dneska upřímně ta úplně nejdůležitější dovednost v celé téhle hře. Držím úkoly malé a ohraničené. Na nový problém otevřu nové sezení, místo abych nechal jedno bobtnat hodiny. Nasměruju agenta na ty tři soubory, na kterých záleží, ne na třicet, které by mohly. Soustředěný agent s čistým oknem porazí přecpaného pokaždé. Když se sezení protáhne a začne se chovat divně, neperu se s tím, resetuju a znovu řeknu cíl.

3. Věřil jsem vygenerovanému kódu, protože vypadal dobře

Chyba: kód se čte hezky, proměnné mají rozumné názvy, funguje to. Tak jsem to přelétl a poslal dál. Háček je, že AI kód selhává záludněji než lidský. Na povrchu věrohodný, uvnitř špatně: chyba o jedničku v hraničním případě, spolknutá výjimka, bezpečnostní předpoklad, který neplatí. Nejvíc mě dostaly zrovna ty revize, kde všechno vypadalo v pořádku.

Řešení: kontrolovat AI kód přísněji, ne benevolentněji. Čísla, která v roce 2026 kolují, nejsou nijak jemná: změny napsané AI nesou výrazně víc defektů na změnu než lidské a děsivý podíl z nich zanese aspoň jednu reálnou zranitelnost. Takže generovaný kód čtu pomaleji než svůj vlastní, ne rychleji. Beru ho jako věrohodný a špatný, dokud si sám neověřím okraje. Nejlepší vývojáři, které znám, nejsou ti nejrychlejší v produkci AI kódu. Jsou nejlepší v tom mu nevěřit.

4. Nedal jsem mu mantinely a sáhl na věci, na které neměl

Chyba: nechal jsem agenta běžet se širokým oprávněním spouštět příkazy a volně editovat, protože schvalovat každý krok je otrava. A on ochotně spustil příkaz proti špatnému prostředí, přepsal konfigurák, který jsem považoval za nedotknutelný, nebo udělal „úklid", který jsem nikdy neschválil. Pohodlí, přesně do chvíle, než přestane být pohodlím.

Řešení: spolehlivé mantinely, ne dobrá víra. Prosba v promptu („prosím nesahej na produkci") není bezpečnostní systém, je to návrh. Používám hooks a pravidla oprávnění, aby nebezpečné věci blokoval kód, ne to, že si model vzpomene chovat se slušně. Chráněné cesty, omezené příkazy, schvalovací brána na cokoli destruktivního. Rozsah toho, kam agent dosáhne, ořežu na to, co úkol potřebuje, a ani o kousek dál. Spolehlivý mantinel je takový, ze kterého se model nedokáže vykecat.

5. Nechal jsem ho psát kód, kterému jsem nerozuměl

Chyba: tahle je tichá a nejhorší. Agent vyrobil něco, co fungovalo, já úplně nechápal jak, a stejně jsem jel dál. Zopakujte to pár týdnů a máte kódovou bázi, kterou neumíte ladit, protože jste jí nikdy doopravdy nerozuměli. AI tu těžkou část nezrušila, smazala lehkých 80 % a nechala těch 20 %, co vyžaduje skutečné soustředění, a těch 20 % je teď celá práce. Když přeskočíte porozumění, jen si pronajímáte funkční software do první chyby, kterou neumíte vysvětlit.

Řešení: musím umět vysvětlit každý řádek, který pošlu dál. Když neumím, nejde to dovnitř, ať svítí testy sebevíc zeleně. Nechám si od agenta projít nezřejmé části. Testy píšu sám, nebo si je aspoň vezmu za své, protože právě v testech se vracejí požadavky, které agent potichu zahodil. Agent píše instalatérskou práci, rozhodnutí, která chtějí úsudek, dělám já. Tohle rozdělení je jediné, které mi dlouhodobě drží.

Krátká verze

Nejdřív plán, pak editace. Drž kontext štíhlý. Revize dělej, jako bys výstupu věřil nejmíň ze všeho. Postav kolem agenta opravdové mantinely. A nikdy neposílej kód, který neumíš vysvětlit. Nic z toho není proti AI. Takhle prostě vypadá vážné používání těchhle nástrojů, jakmile opadne novinka. Agent je rychlý junior, který se neunaví a nenudí, a přesně proto je seniorský úsudek pořád na vás. Tahle část se nezautomatizovala. Spíš naopak, podražila.

zpět na blog