AI-agentbehörigheter behöver deterministisk verkställighet
Tech
AI Agents
AI Security
Permissions
MCP

AI-agentbehörigheter behöver deterministisk verkställighet

Utforma ett behörighetssystem för AI-agenter som begränsar effekten av modellmisstag, minskar godkännandetrötthet och producerar verifierbara kvitton över åtgärder.

Uygar DuzgunUUygar Duzgun
Jul 26, 2026
Uppdaterad 19 aug. 2026
11 min read

AI-agentbehörigheter bör begränsa misstag även när modellen fattar fel beslut. Produktionsdesignen är enkel: ge varje körning en snäv uppsättning funktioner, verkställ den utanför modellen, reservera mänskligt godkännande för konsekvensrika åtgärder och registrera tillräckligt med bevis för att verifiera vad som hände.

Målgrupp: Avancerade praktiker som bygger agenter som använder verktyg, kodningsagenter eller MCP-servrar.

Det svaret är viktigt eftersom en uppmaning som ”fråga innan du raderar” är vägledning, inte en åtkomstkontrollgräns. En modell kan misstolka den, en injicerad instruktion kan konkurrera med den och ett verktyg kan bete sig annorlunda än vad dess beskrivning anger. Auktorisering måste överleva alla tre felen.

Vad AI-agentbehörigheter måste kontrollera

Ett behörighetssystem för agenter avgör om en specifik anropare får utföra en specifik åtgärd på en specifik resurs under aktuella förhållanden. ”Agenten får använda GitHub” är för brett. Ett användbart beslut innehåller åtminstone:

Identitet: Vilken användare, vilket tjänstekonto, vilken agent eller vilken delegerad underagent agerar?
Åtgärd: Läser, utformar, skickar, raderar, publicerar, spenderar eller ändrar den åtkomst?
Resurs: Vilket repository, vilken brevlåda, kundpost, miljö eller sökväg omfattas?
Begränsningar: Vilket belopp, mål, branch, domän, tidsfönster eller radfilter gäller?
Körningstillstånd: Var denna åtgärd en del av den godkända planen, och har godkännandet löpt ut?
Bevis: Vilken policyversion, verktygsversion, indatasammanfattning och resultat visar att beslutet var korrekt?

Behörighetskontrollen hör hemma vid verktygs- eller tjänstegränsen. Modellen får föreslå en åtgärd och förklara varför. Den bör inte avgöra om det egna förslaget är auktoriserat.

Att separera dessa roller gör också isoleringen av hemligheter mer ärlig. En credential broker kan dölja en API-nyckel för modellen och ändå exponera alla operationer som nyckeln tillåter. Förmedlaren skyddar hemligheten; en åtgärdsspecifik policy skyddar resursen.

Vad den senaste forskningen om behörigheter mätte

Ett förtryck från juli 2026, *How Agents Ask for Permission*, granskade 21 system och förslag för agentbehörigheter som publicerats eller släppts från 2024 till 2026. Författarna gick också igenom fem kommersiella agenter i isolerade uppsättningar under slutet av maj och början av juni.

Deras taxonomi visar en teknisk kompromiss mellan tre mål:

12 av 21 system använde deterministisk verkställighet.
11 av 21 hade formellt grundade behörighetsspecifikationer.
12 av 21 försökte minska användarens interaktionskostnad.
Inget kombinerade låg interaktionskostnad, formell specifikation och deterministisk verkställighet.
Ingen av de granskade implementationerna hade formellt verifierad verkställighet.

Dessa siffror beskriver författarnas urval, inte hela marknaden. Granskningen använde snöbollsurval, inkluderade förtryck och kommersiella produkter och kunde inte inspektera intern kod i slutna system. Artikeln är ändå användbar eftersom den skiljer behörighetsgränssnittet från policyn och verkställighetsmekanismen. En välutformad dialog för godkännande kan inte kompensera för en tvetydig policy eller ett beslut som inte verkställs.

Kommersiella verktyg återspeglar redan en del av denna uppdelning. Claude Code-dokumentationen beskriver regler för att tillåta, fråga och neka, medan dess sandbox-dokumentation beskriver filsystems- och nätverksgränser på OS-nivå. OpenAI:s Codex-säkerhetsvägledning behandlar på liknande sätt sandboxen som en teknisk gräns och godkännandepolicyn som den punkt där en användare kan behöva tillfrågas. Detta är produktspecifika kontroller, inte bevis på att varje driftsättning konfigurerar dem säkert.

