Guide och insikt

Styrning av agentverktyg genom en AI API-gateway: omfattningar, godkännanden, budgetar och revisionsspår

En praktisk referensarkitektur för att styra agentverktyg genom en AI API-gateway: verktygsregister, scoped-nycklar, godkännandegrindar, per-verktygsbudgetar, MCP-godkännandelistor och sammanfogade modell-/verktygsrevisionsspår.

Agentrisken är inte längre begränsad till modellprompten. En produktionsagent kan söka i interna filer, fråga efter kundregister, ringa en MCP-server, köra kod, öppna en webbläsare, skicka e-post, uppdatera en CRM eller utlösa ett faktureringsarbetsflöde. Styrningsfrågan blir: vilken användare, nyckel, modell, agent och verktyg fick vidta vilken åtgärd, med vilken budget, revisionsspår och återställningsväg?

Om varje team hanterar verktygsåtkomst i sin egen SDK-kod, blir policyn spridd över miljövariabler, leverantörsinstrumentpaneler, programmellanprogram och odokumenterade MCP-servrar. Ett säkrare mönster är att behandla agentverktygsexekvering som ett kontrollplansproblem och genomdriva det genom en AI API-gateway eller en standardverktygsexekveringsinpackning som varje agent måste använda.

Den här artikeln skiljer på fakta, rekommendationer och förutsägelser. Fakta är hämtad från aktuell offentlig vägledning: OWASP:s LLM Application Top 10 inkluderar risker som avslöjande av känslig information, sårbarheter i försörjningskedjan och överdriven byråkrati; NIST:s generativa AI-profil för AI Risk Management Framework betonar kartläggning, mätning och hantering av generativa AI-risker; OpenAI:s agentvägledning rekommenderar att man utvärderar verktygsrisk genom läs-/skrivåtkomst, reversibilitet, behörigheter och ekonomisk påverkan; och MCP-auktoriseringsvägledning använder omfångade auktoriseringskoncept för känsliga resurser och operationer. Rekommendationerna nedan är implementeringsmönster, inte universella krav.

Läsarproblemet: modellåtkomst och verktygsåtkomst blandas ihop

I många tidiga LLM-applikationer svarade en API-nyckel på en grundläggande fråga: kan den här tjänsten kalla en modell? Agenter gör det för grovt. En nyckel som kan skicka chattslut ska inte automatiskt kunna exportera kunddata, köra skalkommandon, posta till Slack, ändra biljetter, surfa på godtyckliga webbplatser eller skicka in betalningsändringar.

Styrningsskiktet måste svara på mer specifika frågor:

  • Vilken hyresgäst, arbetsyta, användare, tjänstekonto eller återförsäljarkund startade körningen?
  • Vilken modell, promptmall, agentversion och verktygsschema användes?
  • Var det begärda verktyget skrivskyddat, reversibelt, oåterkalleligt, utåtriktat, ekonomiskt eller privilegierat?
  • Hade begäranden den omfattning som krävs?
  • Krävdes godkännande, beviljades, nekades, löpte ut eller förbigicks av nödpolicyn?
  • Vad kostade verktyget, hur många gånger anropades det och vilken ackumulerad budget återstod?
  • Vilka bevis finns för felsökning, granskning av efterlevnad och återställning?

Arkitekturen nedan antar att gatewayen redan tar emot modellanrop. Verktygskörning kan sedan dirigeras genom samma gateway, genom en sidovagnstjänst eller genom ett standardbibliotek som rapporterar till gatewayen före och efter varje verktygsanrop.

Referensarkitektur: ett verktygsstyrningslager på gatewaynivå

Ett praktiskt styrsystem för agenter har sju komponenter:

  1. Verktygsregister: den auktoritativa listan över godkända verktyg, MCP-servrar, värdfunktioner, lokala exekveringsverktyg och interna API:er.
  2. Identitet och nyckellager: gatewaynycklar, användare, hyresgäster, tjänstekonton, team och återförsäljarkunder.
  3. Scope-motor: policykontroller som avgör om en nyckel eller användare kan anropa en specifik verktygskapacitet.
  4. Riskklassificerare: metadata som beskriver sprängradie, datakänslighet, reversibilitet, extern påverkan och kostnadsexponering.
  5. Arbetsflöde för godkännande: mänskligt eller systemgodkännande för högriskåtgärder före exekvering.
  6. Budget- och hastighetsgränser: gränser per verktyg och per agent, inte bara gränser per modell.
  7. Revision och spåra butik: sammanfogade poster för modellanrop, verktygsanrop, godkännanden, fel och resultat.

