Manifest Genesis: Autonomní Softwarová Agentura
Genesis není program. Je to ekosystém spolupracujících AI agentů, jejichž jediným cílem je transformovat lidský záměr na funkční, robustní a udržovatelný software. Stojí na fundamentálním principu: Lidé by měli myslet, stroje by měly pracovat.
Základním stavebním kamenem Genesis je deklarativní toolkit (CodeGen a jeho atributy), který slouží jako univerzální, vysokoúrovňový jazyk, jímž agenti komunikují a materializují své návrhy do podoby kódu.
Vstup: Lidský Záměr
Vše začíná jednoduchým textovým zadáním v přirozeném jazyce:
"Potřebuji systém pro správu firemní knihovny. Zaměstnanci si mohou půjčovat knihy. Knihy mají ISBN a název. Chci mít přehled, kdo má co půjčeno a kdy to má vrátit. Pokud knihu nevrátí do 14 dnů, systém by měl poslat automatickou upomínku."
Fáze 1: Návrh a Verifikace (Tým Architektů)
Tento text neputuje k jednomu agentovi, ale k celému týmu pro návrh:
- Agent: Doménový Analytik (Architect)
- Přečte zadání a extrahuje klíčové koncepty. Identifikuje entity (Kniha, Zaměstnanec, Výpůjčka), jejich vlastnosti a vztahy.
- Výstup: První verze strukturovaného, deklarativního modelu.
- Entita: Kniha { ISBN: string, Nazev: string }
- Entita: Vypujcka { KnihaId: FK, ZamestnanecId: FK, DatumPujceni: date, DatumVraceni: date? }
- Agent: Kritik / Etický Hacker (Red Teamer)
- Okamžitě napadne návrh.
- "Co když je více kopií jedné knihy? Tvůj model s ISBN jako klíčem nestačí. Potřebujeme entitu Exemplář."
- "Co se stane, když si někdo chce půjčit už půjčenou knihu? Chybí ti stavový model (Dostupná, Půjčená)."
- "Jak systém pozná, kdo je přihlášený? Kde jsou uživatelé a autorizace?"
- "Co je to 'upomínka'? Email? SMS? Notifikace v aplikaci? Návrh je neúplný."
- Agent: Procesní Inženýr (Elsa Specialist)
- Analyzuje větu: "Pokud knihu nevrátí do 14 dnů, systém by měl poslat automatickou upomínku."
- Výstup: Deklarativní popis byznys procesu.
- Workflow: PripomenutiVraceni
- Spouštěč (Trigger): Event 'VypujckaVytvorena'
- Krok 1: Čekat 14 dní (Timer)
- Krok 2: Zkontrolovat, zda jeDatumVracenistále null (Condition)
- Krok 3: Pokud ano, poslat upomínku (Action: SendReminder)
Tito agenti spolu iterují, dokud není návrh robustní a kompletní. Mohou klást doplňující otázky člověku, pokud si nejsou jisti.
Fáze 2: Materializace (Tým Vývojářů)
Jakmile je model schválen, přebírá ho tým pro implementaci:
- Agent: Kodér Deklarací (Toolkit Specialist)
- Vezme finální model a přeloží ho do C# kódu s tvými atributy. Nevymýšlí žádnou logiku, jen mechanicky překládá.
- Výstup: Soubory Kniha.cs, Exemplar.cs, Vypujcka.cs plné atributů [GenerateDto], [GenerateCrudHandlers], [Ownership], [AuthorizeOperation] a [TriggersWorkflow].
- Nástroj: CodeGen (Naše Továrna)
- Tento "hloupý", ale extrémně výkonný nástroj se spustí.
- Mechanicky a bez přemýšlení vygeneruje desítky souborů: DTOs, handlery, repozitáře, Refit klienty, Blazor komponenty a kostry Elsa workflow.
Fáze 3: Zajištění Kvality (Tým QA)
Paralelně s materializací pracuje tým pro zajištění kvality:
- Agent: Unit Tester
- Analyzuje vygenerovaná DTO a handlery.
- Výstup: Sada unit testů, které ověřují mapování, správné volání mockovaných repozitářů a základní logiku.
- Agent: Integrační Tester
- Analyzuje vygenerované API (přes Refit) a byznys požadavky.
- Výstup: Sada integračních testů, které simulují reálné scénáře:
- test_pujceni_dostupne_knihy_musi_uspet()
- test_pujceni_pujcene_knihy_musi_selhat_s_chybou_409()
- test_neautorizovany_uzivatel_nevidi_vypujcky_jinych_uzivatelu()
- Agent: E2E Tester (Playwright/Selenium Specialist)
- Analyzuje vygenerované Blazor komponenty.
- Výstup: Sada end-to-end testů, které proklikávají uživatelské rozhraní.
- test_po_prihlaseni_se_zobrazi_seznam_knih()
- test_po_kliknuti_na_pujcit_se_kniha_zobrazi_v_me_sekci()
Fáze 4: Nasazení a Učení (Tým DevOps a Zpětné Vazby)
- Agent: DevOps Inženýr
- Pokud všechny testy projdou, automaticky vezme vygenerovaný kód, sestaví ho, zabalí do Docker kontejnerů a nasadí do testovacího prostředí.
- Zpětnovazební smyčka: Systém monitoruje své chování v provozu. Pokud se objeví chyby nebo neefektivita, data se vrací zpět k Agentu Kritikovi, který je použije pro vylepšení svých budoucích návrhů.
Závěrečná Vize: Od Instruování AI k Posílení AI
Viděli jsme, jak dokážeme z jednoduchých definic automaticky generovat datové vrstvy, byznys logiku a API. Ale skutečná síla tohoto přístupu se projeví, když ho propojíme s umělou inteligencí. A zde je klíčový rozdíl oproti všemu, co dnes vidíte na trhu.
Současný trend je snažit se přimět AI, aby přímo psala kód. Lidé se pokoušejí v dlouhých a složitých promtech popsat, jak má vypadat jejich MediatR handler nebo React komponenta. Je to v podstatě snaha naučit stroj napodobovat práci juniorního programátora. Tento přístup je ale z principu křehký, nepředvídatelný a naráží na tvrdé limity kontextového okna. AI nezná vaši architekturu, vaše standardy, vaše bezpečnostní pravidla. Pokaždé je to sázka do loterie.
My na to jdeme z druhé strany. My se nesnažíme AI instruovat, my ji posilujeme.
Náš systém, Genesis, nedává AI za úkol psát detailní implementační kód. Místo toho jsme vytvořili vysokoúrovňový, deklarativní jazyk – náš toolkit atributů. Tento jazyk slouží jako most mezi abstraktním byznys požadavkem a konkrétní, robustní implementací.
Jak to funguje v praxi?
- AI Architekt neřeší, jaký using použít v handleru. Jeho úkolem je na základě textového zadání vytvořit čistý doménový model – sadu C# tříd.
- AI Kodér pak neprogramuje. Jeho jediným úkolem je tento model anotovat – ozdobit ho našimi atributy. Místo psaní 50 řádků kódu pro autorizaci napíše jeden jediný řádek: [AuthorizeOperation(Policy = AuthorizationPolicy.OwnerOnly)].
- Teprve potom přichází na řadu naše deterministická továrna CodeGen, která tento vysokoúrovňový popis spolehlivě a bezchybně přeloží na stovky řádků optimalizovaného, konzistentního a testovatelného kódu, který přesně odpovídá naší architektuře.
Ten rozdíl je fundamentální. Odstraňujeme z rovnice největší slabinu současných AI – nespolehlivost a nedostatek kontextu při generování komplexního kódu. Dáváme AI jednoduchý a extrémně mocný nástroj, jak vyjádřit svůj návrh. Tím dramaticky zmenšujeme prostor pro chyby a uvolňujeme její potenciál pro řešení skutečně složitých problémů v návrhu systému, místo aby se trápila se syntaxí a boilerplatem.
Ve výsledku tak nevytváříme jen další "AI kopilota". Budujeme autonomní systém, kde AI navrhuje a náš toolkit staví. To je cesta k skutečně škálovatelné a spolehlivé automatizaci softwarového vývoje.