Godkännandetrötthet är ett routningsproblem

Frågor om godkännande är användbara när användaren måste fatta ett verkligt beslut. De misslyckas när varje rutinkommando ser lika brådskande ut.

Upprepade frågor med låg risk lär människor att klicka sig igenom dem. Anthropic rapporterade en minskning på 84 % av behörighetsfrågorna efter sin interna sandboxutrullning, men det är ett leverantörsrapporterat operativt resultat snarare än ett oberoende benchmark. Den hållbara lärdomen är mer begränsad: förgodkänt arbete inom en verkställd gräns kan minska avbrott utan att ge agenten global åtkomst.

Routa åtgärder till fyra utfall:

UtfallAnvänd närExempel
---------
Tillåt automatisktÅtgärden är avgränsad, reversibel och inneslutenLäs filer i ett repository
Tillåt med begränsningarÅtgärden är rutinmässig men behöver en hård gränsKör tester med nätverket avstängt och en tidsgräns
Fråga en människaÅtgärden är konsekvensrik eller synlig utanför systemetSkicka e-post, publicera innehåll, merga, spendera eller radera
NekaFunktionen ligger utanför körningens syfteLäs en annan kunds data eller ändra IAM-roller

Risk bör beräknas utifrån åtgärden och dess spridningsradie, inte modellens konfidens. Hög konfidens gör inte en irreversibel åtgärd säkrare.

En behörighetsarkitektur i fem lager

Den minsta trovärdiga arkitekturen har fem separata lager. Om de kombineras blir revisioner svårare och vägar som öppnas vid fel skapas.

AI-agentbehörighetsarkitektur i fem steg med vägar för tillåt, neka, mänskligt godkännande och revision
AI-agentbehörighetsarkitektur i fem steg med vägar för tillåt, neka, mänskligt godkännande och revision

*Modellen föreslår en åtgärd. Policy, verkställighet, exekvering och bevis förblir separata.*

1. Normalisera den föreslagna åtgärden

Konvertera ett modellgenererat verktygsanrop till en typad begäran före auktorisering:

{ "actor": "agent-run-7f3", "on_behalf_of": "user-42", "action": "blog.publish", "resource": "post:ai-agent-permissions", "constraints": { "environment": "production", "language": "en" } }

Detta är ett illustrativt kontrakt, inte en standard. Den viktiga egenskapen är att auktoriseringen utvärderar ett stabilt objekt i stället för fritt formulerat resonemang.

2. Utvärdera policyn utanför modellen

Returnera ett deterministiskt beslut: `allow`, `ask` eller `deny`. Inkludera policyns regel och utgångstid. En modell kan hjälpa till att klassificera en ny typ av begäran, men klassificeringen bör inte ensam ge åtkomst. Okända åtgärder bör nekas som standard.

3. Verkställ beslutet vid exekvering

Verktygshanteraren eller den underliggande tjänsten måste verifiera beslutet igen. Förlita dig inte på att agenten respekterar ett avslag. Bind funktionen till den exakta åtgärden, resursen, anroparen och ett kort tidsfönster så att den inte kan spelas upp mot ett annat mål.

MCP-auktoriseringsspecifikationen tillämpar samma princip på åtkomsttokens: servrar måste validera att en token utfärdades för den avsedda målgruppen. MCP:s säkerhetsvägledning förbjuder uttryckligen vidarebefordran av tokens eftersom det kan bryta denna gräns.

4. Exekvera genom snäva verktyg

Föredra `publish_draft(post_id)` framför `run_sql(query)` och `send_invoice(invoice_id)` framför `http_request(url, body)`. Snäva verktyg gör policyn lättare att läsa och minskar utrymmet för oavsiktliga åtgärder.

Samma argument om kontrollagret återkommer i MCP Developer Workflows: The Real Control Layer: verktygens utformning, godkännandegrindar och åtgärder som kan spelas upp avgör vad en agent kan göra på ett säkert sätt.

5. Registrera ett kvitto och stöd återkallande