Det viktiga designbeslutet är att göra gatewayen till policybeslutspunkt även om själva verktyget körs någon annanstans. Till exempel kan ett webbläsarverktyg köras i en sandlådearbetare, och en CRM-skrivning kan köras i en intern tjänst. Gatewayen utvärderar fortfarande om samtalet är tillåtet, registrerar beslutet, spårar kostnaden och returnerar ett undertecknat auktoriseringsbeslut eller avslag.

Steg 1: Bygg ett centralt verktygsregister

Ett verktygsregister är inventeringen som förhindrar att "okänd agentkapacitet" blir standard. Varje verktyg bör ha en ägare, en risknivå och operativ metadata. En minimal registerpost kan se ut så här:

{
  "tool_id": "crm.create_ticket",
  "display_name": "Skapa CRM-supportbiljett",
  "owner_team": "support-automation",
  "execution_type": "intern_api",
  "server_url": "https://tools.internal.example/crm",
  "allowed_tenants": ["företag", "support"],"allowed_models": ["generell-stor", "allmän-snabb"],
  "risk_tier": "reversible_write",
  "data_classification": "customer_metadata",
  "required_scopes": ["tool:crm.create_ticket"],
  "approval_policy": "icke_required_under_100_tickets_per_day",
  "default_timeout_ms": 8000,
  "max_cost_per_call_usd": 0,05,
  "max_samtal_per_körning": 3,
  "rollback_owner": "support-ops-oncall",
  "retention_policy": "redacted_30_days"
}

För MCP-servrar bör registret även inkludera serverns URL, annonserade verktyg, schemaversion, auktoriseringsmetod, senaste granskningsdatum och om nya verktyg är inaktiverade som standard. MCP förbättrar interoperabiliteten, men protokollkompatibilitet är inte detsamma som produktionsauktorisering. Känsliga resurser och operationer behöver fortfarande explicita omfattningar, ruttkontroller och hyresgästisolering.

Rekommenderade registerfält

  • Verktygsnamn, kanoniskt ID, ägare och jourkontakt.
  • Exekveringsplats: värdleverantörsverktyg, MCP-server, intern API, webbläsararbetare, kodlöpare, köjobb eller lokalt SDK-verktyg.
  • Tillåtna hyresgäster, team, användare, agentversioner och modellprofiler.
  • Dataklassificering: offentlig, intern, kundmetadata, kundinnehåll, hemligheter, betalningsdata, autentiseringsuppgifter, reglerad data.
  • Risknivå och reversibilitet.
  • Obligatoriska omfattningar och godkännandepolicy.
  • Timeout, prisgränser, max samtal per körning, kumulativ körbudget och maxkostnad per samtal.
  • Loggningsläge: full nyttolast förbjuden, redigerad, hashad, samplade eller uttryckligen behållen.
  • Återställningsinstruktioner och eskaleringsväg.

Steg 2: Separera modellscopes från verktygsscopes

En produktionsgatewaynyckel bör uttrycka vad den som ringer kan göra. Modellåtkomst och verktygsåtkomst bör vara oberoende. Till exempel:

model:chat
modell:inbäddningar
tool:docs.search_readonly
tool:crm.create_ticket
tool:email.send_requires_approval
tool:billing.refund_blocked
tool:code.execute_blocked

Detta hindrar en chatbot med låg risk från att bli en oavsiktlig automatiseringsagent. Den stöder också rollmallar:

  • Utvecklarassistent: modellchatt, dokumentationssökning, kodförklaring, inga produktionsskrivverktyg.
  • Supportbot: kundsökning, skapande av biljetter, utarbetande av svar, godkännande krävs för externa sändningar.
  • Analytikeragent: skrivskyddade datalagerfrågor med radgränser, inga kundexporter som standard.
  • Administratörsagent: begränsad privilegierad verksamhet, starkt godkännande, kortlivade nycklar, fullständig granskning.
  • Återförsäljare hyresgästagent: modellåtkomst med hyresgäst, verktyg för hyresgäst, budgettak per kund.

Rekommendationen är att misslyckas stängd: okända verktyg nekas, saknade omfattningar nekar körning, nyligen annonserade MCP-verktyg är inaktiva tills de godkänns och lokala verktyg måste använda samma policyomslag som värdverktyg.

Steg 3: Klassificera verktyg efter sprängradie

