JournalindexDockup / fältanteckning
Note / production-guardrails-for-ai-agents

Produktionsskydd för AI-agenter som faktiskt håller

Produktionsskydd för AI-agenter som hanterar secrets, bekräftelser, auditloggar, begränsad åtkomst, strukturerade fel och säkra autonoma deploymentflöden.

Produktionsskydd för AI-agenter måste tåla mer än en artig prompt. En autonom kodagent kan misstolka ett mål, försöka köra en åtgärd igen, exponera en credential i sin förklaring eller fortsätta efter ett tvetydigt svar. Produktionssäkerhet måste därför finnas i det körbara gränssnittet, auktoriseringsmodellen och audit trailen – inte bara i instruktionerna.

Dockup kombinerar beteendevägledning i sitt Claude Code- och Codex-skill med enforcement på CLI-nivå: secrets maskeras, destruktiva åtgärder kräver --yes, fel returnerar stabila koder, deployer kan vänta på ett slutgiltigt tillstånd och mutationer visas i auditloggen.

Varför måste skyddsmekanismer tillämpas under promptnivån?

En prompt är en användbar policy, men den utgör ingen säkerhetsgräns. Agentens kontext kan kapas, instruktioner kan stå i konflikt med varandra och en modell kan välja en felaktig tolkning. Det underliggande verktyget bör göra osäkert beteende svårt eller omöjligt.

Tänk på en begäran om borttagning. I en svag design finns ett kommando som tar bort direkt, och agenten förväntas komma ihåg att fråga först. I den starkare designen avvisas åtgärden om inte en separat bekräftelseflagga anges.

Dockup använder det starkare mönstret:

dockup up production/api --prune --json

Utan explicit bekräftelse avvisas den destruktiva rensningen och JSON-svaret innehåller code:"needs_confirm". Ingenting rensas bort. Agenten måste visa resultatet för en människa, få godkännande och sedan köra kommandot igen medvetet:

dockup up production/api --prune --yes --json

Detta är defense in depth. Dockup-skillen instruerar agenten att stanna, medan CLI:t förhindrar oavsiktlig körning även om instruktionen missas.

Hur skyddar maskering av secrets autonoma agenter?

Agenter inkluderar ofta kommandoutdata i sitt resonemang eller sitt slutliga svar. Om en läsoperation returnerar en produktionstoken kan den spridas till chatthistorik, loggar, telemetry, skärmbilder eller kopierade incidentanteckningar.

Ett säkert konfigurationsgränssnitt skiljer metadata om secrets från själva secret-värdena. Dockup returnerar nycklar för miljövariabler och markören isSecret, men lagrade secret-värden är null eller maskerade.

dockup env list -s production/api --json

Agenten kan ange en secret utan att senare hämta den:

dockup env set API_KEY="$API_KEY" \
  --secret \
  -s production/api \
  --json

Maskering av secrets eliminerar inte behovet av noggrann processhantering. Det ursprungliga värdet finns fortfarande i shellmiljön under åtgärden. Undvik set -x, skriv inte ut variabeln och bygg inte kommandosträngar som fångas upp av verbose-loggning.

Databaslösenord, API-nycklar, registry-tokens, SSH-credentials och Windows RDP-credentials bör behandlas som engångsvärden eller outputs med begränsad åtkomst. En agent bör lagra dem i en godkänd secret manager eller skicka dem direkt till nästa process utan att återge dem i text.

Det övergripande tillvägagångssättet på applikationsnivå beskrivs i security best practices.

Hur bör godkännande av destruktiva åtgärder fungera?

Alla mutationer kräver inte samma formalitet. En användbar autonomimodell delar in åtgärder efter reversibilitet och konsekvensomfång:

NivåExempelAgentens standardbeteende
Endast läsningLista services, läsa status, visa loggarKör och sammanfatta
Reversibel ändringAnge en variabel, trigga en deployKör inom godkänt scope
Operativ återställningStarta om, köra om en äldre deploymentKör om runbooken tillåter det; rapportera evidens
DestruktivFörstöra en service, ta bort en databas, lämna ett projektStanna och invänta explicit godkännande
Omfattande destruktiv åtgärdTillämpa --prune, överföra ägarskapKräv målspecifikt godkännande från en människa

