Rejstřík deníkuDockup / terénní poznámka
Note / production-guardrails-for-ai-agents

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říkladVýchozí chování agenta
Pouze pro čteníVýpis services, čtení statusu, zobrazení logůProvést a shrnout
Vratný zápisNastavení proměnné, spuštění deployeProvést v rámci schváleného rozsahu
Provozní obnovaRestart, 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í projektuZastavit 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ódSprávná reakce
not_logged_inZastavit se a získat platný credential
not_linkedVyřešit cíl nebo ho předat explicitně
no_targetSpustit discovery services; slug nikdy nevymýšlet
needs_confirmVyžádat schválení člověka
deploy_trigger_failedOznámit, proč operaci nebylo možné spustit
deploy_failedProzkoumat build logs
deploy_timeoutOzná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:

  1. Vyřešený cíl project/service.
  2. Kategorii příkazu bez hodnot secretů.
  3. ID deployů nebo resources vrácená platformou.
  4. Exit code a strukturovaný status.
  5. Důkazy získané po mutaci.
  6. Veškerá schválení obdržená pro destruktivní práci.
  7. 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.