Inte varje verktygsanrop behöver mänskligt godkännande. Styrningen bör stå i proportion till risken. En användbar klassificeringsmodell är:

RisknivåExempelStandardkontroll Skrivskyddad offentligSökning i offentliga dokument, hämtning av offentlig webbplatsTillåt med prisgränser Skrivskyddad internIntern wiki, produktdokumentTillåt för omfångade team; redigera loggar Skrivskyddad kunddataKontosökning, supporthistorikKontroller av hyresgäster och användare; strikt revision Reversibel skrivningSkapa biljett, lägg till utkastanteckningTillåt med begränsningar och återställande ägare Extern kommunikationSkicka e-post, posta meddelande, publicera innehållGodkännande eller förhandsgranskning för de flesta användningsfall Oåterkallelig skrivningTa bort post, skicka in juridisk formNeka som standard eller kräva godkännande med hög förtroende Finansiell åtgärdÅterbetalning, köp, faktureringsändringStarkt godkännande, låga gränser, fullständig revision KodkörningKör skal, kör Python, distribuera skriptSandlåda, nätverksgränser, timeouts, godkännande där det behövs Privilegerad administratörSkapa användare, ändra roller, rotera referenserNeka som standard; Endast glasbrytningsprocess

Denna klassificering bör vara synlig i kodgranskning och i administratörsgränssnittet. Enbart verktygsbeskrivningar är inte tillräckligt eftersom agenter kan behandla beskrivningar som instruktioner. Policymotorn bör förlita sig på registermetadata och omfång, inte bara på verktygsnamn på naturliga språk.

Steg 4: Lägg till godkännandeportar för högriskåtgärder

Godkännande bör riktas. Om varje verktygsanrop kräver en person blir agenten oanvändbar. Om inget verktygsanrop kräver godkännande, kan systemet bevilja överdriven agentur.

Ett vanligt godkännandeflöde:

  1. Agenten begär ett verktygsanrop med strukturerade argument.
  2. Gatewayen utvärderar identitet, omfattning, risknivå, budget och policy.
  3. Om godkännande krävs returnerar gatewayen en väntande godkännandehändelse istället för att köra verktyget.
  4. Applikationen visar en förhandsvisning för användaren eller skickar ett operationsmeddelande till en godkännandekanal.
  5. Godkännaren kan godkänna, neka, redigera argument om policyn tillåter, eller begära förtydliganden.
  6. Gatewayen registrerar beslutet och exekverar endast den godkända versionen.

Godkännande nyttolasten bör visa åtgärden i mänskliga termer, inte bara rå JSON:

{
  "approval_id": "appr_123",
  "agent_run_id": "run_456",
  "requested_by_user": "user_789",
  "tool_id": "email.send",
  "risk_tier": "extern_kommunikation",
  "summary": "Skicka ett svar till [email protected] om biljett #4812",
  "redacted_arguments": {
    "to": "[email protected]",
    "subject": "Uppdatering på biljett #4812",
    "body_hash": "sha256:..."
  },
  "expires_at": "2026-08-09T12:30:00Z"
}

Godkännande är mest användbart för extern kommunikation, ekonomiska åtgärder, oåterkalleliga skrivningar, privilegierad administration och bred dataexport. Det är vanligtvis onödigt att söka efter offentlig dokumentation i låg volym.

Steg 5: Spåra budgetar och prisgränser per verktyg

Tokenbudgetar räcker inte. En billig modell kan utlösa dyra sökningar, webbläsarsessioner, kodkörningar, API-anrop från tredje part eller långa verktygsloopar. Gatewayen bör spåra minst fyra räknare:

  • Antal samtal per verktyg: maximalt antal samtal per körning, användare, hyresgäst och tidsfönster.
  • Kostnad per verktyg: direkta tredjepartsavgifter, kostnad för webbläsare/körning, sökkostnad eller uppskattning av intern återkrav.
  • Kumulerad kostnad för agentkörd: modelltokens plus verktygskostnader.
  • Slingadjup: maximalt antal modell-verktyg-modell-iterationer.

När en gräns nås bör gatewayen undvika ett tyst hårt fel när det är möjligt. Säkrare nedbrytningsmönster inkluderar att returnera en sammanfattning av framsteg, be om godkännande för att fortsätta, sänka hämtningsdjupet, köa ett bakgrundsjobb eller byta till ett skrivskyddat läge. Hård förnekelse är fortfarande lämplig för blockerade verktyg, saknade omfattningar, okända MCP-funktioner och farliga åtgärder.

