
Testy architektury: jak zabetonovat pravidla architektury přímo do kódu
Architektonická pravidla, která existují jen v dokumentaci, se dříve nebo později poruší. Není to otázka jestli, ale kdy.
Přejít na obsah|Přejít k hlavnímu menu|Přejít k vyhledávání
Na začátku nebyl žádný velkolepý plán na stavbu autonomního agenta. Byla jen tabulka se 700 řádky a nechuť trávit týdny manuálním copy-paste maratonem. Poměrně rychle jsme zavrhli klasickou cestu v podobě univerzálního skriptu, protože napsat scraper se sadou regulárních výrazů, které by spolehlivě vytáhly informace ze stovek webových stránek, by byla programátorská sebevražda. Moc jiných možností automatizace neexistovalo, a tak padla otázka: “A co kdybychom na to pustili tu kouzelnou ‘áí’ ?”
Následovala rychlá rešerše frameworků, AI-native nástrojů a knihoven (nepopírám použití ChatGPT), které by pro náš use-case mohly dávat smysl, trocha inspirace z YouTube a pak už VS Code, pár řádků v Pythonu, zkusit provolat API OpenAI, sestavit agenta v LangChain frameworku, dát mu první nástroj. Výsledek?

Jak jsme očekávali, téměř okamžitě jsme při vývoji narazili na zásadní problém LLM: halucinace a nekonzistentnost. Pokud jsme agentovi nechali příliš volnou ruku nad postupem a volbou nástrojů, často se zacyklil, zapomněl cíl, přeskakoval důležité kroky a vracel neúplné, a hlavně nekonzistentní výstupy. Kognitivní zátěž byla příliš vysoká a plně autonomní agent ve smyslu ReAct (Reasoning – Acting), kdy agent přemýšlí → koná → pozoruje → zase přemýšlí, tedy pro naše potřeby nedával smysl.
Museli jsme proto upustit od maximální autonomie a přejít k řízené pipeline. Python drží pevnou strukturu procesu, AI slouží jako kognitivní engine uvnitř jednotlivých kroků a mozek, který vyhodnocuje výstupy z jednotlivých nástrojů a rozhoduje, jestli je v pořádku pokračovat dalším krokem.
Výsledný proces vypadá takto:

Pojďme se na jeden z kroků podívat o něco podrobněji. Kdyby byl vývoj tohoto agenta sport, pak extrakce finančních dat by byla jeho královskou disciplínou. České firmy ve sbírce listin často zveřejňují účetní závěrky jako naskenovaná PDF (obrázky), která jsou pro běžné textové scrapery nečitelné.
Řešení jsme postavili na multimodálních modelech (Vision LLMs) bez použití tradičního OCR (optické rozpoznávání znaků). Pipeline automaticky:
Tento přístup je robustnější než klasické OCR. Model vidí tabulku jako celek, ignoruje šum, razítka, podpisy i křivé skenování a vrátí strukturovaná data.
Je důležité zmínit, že s automatizovaným sběrem dat se pohybujete na tenkém ledě technicky i eticky. Automatizace neznamená, že budeme bezohlední. Náš nástroj není žádný agresivní bot, který bezhlavě vysává internet.
Vývoj nástroje nebyl jen o skládání knihoven, ale především o řešení limitů současných velkých jazykových modelů:
Možná jsem vás dosud nepřesvědčil, že stojí za to podobný nástroj programovat. Tak proč tedy?
Protože škálování. Když potřebujete analyzovat pět, deset, možná i padesát firem, uděláte to ručně. Když jich máte v seznamu sedm set, ručně to uděláte jen stěží.
Upřímně? Kdybychom počítali hodiny vývoje jen proti té jedné tabulce, dost možná by se to v čistém čase nevyplatilo. Ale není to jen o tom. My teď máme replikovatelnou pipeline, která kombinuje spolehlivost Python skriptů se schopností LLM rozumět nestrukturovanému obsahu. Když zítra přijde požadavek na analýzu dalšího segmentu trhu, nezačnou nám z té představy hrůzou vstávat vlasy na hlavě. Škálování z padesáti firem na pět set už není otázka týdnů lidské práce, ale jen spuštění skriptu a pár dolarů za API. A to nám dává svobodu věnovat se tomu, co AI (zatím) neumí.
Golden Retriever vznikl jako pragmatická reakce na nudný úkol. Ukazuje, že zapojení AI do firemních procesů nemusí znamenat revoluci a může lidem výrazně uvolnit ruce. Stejně jako u čtyřnohého společníka, i tento Retriever však potřebuje vodítko. Když mu dáte až moc prostoru a nebudete jej hlídat, dost možná se budete divit, že je vlastně docela pako.

Architektonická pravidla, která existují jen v dokumentaci, se dříve nebo později poruší. Není to otázka jestli, ale kdy.

Vývoj software je dynamický obor, ve kterém se neustále objevují nové nástroje a trendy. Pokud ale chceme vyvíjet kvalitní software, nestačí tyto nástroje a trendy jen aplikovat, musíme skutečně porozumět, jak fungují a jaká případná rizika s sebou nesou.
Děkujeme za váš zájem o odběr našeho newsletteru! Pro dokončení registrace je potřeba potvrdit vaše přihlášení. Na zadaný e-mail jsme vám právě zaslali potvrzovací odkaz. Klikněte prosím na tento odkaz, aby bylo vaše přihlášení dokončeno. Pokud e-mail nenajdete, zkontrolujte prosím složku nevyžádané pošty (spam) nebo složku hromadné pošty.
