Produkční guardrails pro AI agenty, které skutečně fungují
Produkční guardrails pro AI agenty zahrnující secrets, potvrzování, auditní logy, omezený přístup, strukturované chyby a bezpečné workflow pro autonomní nasazování.
Produkční guardrails pro AI agenty musí odolat více než jen zdvořilému promptu. Autonomní coding agent může špatně pochopit cíl, opakovat operaci, odhalit credential ve svém vysvětlení nebo pokračovat po nejednoznačné odpovědi. Bezpečnost v produkci proto musí být součástí spustitelného rozhraní, autorizačního modelu a auditní stopy — nejen instrukcí.
Dockup kombinuje behaviorální pokyny ve skillu pro Claude Code a Codex s vynucováním na úrovni CLI: secrets jsou maskované, destruktivní operace vyžadují --yes, chyby vracejí stabilní kódy, deploye mohou čekat na terminální stav a mutace se zapisují do auditního logu.
Proč se guardrails musí vynucovat pod úrovní promptu?
Prompt je užitečná policy, ale nepředstavuje bezpečnostní hranici. Kontext agenta může být zkrácen, instrukce mohou být v konfliktu a model může zvolit nesprávnou interpretaci. Základní nástroj by měl nebezpečné chování ztížit nebo znemožnit.
Představte si požadavek na smazání. Slabý návrh zpřístupní příkaz, který maže okamžitě, a spoléhá na to, že si agent zapamatuje vyžádat potvrzení. Lepší návrh operaci odmítne, pokud není přítomen samostatný příznak potvrzení.
Dockup používá právě tento robustnější vzor:
dockup up production/api --prune --json
Bez explicitního potvrzení je destruktivní cleanup odmítnut a JSON obsahuje code:"needs_confirm". Nic se neodstraní. Agent musí tento výsledek předložit člověku, získat schválení a poté příkaz záměrně spustit znovu:
dockup up production/api --prune --yes --json
Jde o defense in depth. Skill Dockup agentovi říká, aby se zastavil, zatímco CLI zabrání náhodnému provedení, i když agent instrukci přehlédne.
Jak maskování secrets chrání autonomní agenty?
Agenti často zahrnují výstup příkazu do svého uvažování nebo závěrečné odpovědi. Pokud operace čtení vrátí produkční token, secret se může rozšířit do historie chatu, logů, telemetrie, screenshotů nebo zkopírovaných poznámek k incidentu.
Bezpečné konfigurační rozhraní odděluje metadata secretů od jejich hodnot. Dockup vrací klíče environment variables a marker isSecret, ale uložené hodnoty secretů jsou null nebo maskované.
dockup env list -s production/api --json
Agent může secret nastavit, aniž by ho později načítal:
dockup env set API_KEY="$API_KEY" \
--secret \
-s production/api \
--json
Maskování secretů neodstraňuje potřebu pečlivě pracovat s procesy. Původní hodnota během operace set stále existuje v shell environmentu. Vyhněte se set -x, proměnnou nevypisujte a nevytvářejte řetězce příkazů, které zachytává verbose logging.
Hesla k databázím, API keys, registry tokens, SSH credentials a credentials pro Windows RDP by měly být považovány za jednorázové nebo omezené výstupy. Agent by je měl uložit do schváleného secret manageru nebo je předat přímo dalšímu procesu, aniž by je znovu vypisoval v textu.
Širší přístup na úrovni aplikace popisujeme v článku security best practices.
Jak by mělo fungovat schvalování destruktivních akcí?
Ne každá mutace vyžaduje stejnou míru formalit. Užitečný model autonomie rozděluje operace podle vratnosti a rozsahu dopadu:
| Úroveň | Příklad | Výchozí chování agenta |
|---|---|---|
| Pouze pro čtení | Výpis services, čtení statusu, zobrazení logů | Provést a shrnout |
| Vratný zápis | Nastavení proměnné, spuštění deploye | Provést v rámci schváleného rozsahu |
| Provozní obnova | Restart, opětovné spuštění staršího nasazení | Provést, pokud to dovoluje runbook; uvést důkazy |
| Destruktivní | Zničení service, smazání databáze, opuštění projektu | Zastavit se a vyžádat explicitní schválení |
| Rozsáhle destruktivní | Použití --prune, převod vlastnictví | Vyžadovat potvrzení člověka pro konkrétní cíl |
Explicitní schválení by mělo obsahovat přesný cíl a důsledek. „Ano, pokračuj“ je slabší než „Smaž staging/old-api a související resources service.“ Agent by neměl znovu použít schválení udělené pro jiný příkaz nebo cíl.
Dockup config as code je ve výchozím nastavení aditivní. dockup up neodstraní environment variables ani domains, které v manifestu chybějí. Smazání vyžaduje explicitní příznak --prune:
dockup plan production/api --json
dockup up production/api --prune --json
Plan je pouze pro čtení a měl by se nejprve zkontrolovat. I s --prune jsou secrets, services, databases a volumes chráněné před touto cestou cleanupu manifestu. Kompletní workflow najdete v článku dockup.yaml config as code.
Jak strukturované chyby udržují autonomii v bezpečných mezích?
Agent potřebuje konečnou množinu bezpečných větví. Volné textové zprávy jsou užitečné pro lidi, ale stabilní chybové kódy zajišťují deterministickou první reakci.
| Kód | Správná reakce |
|---|---|
not_logged_in | Zastavit se a získat platný credential |
not_linked | Vyřešit cíl nebo ho předat explicitně |
no_target | Spustit discovery services; slug nikdy nevymýšlet |
needs_confirm | Vyžádat schválení člověka |
deploy_trigger_failed | Oznámit, proč operaci nebylo možné spustit |
deploy_failed | Prozkoumat build logs |
deploy_timeout | Oznámit nejistotu ohledně neterminálního stavu |
Deploy by měl používat čekání na terminální stav:
dockup deploy production/api --wait --json
Výchozí timeout je 900 sekund. Exit 0 potvrzuje, že deploy dosáhl úspěšného stavu. Nenulový exit zabrání agentovi pokračovat ke změnám domény, migracím nebo oznámením, jako by produkce byla připravená.
Tento návrh podrobněji rozebíráme v článku AI agent CLI design. Princip je jednoduchý: nástroj musí nejednoznačný výsledek vyjádřit explicitně.
Co by měl auditní log zaznamenávat?
Autonomie bez možnosti přiřazení odpovědnosti představuje provozní dluh. Produkční auditní stopa by měla odpovědět na otázky, kdo jednal, jaké rozhraní použil, který cíl změnil, zda šlo o čtení nebo zápis, kdy k tomu došlo a zda operace uspěla.
Dockup zaznamenává akce z CLI, UI a API. Operátoři si mohou zobrazit poslední mutace:
dockup audit --writes --json
dockup audit --number 30 --json
dockup audit --search domains --json
Vlastní report agenta by měl záznam platformy doplňovat. Uveďte:
- Vyřešený cíl
project/service. - Kategorii příkazu bez hodnot secretů.
- ID deployů nebo resources vrácená platformou.
- Exit code a strukturovaný status.
- Důkazy získané po mutaci.
- Veškerá schválení obdržená pro destruktivní práci.
- Zbývající nejistotu nebo další kroky.
Auditní logy neslouží pouze k hledání viníka po incidentu. Umožňují druhému agentovi nebo lidskému operátorovi rekonstruovat stav, aniž by musel znovu spouštět rizikové příkazy.
Jak mohou týmy bezpečně zvyšovat autonomii agenta?
Začněte přístupem pro čtení a jednou service s nízkým rizikem. Rozsah rozšiřujte až poté, co agent prokáže správné hledání cílů, bezpečnou práci se secrets, větvení při chybách a kvalitní reportování.
Praktický postup může vypadat takto:
Fáze 1: Pozorování
Povolte výpis services, status, historii nasazení, build logs, runtime logs, uptime, usage a čtení security scanů. Porovnávejte shrnutí agenta se surovým JSON.
Fáze 2: Deploy na pevně určený cíl
Povolte deploy jedné service s --wait. Vyžadujte health check a strukturovaný report o dokončení. Nepovolujte mazání ani team permissions.
Fáze 3: Správa vratné konfigurace
Povolte aktualizace non-secret a secret variables, konfiguraci health checku a nastavení custom domainu podle revidovaného runbooku. Po změnách environmentu vyžadujte nový deploy.
Fáze 4: Provádění recovery akcí
Povolte restart nebo rollback pouze tehdy, když agent vybere přesné známé ID deploye a zachová důkazy o chybě.
Fáze 5: Destruktivní práce se schválením
Destruktivní příznaky ponechte za explicitním schválením člověka, i když je credential po technické stránce umožňuje. Kde je to možné, používejte scoped API keys a pravidelně kontrolujte auditní stopu.
Instalace skillu agenta toto chování podporuje:
npm install -g dockup-cli
dockup skill install
dockup skill status --json
Dokumentace Dockup CLI popisuje vynucované chování příkazů. Agent by měl ověřovat své lokální schema, místo aby se spoléhal na zapamatovaný příklad.
Checklist kontroly guardrails
Před udělením přístupu do produkce odpovězte na každou otázku:
- Dokáže agent zjistit přesné cíle bez hádání?
- Jsou hodnoty secretů maskované ve všech cestách čtení?
- Vrací každá neúspěšná mutace nenulový exit?
- Mohou dlouhé operace čekat na terminální stav?
- Jsou destruktivní akce blokované bez explicitního potvrzení?
- Jsou credentials omezené rozsahem a předávané mimo prompty?
- Lze každou mutaci dohledat v auditním logu?
- Existuje otestovaný postup rollbacku nebo obnovy?
- Mohou se verze skillu a spustitelného souboru lišit?
- Odděluje závěrečný report fakta od nejistoty?
Odpověď „ne“ znamená úkol v návrhu systému, nikoli úkol v psaní promptu. Autonomie v produkci by měla růst pouze spolu s růstem základních garancí.
Testujte guardrails pomocí chybových scénářů
Kontrola není úplná, dokud tým záměrně neotestuje hranice systému. Spusťte deploy s neplatným tokenem, požádejte o neznámý cíl, nechte testovací build selhat, nastavte velmi krátký timeout a pokuste se spustit destruktivní příkaz bez potvrzení. Každý případ by měl skončit nenulovým exitem, stabilním kódem, bez úniku secretů a bez nezamýšlené mutace.
Tyto testy mění produkční guardrails pro AI agenty v pozorovatelné garance. Opakujte je po aktualizacích CLI nebo policies stejně jako testy authentication a authorization u aplikace. Guardrail, který existuje pouze v prezentaci, neochrání release bez dohledu.
Uveďte workflow do produkce
Nainstalujte skill, projděte si jeho instrukce a před vydáním produkčního tokenu otestujte všechny guardrails — včetně zablokovaného destruktivního příkazu.
npm install -g dockup-cli
dockup skill install
První příkaz nainstaluje CLI. Druhý nainstaluje odpovídající skill Dockup pro Claude Code a Codex. Začněte zdarma na app.dockup.ai.
FAQ
Stačí instrukce v promptu k bezpečnému provozu AI agenta v produkci?
Ne. Prompty pomáhají řídit chování, ale kritické controls, jako jsou maskování secretů, potvrzování, autorizace, exit codes a auditní logging, musí vynucovat nástroj a platforma.
Jak Dockup blokuje destruktivní operace?
Destruktivní příkazy se bez explicitního příznaku --yes odmítnou spustit a vrátí strukturovaný kód needs_confirm, takže agent se může zastavit a požádat člověka.
Může AI agent z Dockup načíst hodnoty secret environment variables?
Uložené hodnoty secretů jsou ve výstupu maskované. Agent vidí klíč a marker secretu a může hodnotu nahradit, ale uložený secret neobdrží.
Proč jsou strukturované chybové kódy důležité pro autonomii?
Omezují agenta na známé recovery větve, například vyžádání authentication, zjištění přesného cíle, načtení build logs nebo vyžádání potvrzení.
Jak by měl tým začít udělovat přístup do produkce?
Začněte operacemi pouze pro čtení, poté povolte deploy na jeden cíl s nízkým rizikem a teprve poté rozšiřujte přístup na vratnou konfiguraci a recovery, až bude agent konzistentně poskytovat ověřitelné důkazy.