Ett explicit godkännande bör innehålla exakt mål och konsekvens. ”Ja, fortsätt” är svagare än ”Ta bort staging/old-api och tillhörande service-resurser.” Agenten ska inte återanvända ett godkännande som gavs för ett annat kommando eller mål.

Dockup config as code är additiv som standard. dockup up tar inte bort miljövariabler eller domäner som saknas i manifestet. Borttagning kräver den explicita flaggan --prune:

dockup plan production/api --json
dockup up production/api --prune --json

Planen är skrivskyddad och bör granskas först. Även med --prune skyddas secrets, services, databaser och volymer från den här vägen för manifestbaserad rensning. Se dockup.yaml config as code för hela arbetsflödet.

Hur håller strukturerade fel autonomin inom givna gränser?

En agent behöver ett begränsat antal säkra handlingsalternativ. Fritextmeddelanden är användbara för människor, men stabila felkoder gör det första svaret deterministiskt.

KodKorrekt svar
not_logged_inStoppa och hämta en giltig credential
not_linkedLös målet eller ange det explicit
no_targetKör service discovery; hitta aldrig på en slug
needs_confirmBe om godkännande från en människa
deploy_trigger_failedRapportera varför åtgärden inte kunde starta
deploy_failedInspektera buildloggar
deploy_timeoutRapportera att tillståndet inte är slutgiltigt

En deployment bör använda väntan på ett slutgiltigt tillstånd:

dockup deploy production/api --wait --json

Standardtimeouten är 900 sekunder. Exit 0 bevisar att deploymenten nådde ett lyckat resultat. En exitkod som inte är noll hindrar agenten från att fortsätta med domänändringar, migreringar eller meddelanden som om produktionen vore redo.

Den här designen granskas i AI agent CLI design. Principen är enkel: verktyget måste göra ett tvetydigt resultat explicit.

Vad bör en auditlogg registrera?

Autonomi utan attribution är operativ skuld. En audit trail för produktion bör svara på vem som agerade, vilket gränssnitt som användes, vilket mål som ändrades, om det var en läsning eller skrivning, när det skedde och om det lyckades.

Dockup registrerar åtgärder från CLI, UI och API. Operatörer kan granska de senaste mutationerna:

dockup audit --writes --json
dockup audit --number 30 --json
dockup audit --search domains --json

Agentens egen rapport bör komplettera plattformens registrering. Inkludera:

  1. Det identifierade project/service-målet.
  2. Kommandokategorin, utan secret-värden.
  3. Deployment- eller resurs-ID:n som plattformen returnerade.
  4. Exitkoden och den strukturerade statusen.
  5. Evidens som samlades in efter mutationen.
  6. Eventuella godkännanden som mottagits för destruktivt arbete.
  7. Återstående osäkerhet eller uppföljning.

Auditloggar är inte bara till för att hitta syndabockar efter en incident. De gör det möjligt för en annan agent eller mänsklig operatör att återskapa tillståndet utan att upprepa riskfyllda kommandon.

Hur kan team öka agentens autonomi på ett säkert sätt?

Börja med läsåtkomst och en service med låg risk. Utöka först när agenten visar att den kan identifiera rätt mål, hantera secrets säkert, välja rätt gren vid fel och rapportera korrekt.

En praktisk progression är:

Steg 1: Observera

Tillåt listning av services, status, deploymenthistorik, buildloggar, runtime-loggar, uptime, användning och läsning av säkerhetsskanningar. Jämför agentens sammanfattning med den råa JSON-datan.

Steg 2: Deploya till ett fast mål

Tillåt deployment av en service med --wait. Kräv en health check och en strukturerad slutrapport. Ge inte åtkomst till borttagning eller teambehörigheter.

Steg 3: Hantera reversibel konfiguration

Tillåt uppdateringar av icke-hemliga och hemliga variabler, konfiguration av health checks och inställning av custom domains enligt en granskad runbook. Kräv en ny deployment efter ändringar i miljön.