Steg 6: Sammanfoga modell- och verktygstelemetri till en revisionspost

Agentfelsökning misslyckas när modellloggar finns på ett ställe och verktygsloggar finns någon annanstans. Granskningsposten ska koppla samman hela kedjan:

  • Hyresgäst, arbetsyta, användare, tjänstkonto och gatewaynyckel.
  • Agent-ID, agentversion, promptmallversion och modell-ID.
  • Verktygsnamn, registerversion, server-URL eller exekveringsmiljö och schemahash.
  • Verktygsinmatningshash eller redigerad indata, aldrig råkänsliga nyttolaster som standard.
  • Godkännandestatus, godkännares identitet, godkännandetidsstämpel och godkänd argumenthash.
  • Latens, återförsök, leverantörsfel, verktygsfel, tokenkostnad, verktygskostnad och slutresultat.
  • Återställningsreferens, om åtgärden ändrat tillstånd.

OpenAIs Agents SDK-spårningsdokumentation inkluderar spår för LLM-generationer, verktygsanrop, handoffs, skyddsräcken och anpassade händelser, vilket stöder en bredare observerbarhetsprincip: agentspårningar bör inkludera verktygsaktivitet, inte bara tokenanvändning och latens. En enda SDK-pipeline kanske inte täcker alla värdbaserade verktyg, lokal exekveringsväg eller intern API. Granskning på gatewaynivå hjälper till att normalisera poster mellan leverantörer och ramverk.

Sekretess är viktigt. Detaljerade loggar förbättrar felsökning och granskning av efterlevnad, men obearbetad prompt och bibehållande av verktygsnyttolast kan skapa ett nytt säkerhetsansvar. Redigera eller hasha indata som innehåller hemligheter, autentiseringsuppgifter, betalningsdata, personuppgifter eller patentskyddade dokument. Lagra råa nyttolaster endast under explicit lagringspolicy, åtkomstkontroller och borttagningsregler.

Steg 7: Behandla MCP-servrar och tredjepartsverktyg som försörjningskedjan beroenden

MCP-servrar och tredjepartsverktyg bör gå igenom samma granskningsprocess som bibliotek, webhooks och infrastrukturberoenden. Rekommenderade kontroller inkluderar:

  • Upprätthåll en godkännandelista över godkända MCP-servrar och verktygsursprung.
  • Fäst versioner där det är möjligt och spela in schemahashar.
  • Kräv en ägare för varje server och högriskverktyg.
  • Granska verktygsnamn, beskrivningar, scheman och behörighetsanspråk innan du aktiverar dem.
  • Inaktivera nyligen tillagda verktyg tills de har granskats.
  • Verifiera nödvändiga omfattningar per rutt eller kapacitet.
  • Separera användaruppgifterna och undvik delade tokens mellan kunder.
  • Kör opålitliga eller högriskverktyg i sandlådor med nätverks- och filsystembegränsningar.

Det faktum att ett verktyg exponeras genom ett standardprotokoll gör det inte säkert. Styrningsskiktet behöver fortfarande minst privilegier, explicit auktorisering, versionskontroll och granskningsbarhet.

Checklista för implementering

Policydesign

  • Definiera rollmallar för vanliga agentanvändare och tjänstekonton.
  • Skapa separata omfång för modellanrop och verktygsanrop.
  • Klassificera verktyg efter datakänslighet, reversibilitet, extern påverkan, ekonomisk påverkan och behörighetsnivå.
  • Ange deny-by-default-beteende för okända verktyg och saknade omfattningar.
  • Definiera godkännanderegler endast för högriskåtgärder.

Gatewaytillämpning

  • Kräv att varje agent anropar verktyg via gatewayen eller en signerad policyomslag.
  • Kontrollera hyresgäst, användare, nyckel, agent, modell, verktyg, omfattning, budget och godkännandestatus innan exekvering.
  • Tvinga fram maximalt verktygssamtalsdjup och ackumulerad körkostnad.
  • Spela in verktygets registerversion och schemahash för varje samtal.
  • Feil stängd när policymotorn inte kan fatta ett beslut.

Revision och drift

  • Gå med modellanrop och verktygsanrop under ett spårnings- eller agentkörnings-ID.
  • Redigera eller hasha känsliga verktygsinmatningar som standard.
  • Behåll godkännandebevis med den slutliga exekveringsprotokollet.
  • Exponera kostnads- och hastighetsgränsanalyser per verktyg för administratörer.
  • Ägare av dokumentåterställning för verktyg som muterar tillstånd.