Logga den begärda åtgärden, policybeslutet, godkännarens identitet, sammanfattningen av verktygsindata, resultatklassen och eftervillkoret. Maskera hemligheter och känsliga nyttolaster. En användare bör kunna återkalla ett stående tillstånd utan att bygga om agenten.

Kvittot måste skilja mellan ”verktyget returnerade” och ”det avsedda tillståndet finns”. Ett HTTP 200, ett lyckat SDK-anrop eller ett självsäkert slutmeddelande är inte ett eftervillkor.

Behandla minnesskrivningar som privilegierade åtgärder

Beständiga minnesändringar påverkar framtida beteende, så minnesskrivningar behöver en egen behörighets- och valideringsväg.

MemGhost-artikeln från juli 2026 introducerade WhisperBench, ett benchmark med 108 fall för smygande minnesinjektion genom e-postflöden. Författarna rapporterar en attackframgång på 87,5 % i en utvärdering på tidigare osedda data mot en OpenClaw-konfiguration och 71,4 % mot en Claude Code SDK-konfiguration. De rapporterar också överföring till andra minnessystem.

Dessa siffror fastställer inte en universell komprometteringsgrad. Experimenten omfattar specifika modeller, agentarkitekturer och ett e-postcentrerat arbetsflöde; flera utvärderingar använder LLM-domare, och artikeln testar inte minnesförlust över flera veckor. Den praktiska slutsatsen gäller ändå: opålitligt innehåll bör inte bli beständigt agentminne utan proveniens, schemavalidering, tenantisolering och en uttrycklig skrivpolicy.

En minnespost bör innehålla:

källidentitet och tillitsklass;
den exakta observationen, separerad från alla härledda instruktioner;
tenant-, användar- och uppgiftsomfattning;
skapandetid, utgångstid och återkallandestatus;
en referens till körningen och policybeslutet som godkände den.

Behörigheter måste överleva verktygsfel

En behörighetsdesign är ofullständig om den förutsätter att verktygsbeskrivningar och svar förblir stabila.

ToolBench-X utvärderar agenter under specifikationsdrift, anropsfel, exekveringsfel, resultatdrift och konflikter mellan källor. Artikeln rapporterar att agenter som presterar väl med rena verktyg försämras under dessa risker, medan riktade återställningsledtrådar hjälper mer än att helt enkelt använda mer beräkningskraft under testtid. Det är ett benchmarkresultat, inte en produktionsincidentfrekvens.

AgentTether studerar misslyckade förlopp och skyddad ingripande vid körning. På 261 tau-bench-uppgifter rapporterar författarna att de reparerade 69,11 % av de initialt misslyckade Qwen-körningarna, 26,02 procentenheter över blind retry. Resultaten varierar mellan domäner, kompletterande bedömningar bygger på en annan modell och tau-bench kan inte representera varje produktionsverktygskedja.

Dessa artiklar stöder två kontroller:

Auktorisera på nytt efter en väsentlig förändring av mål, argument eller verktygskontrakt.
Låt aldrig en retry ärva bredare behörigheter än det misslyckade försöket.

En retry är ett nytt exekveringsbeslut, inte ett bevis på att den tidigare åtgärden var säker.

Ett reproducerbart arbetsflöde för behörighetstester

Kör dessa tester innan du aktiverar autonoma skrivningar:

Inventera alla funktioner. Bryt ned breda anslutningar i konkreta läsningar, skrivningar, raderingar, utskick, publiceringar, betalningar och rolländringar.
Bygg en behörighetsmatris. Mappa aktör, åtgärd, resurs, begränsningar, beslut, godkännare, utgångstid och eftervillkor.
Skriv policytester. Täck tillåt, fråga, neka, okänd åtgärd, utgånget tillstånd, ändrat mål, replay och återkallad åtkomst.
Injicera fientlig kontext. Placera instruktioner i dokument, ärendetext, verktygsutdata, hämtade sidor och minneskandidater. Verifiera att innehåll inte kan ändra auktoriseringen.
Förstör verktygen. Simulera timeouts, partiella resultat, duplicerade svar, föråldrade scheman och ett lyckat svar utan det förväntade tillståndet.
Läs tillbaka från systemet. Verifiera det externa eftervillkoret genom en separat väg.
Spela upp kvittot. Bekräfta att en revisor kan återskapa beslutet utan att exponera autentiseringsuppgifter eller privata nyttolaster.