Steg 4: Utför återställningsåtgärder

Tillåt omstart eller rollback endast när agenten väljer ett exakt och känt deployment-ID och behåller evidens från felet.

Steg 5: Destruktivt arbete med godkännande

Låt destruktiva flaggor förbli bakom explicit godkännande från en människa, även när credentialen tekniskt sett tillåter dem. Använd scoped API-nycklar där det är möjligt och granska audit trailen regelbundet.

Installation av agentens skill förstärker dessa beteenden:

npm install -g dockup-cli
dockup skill install
dockup skill status --json

Dockup CLI reference beskriver det enforcement som gäller för kommandona. Agenten bör verifiera sitt lokala schema i stället för att förlita sig på ett exempel den minns.

Checklista för granskning av skyddsmekanismer

Besvara varje fråga innan du ger åtkomst till produktion:

  • Kan agenten hitta exakta mål utan att gissa?
  • Är secret-värden maskerade i alla läsvägar?
  • Returnerar varje misslyckad mutation en exitkod som inte är noll?
  • Kan långvariga åtgärder vänta på ett slutgiltigt tillstånd?
  • Blockeras destruktiva åtgärder utan explicit bekräftelse?
  • Är credentials begränsade och tillhandahålls utanför prompts?
  • Kan varje mutation hittas i en auditlogg?
  • Finns det en testad rollback- eller återställningsprocedur?
  • Kan versionerna av skillen och det körbara programmet driva isär?
  • Skiljer slutrapporten mellan fakta och osäkerhet?

Ett ”nej” är en designuppgift, inte en uppgift för promptskrivning. Produktionsautonomi bör bara växa i takt med att de underliggande garantierna stärks.

Testa skyddsmekanismerna som fel

En granskning är inte komplett förrän teamet medvetet utlöser gränserna. Kör en deploy med en ogiltig token, begär ett okänt mål, låt ett testbygge misslyckas, ange en mycket kort timeout och försök köra ett destruktivt kommando utan bekräftelse. Varje fall bör ge en exitkod som inte är noll, en stabil kod, inget läckage av secrets och ingen oavsiktlig mutation.

Dessa tester gör produktionsskydd för AI-agenter till observerbara garantier. Upprepa dem efter uppdateringar av CLI eller policy, på samma sätt som du skulle upprepa tester av autentisering och auktorisering för en applikation. En skyddsmekanism som bara finns i en presentation kommer inte att skydda en release utan tillsyn.

Sätt arbetsflödet i produktion

Installera skillen, granska instruktionerna och testa varje skyddsmekanism – inklusive ett blockerat destruktivt kommando – innan du utfärdar en produktionstoken.

npm install -g dockup-cli
dockup skill install

Det första kommandot installerar CLI:t. Det andra installerar den matchande Dockup-skillen för Claude Code och Codex. Kom igång gratis på app.dockup.ai.

Vanliga frågor

Räcker promptinstruktioner för att hålla en AI-agent säker i produktion?

Nej. Prompts hjälper till att styra beteendet, men kritiska kontroller som maskering av secrets, bekräftelser, auktorisering, exitkoder och auditloggning måste tillämpas av verktyget och plattformen.

Hur blockerar Dockup destruktiva åtgärder?

Destruktiva kommandon vägrar att köras utan den explicita flaggan --yes och returnerar den strukturerade koden needs_confirm, så att agenten kan stanna och fråga en människa.

Kan en AI-agent läsa hemliga miljövärden från Dockup?

Lagrade secret-värden maskeras i output. Agenten kan se nyckeln och secret-markören och kan ersätta värdet, men får inte det lagrade secret-värdet.

Varför är strukturerade felkoder viktiga för autonomi?

De begränsar agenten till kända återställningsvägar, till exempel att begära autentisering, hitta det exakta målet, läsa buildloggar eller be om bekräftelse.

Hur bör ett team börja ge åtkomst till produktion?

Börja med skrivskyddade åtgärder, tillåt sedan deployment till ett mål med låg risk och utöka till reversibel konfiguration och återställning först när agenten konsekvent rapporterar verifierbar evidens.