Avvägningar att förvänta sig

Konsekvens kontra integreringsansträngning. Styrning på gatewaynivå ger konsekvent tillämpning över modeller, SDK:er och team. Kostnaden är adoption: utvecklare måste dirigera verktygsexekveringen genom den godkända sökvägen istället för att anropa verktyg direkt från programkoden.

Minst privilegium kontra policykomplexitet. Finkorniga omfattningar minskar sprängradien, men de kräver mallar, namnkonventioner och regelbunden rensning. Utan mallar kan team överge tillstånd att röra sig snabbare.

Godkännande kontra autonomi. Mänskligt godkännande minskar risken för oåterkalleliga handlingar, men det ökar latens. Använd godkännanden för högriskverktyg, inte varje uppslagning eller sökning.

Hörbarhet kontra dataexponering. Rikliga loggar hjälper till med incidentrespons och felsökning. Rå nyttolastloggning kan avslöja hemligheter och personlig data. Redaktion, hash, konfigurerbar kvarhållning och åtkomstgranskning är inte valfria detaljer.

Hårda gränser kontra slutförande av uppgift. Kostnadsgränser per verktyg förhindrar skenande agenter. De kan också avbryta legitimt långvarigt arbete. Ange fortsättningsvägar som godkännande för att fortsätta, bakgrundsköer eller sammanfattade delresultat.

Förutsägelser: vart mönstret är på väg

Prognos: agentstyrning kommer att bli mer identitetscentrerad. Lag kommer att fråga mer sällan "vilken modell använde den här?" och oftare "vilken autentiserad person eller tjänst tillät denna verktygsåtgärd?"

Prognos: verktygsregister kommer att bli lika normala som modellregister. När MCP-servrar, interna API:er och värdbaserade verktyg förökar sig kommer produktionsteam att behöva en inventering av tillåtna kapaciteter, ägare, scheman och risknivåer.

Prognos: kostnadsstyrning kommer att gå från token-only-rapportering till åtgärdsnivårapportering. Den dyraste delen av en agentkörning kan vara hämtning, webbläsarautomatisering, kodexekvering eller tredje parts API:er snarare än själva modellanropet.

Aktiv slutsats

Börja med en regel: en modellnyckel är inte en verktygsnyckel. Bygg sedan utåt. Skapa ett register över godkända verktyg, tilldela ägare och risknivåer, kräv explicita omfattningar, lägg till godkännanden endast där åtgärden har en meningsfull sprängradie, upprätthåll budgetar per verktyg och slå samman modell- och verktygshändelser i ett granskningsspår.

Målet är inte att göra agenter maktlösa. Målet är att göra deras makt läsbar, avgränsad, reversibel där det är möjligt och ansvarsfull. Det är den praktiska grunden för styrning av team-API när agenter går från att svara på frågor till att vidta åtgärder.

Relaterad läsning

FAQ

Vanliga frågor

Bör varje agentverktygsanrop kräva mänskligt godkännande?
Nej. Godkännande bör reserveras för högriskåtgärder som extern kommunikation, ekonomiska förändringar, oåterkalleliga skrivningar, privilegierad administration och bred dataexport. Läsbara verktyg med låg risk är vanligtvis bättre kontrollerade med omfattningar, hastighetsgränser och granskningsloggar.
Räcker MCP-auktorisering i sig för produktionsstyrning?
Nej. MCP-auktoriseringskoncept är viktiga, men produktionsinstallationer behöver fortfarande godkännandelistor, klientisolering, schemagranskning, versionskontroll, omfångade autentiseringsuppgifter, budgetar per verktyg och revisionsspår.
Vad är skillnaden mellan modellomfattningar och verktygskopor?
Med modellomfång kan en nyckel eller användare ringa upp modeller, till exempel chatt eller inbäddningar. Verktygsomfång tillåter specifika åtgärder, som att söka i dokument, skapa biljetter, skicka e-post, exekvera kod eller ändra faktureringsinställningar. De bör beviljas separat.
Vad ska loggas för styrning av agentverktyg?
Logga klienten, användaren, nyckeln, agentversionen, modellen, promptmallversionen, verktygs-ID, registerversion, godkännandestatus, redigerade eller hashade indata, latens, kostnad, fel och slutligt resultat. Undvik att lagra råkänsliga nyttolaster som standard.