Deterministiska agentmått börjar dyka upp i verktyg för utvärdering med öppen källkod. DeepEval 4.1.3-versionen den 12 juli 2026 lade till de deterministiska `ToolPermissionMetric` och `AgentLoopDetectionMetric`. Versionen är en signal om användning, inte bevis på att måtten täcker alla missbruksscenarier.

Oberoende verifiering är också viktig bortom säkerhet. Denna hybrida AI-kodgranskningsslinga använder en separat granskare och ett verkligt bygge som bevis. Den bredare systemlärdomen återkommer i Code Agents After 21.54 Billion Tokens: modellkvalitet kan inte ersätta verifiering och operativa gränser.

Checklista för produktion

Modellen kan inte ge sig själv en ny funktion.
Varje funktion är avgränsad till aktör, åtgärd, resurs och tid.
Okända åtgärder och ogiltig policykonfiguration nekas som standard.
Sandboxing begränsar exponering av filsystem, nätverk, processer och autentiseringsuppgifter.
Konsekvensrika eller externt synliga åtgärder kräver ett oberoende godkännande.
Minnesskrivningar valideras, kan härledas, isoleras, löper ut och kan återkallas.
Retries breddar inte behörighetsomfattningen.
Verktygsframgång följs av en extern kontroll av eftervillkoret.
Loggar innehåller bevis för policy och resultat utan hemligheter.
Policyändringar och verktygsversioner genomgår regressionstester och adversarial testing.

OWASP:s AI Agent Security Cheat Sheet når en liknande operativ slutsats: tillämpa minsta privilegium, separera beslutsfattande från irreversibel exekvering, validera extern indata, verkställ loopgränser och behåll strukturerade åtgärdsloggar.

Vad dessa bevis inte visar

De artiklar som citeras här är nya förtryck, inte etablerade standarder. Deras urval, modeller, verktyg och benchmark begränsar varje numeriskt resultat. Kommersiell dokumentation beskriver tillgängliga kontroller, inte om en viss driftsättning använder dem korrekt. GitHub-versioner och ärenderapporter visar aktivt tekniskt arbete, inte felfrekvenser för hela ekosystemet.

Arkitekturen är därför ett beslutsramverk, inte en certifiering. Dess värde ligger i att göra säkerhetsgränsen inspekterbar: modellen föreslår; policyn beslutar; infrastrukturen verkställer; verktygen agerar; oberoende bevis verifierar.

Kontroll av påståenden

PåståendeStatusBevisBegränsning
------------
Behörighetsgranskningen fann ingen implementation som kombinerade alla tre målegenskapernaVerifieratMichael och Roesner, arXiv:2607.13718Ett snabbt föränderligt material med 21 snöbollsurvalda objekt
MCP-servrar måste validera tokenens målgrupp och får inte vidarebefordra klienttokensVerifieratMCP-auktoriseringsspecifikation, 2025-06-18Gäller auktorisering för skyddad HTTP-transport
MemGhost rapporterade 87,5 % och 71,4 % framgång på tidigare osedda data i två testade konfigurationerKvalificeratYao et al., arXiv:2607.05189Specifika modeller, agenter, e-postarbetsflöde och utvärderingsupplägg
AgentTether reparerade 69,11 % av de initialt misslyckade körningarna i sin primära utvärdering med 261 uppgifterKvalificeratarXiv:2607.06273Endast tau-bench; bedömningar med kompletterande modell; variation mellan domäner
DeepEval 4.1.3 lade till deterministiska loop- och verktygsbehörighetsmåttVerifieratVersionsanteckningar för DeepEval v4.1.3Att måtten finns tillgängliga visar inte att täckningen är fullständig

Källor

Officiell specifikation: Model Context Protocol Authorization.
Officiell säkerhetsvägledning: Model Context Protocol Security Best Practices.
Officiell dokumentation: Claude Code permissions.
Officiell dokumentation: Claude Code sandboxing.
Officiell teknisk rapport: Claude Code Sandboxing.
Version med öppen källkod: DeepEval 4.1.3.
Säkerhetsvägledning: OWASP AI Agent Security Cheat Sheet.