AI agent, ktorý beží bez obmedzení, je ako závodník na skúšobnej jazde bez bŕzd. Väčšinou dobehne správne. Ale keď sa niečo pokazí — a raz sa to stane — pokazí sa to rýchlo a draho. V praxi sme videli agentov, ktorí zacyklením cez noc vygenerovali tisíce API volaní a účet rádovo v tisícoch eur, agentov, ktorí prepísali produkčné dáta namiesto testovacích, aj agentov, ktorí poslali interné dokumenty do externého endpointu pri pokuse o „pomoc". Všetkým tým prípadom malo zabrániť jedno: guardrails.
Guardrails nie sú výhovorka ani blocker. Sú to pravidlá prevádzky — ako elektrické ističe v rozvádzači. Keď sú dobre nastavené, nespomalia produkciu. Keď chýbajú, jeden výpadok zastaví všetko. Tento článok rozkladá guardrails do konkrétnych vrstiev a ukazuje, čo implementovať pred tým, ako agenta pustíte do produkcie.
Prečo guardrails nie sú voliteľné
Agent nie je chatbot. Chatbot odpovedá — maximálne odošle zle formulovaný text. Agent koná: volá API, zapisuje do databázy, odosiela emaily, spúšťa skripty, rezervuje zdroje. Každá akcia má vedľajší efekt vo svete mimo LLM.
Väčšina produkčných incidentov pri agentoch nevznikla preto, že model „halucinoval". Vznikla preto, že model správne porozumel zadaniu, ale nikto neobmedzil, čo smie urobiť pri plnení tohto zadania. Útočník, ktorý vie o prompt injection (v OWASP LLM Top 10 je to dlhodobo prvé miesto), môže do externého obsahu ukryť inštrukcie, ktoré agent načíta a vykoná ako legitímne príkazy. Bez guardrails agent poslúchne.
Guardrails sú viacvrstvový systém — nie jednorazový output filter na konci pipeline. Každá vrstva zachytáva iný typ zlyhania.
Vrstva 1: Validácia vstupov
Prvá línia obrany je pred samotným LLM. Pred tým, ako agent dostane query, treba overiť:
- Dĺžka vstupu — definujte maximálnu dĺžku promptu. Extrémne dlhé vstupy môžu zahltiť kontext, skryť injekcie alebo spomaliť spracovanie.
- Sanitizácia — odstráňte alebo escapujte HTML, SQL špeciálne znaky, shell metacharaktery. Platí to aj pre texty, ktoré agent načíta z externých zdrojov (webstránky, emaily, dokumenty).
- Intent classification — lightweight klasifikátor (môže byť malý model alebo regex ruleset) deteguje, či vstup vyzerá ako manipulatívny pokus (prompt injection, jailbreak pattern). Nástroje ako
Lakera GuardaleboGuardrails AItoto riešia out-of-the-box, ale aj vlastný ruleset na 20 vzoroch zachytí 80 % bežných pokusov. - PII detekcia — ak agent spracúva vstupy od používateľov, skontrolujte, či vstup neobsahuje citlivé dáta (rodné čísla, IBAN), ktoré by nemali opustiť váš systém.
V praxi: validácia vstupov je lacná (milisekundy, žiadne LLM tokeny) a zachytí triviálne útoky skôr, ako sa dostanú k modelu.
Vrstva 2: Allowlist akcií
Toto je najdôležitejšia vrstva pre agentov s nástrojmi. Explicitne definujte, ktoré akcie agent smie vykonávať — a defaultne zakážte všetko ostatné.
Konkrétne: každý nástroj (tool), ktorý agent môže zavolať, musí byť na allowliste. Nestačí, že nástroj existuje v kóde — musí byť registrovaný pre daný kontext a používateľskú rolu. Príklad štruktúry:
read_document(id)— povolené pre všetkýchsearch_web(query)— povolené, ale len pre schválené doménysend_email(to, body)— povolené, ale len pre interné adresy s@vasafirma.skwrite_database(table, data)— povolené len pre non-produkčné tabuľkydelete_record(id)— zakázané; vyžaduje human approval
Allowlist nie je len bezpečnostný mechanizmus — je to aj dokumentácia toho, čo agent skutočne robí. Keď sa agent správa neočakávane, allowlist je prvé miesto na audit.
Scope per session: nepovolujte globálne. Každá session agenta dostane minimálny potrebný scope (principle of least privilege). Agent na analýzu dodacích listov nepotrebuje prístup k HR dátam.
Vrstva 3: Limity behu (max_steps, rozpočet, časový limit)
Agent v smyčke bez stropu je recept na incident. Definujte hard limity:
- `max_steps` — maximálny počet krokov (iterácií) v jednom behu. Odporúčaný rozsah pre produkčné agenty: 15–50 krokov podľa komplexnosti. Nad limit → graceful stop, nie crash.
- Časový limit — každý beh agenta musí mať timeout. Ak agent bežal 10 minút na úlohe, ktorá má trvať 30 sekúnd, niečo sa pokazilo. Timeout to zachytí skôr, ako to zachytí účet.
- Tokenový/rozpočtový limit — priraďte každej session maximálny počet tokenov alebo maximálnu API cost. Pre agentov s variabilnou dĺžkou behu je to efektívnejší strop než len
max_steps. Riadovo $0.50–$5 per session pre väčšinu use-casov je rozumné Maximum. - Retry cap — tool calling zlyhá. Retry logika je nutná, ale bez stropu (napr. max 3 pokusy per tool call) môže agent generovať stovky volaní na rovnaký zlý endpoint.
LangGraph (de facto štandard pre produkčné stateful agenty) tieto limity implementuje natívne cez konfiguráciu grafu — max_recursion_limit, checkpointing, interrupt body. Nastavenie je otázka minút, nie dní.
Vrstva 4: Sandbox a izolácia
Ak agent spúšťa kód, vykonáva shell príkazy alebo pracuje so súborovým systémom, izolácia je povinnosť — nie optional feature.
- Kontajnerizácia — kód, ktorý agent generuje a spúšťa, musí bežať v izolovanom kontajneri (Docker, gVisor) s obmedzenými oprávneniami. Nie na hostiteľskom systéme.
- Read-only súborový systém — mount-ujte produkčné dáta ako read-only. Agent môže čítať, nie prepisovať.
- Sieťová izolácia — ak agent nepotrebuje internet, zablokujte ho. Ak potrebuje, definujte allowlist domén (nie open internet).
- Dočasné prostredie — pre každý beh vytvorte čistý sandbox, po behu ho zničte. Žiadne zdieľané stavy medzi sessionami.
Pre agentov, ktorí vykonávajú kód v priemyselnom prostredí (skriptovanie PLC, konfigurácia sieťových zariadení), je táto vrstva kritická — chyba môže mať fyzický dopad.
Vrstva 5: Human-in-the-loop (HITL) a approval gates
Nie každá akcia agenta vyžaduje ľudský dohľad — to by popieralo zmysel automatizácie. Ale niektoré akcie áno, a tie musíte explicitne identifikovať.
Typické high-risk akcie vyžadujúce approval: - Finančné transakcie nad definovaný prah - Odosielanie externých komunikácií (emaily zákazníkom, správy partnerom) - Zmeny v produkčných databázach alebo konfiguráciách - Akcie s nevratnými dôsledkami (mazanie, deploy)
LangGraph implementuje HITL cez interrupt() — agent sa zastaví, čaká na ľudský vstup (schválenie / odmietnutie / korekcia) a pokračuje alebo končí podľa odpovede. Toto nie je "spomalenie" — je to kill-switch pre kritické akcie.
Pre bežné kroky použite prístup Human-on-the-loop: agent beží autonomne, ale každý krok je logovaný a prístupný na review v reálnom čase cez observability platformu. Človek zasahuje len keď dostane alert alebo keď chce auditovať.
EU AI Act (čl. 14) od 2. augusta 2026 povinne vyžaduje ľudský dohľad pre high-risk AI systémy — HITL implementácia nie je len dobrá prax, je to právna povinnosť pre relevantnú kategoriu systémov.
Vrstva 6: Validácia výstupov
Output filter je posledná záchranná sieť pred tým, ako výsledok agenta opustí systém alebo spustí ďalšiu akciu.
- Schema validácia — ak agent produkuje štruktúrovaný výstup (JSON, XML, parametre pre ďalší systém), validujte ho voči schéme pred použitím. Malformovaný JSON môže zrútiť downstream systém.
- Content filter — detekujte potenciálne škodlivý obsah (PII v odpovedi, citlivé firemné informácie, nežiaduce vzory).
- Faithfulness check — ak agent pracuje s dokumentmi (RAG), overte, že odpoveď nevychádza z "vzduchoprázdna". Jednoduché heuristiky (citation presence, confidence score) alebo LLM-as-judge zachytia najhoršie halucinácie pred doručením výsledku.
- Formát a dĺžka — ak výstup ide do ďalšieho systému, overte, že nepresahuje limity (max tokeny, max veľkosť súboru).
Nástroj ako NeMo Guardrails (NVIDIA) alebo Guardrails AI umožňuje definovať tieto validácie deklaratívne — pridáte yaml definíciu pravidiel, nie ďalší kód v pipeline.
Kill-switch a emergency stop
Aj keď sú všetky vrstvy správne nastavené, potrebujete mechanizmus na okamžité zastavenie agenta. Kill-switch nie je paranoia — je to poistka, ktorú (ak všetko pôjde dobre) nikdy nevyužijete.
Minimálna implementácia kill-switcha:
- Per-session kill — každý beh agenta má unikátne ID; operátor môže session zastaviť cez API alebo dashboard
- Global pause — prepínač, ktorý zastaví všetkých agentov naraz (nútená aktualizácia, bezpečnostný incident)
- Circuit breaker — automatický kill ak error rate prekročí prah (napr. 20 % zlyhaných tool calls za 5 minút → agent sa zastaví a čaká na manuálny restart)
- Resource monitor — ak agent spotrebuje >X tokenov alebo >Y eur za behu, automatický stop + alert
Kill-switch musí fungovať aj keď agent zacyklí — teda nesmie byť implementovaný len ako krok v agent loop-e. Musí byť externý mechanizmus (watchdog proces, Kubernetes job termination, systemd unit stop).
Ako vrstviť obranu v praxi
Guardrails nie je jeden modul — je to kombinácia vrstiev, ktoré sa navzájom doplňajú. Žiadna vrstva nie je stopercentná; ich kombinácia dramaticky znižuje riziko:
- 1.Input validation → zachytí injekcie a nezmysly pred LLM
- 2.Allowlist akcií → limituje, čo agent môže urobiť
- 3.Limity behu → zabraňuje nekontrolovanému škálovaniu nákladov a zacykleniu
- 4.Sandbox → izoluje vedľajšie efekty
- 5.HITL approval → zastaví high-risk akcie pred vykonaním
- 6.Output validation → zachytí posledné problémy pred dopadom
- 7.Kill-switch → umožňuje zastaviť všetko v núdzovom prípade
V reálnom nasadení neimplementujete všetko naraz. Prioritizujte podľa rizika use-casu: agent na interné vyhľadávanie v dokumentoch potrebuje primárne input validation a output filter. Agent, ktorý vykonáva objednávky alebo odosiela zmluvy, potrebuje celý stack.
Pred každým produkčným nasadením odporúčame red-teaming: systematický pokus prelomiť agenta vlastným tímom. Guardrails, ktoré nikto netestoval, sú guardrails na papieri.
Guardrails a observability — dve strany tej istej mince
Guardrails vás ochránia pred incidentom. Observability vám povie, prečo k nemu skoro došlo — a čo opraviť. Bez tracing-u a logging-u na úrovni každého kroku agenta nemáte dáta na zlepšenie guardrails v čase.
Platformy ako LangSmith, Langfuse (self-hostable na Postgres + ClickHouse) alebo Arize Phoenix zachytávajú node-by-node state diff každého behu agenta. Keď guardrails zasiahnu, vidíte presne, ktorý input ich spustil — a môžete rozhodnúť, či bol zásah správny alebo false positive.
Toto je iteračný cyklus: guardrails zbierajú incidenty → observability analyzuje príčiny → guardrails sa upresňujú. Bez tohto cyklu guardrails stagnujú a s rastom scope agenta prestávajú pokrývať nové vektory.
Obsiahlajšie o human-in-the-loop architektúre — a o tom, ako implementovať approval gates bez toho, aby sa z agenta stal pomalší chatbot.
Časté otázky
Nestačí jeden output filter na konci pipeline?
Nie. Output filter zachytí len zlé výstupy — ale agent mohol medzitým vykonať desiatky akcií s reálnymi vedľajšími efektmi (API volania, zápisky do DB, odoslané emaily). Guardrails musia blokovať akcie pred ich vykonaním, nie len filtrovať text po nich.
Prompt injection je reálna hrozba alebo len akademický problém?
Reálna hrozba v produkčných systémoch. OWASP LLM Top 10 ju dlhodobo radí na prvé miesto. Prvý zdokumentovaný zero-click útok cez infikovaný externý obsah (EchoLeak, Aim Security, 2025) ukázal, že útočník nemusí ani komunikovať priamo s agentom — stačí infikovať dokument, ktorý agent načíta. Každý agent, ktorý spracúva externý obsah (weby, emaily, súbory od tretích strán), je potenciálny vektor.
LangGraph interrupt() — ako to funguje technicky?
interrupt() je mechanizmus, ktorý pozastaví vykonávanie grafu v definovanom bode, uloží celý stav (checkpointing) a čaká na externý vstup. Vstup môže prísť cez API volanie, webhook alebo UI. Po prijatí vstupu graf pokračuje od miesta prerušenia — nie od začiatku. Takto agent "pamätá" kontext pred schválením a po ňom plynule pokračuje.
Ako definovať, ktoré akcie potrebujú human approval?
Jednoduchý rámec: akcia potrebuje approval ak (1) je nevratná (mazanie, deploy, odoslanie), (2) má finančný dopad nad definovaný prah, (3) sa dotýka externej strany (zákazník, partner, regulátor), alebo (4) modifikuje produkčné systémy. Interné čítania, vyhľadávania a generovanie draftu approval spravidla nepotrebujú.
Ako guardrails ovplyvňujú latenciu agenta?
Validácia vstupov a allowlist sú prakticky zadarmo — milisekundy bez LLM. HITL approval gate pridáva latenciu podľa rýchlosti human reviewera — sekúndy až minúty, ale len pre high-risk akcie. Output validácia (schema check, heuristiky) je tiež rýchla. Jediná potenciálne pomalšia vrstva je LLM-as-judge pre faithfulness check — ale aj tu stačí lacný model (Haiku tier) na overenie, nie frontier model.
Záver
*Guardrails nie sú brzda pre AI agentov — sú to podmienky, za ktorých môžete agentom dôverovať v produkčnom prostredí. Bez nich každý agent je experiment, nie produkt. Ak zvažujete nasadenie AI agentov vo vašej firme alebo chcete overiť, či existujúce guardrails sú dostatočné, radi posúdime váš konkrétny use-case a navrhneme vrstvenie obrany zodpovedajúce skutočnému riziku.*
