cap_cost, e perché audit è il default da cui parti.
Per dove i verdetti vivono nella grammatica delle regole vedi
Regole del Firewall; per scegliere un verdetto di
default durante la creazione di una policy vedi Crea e collega.
1. I sei verdetti delle regole
Una regola produce esattamente uno tra sei verdetti. Scrivili nell’editor delle regole della console; il motore percorre le regole in ordine di priorità e vince il primo match.allow — lascia passare la chiamata, loggata
allow — lascia passare la chiamata, loggata
allow, così
mantieni una traccia di audit senza bloccare nulla. Usalo come un permesso
esplicito in una policy default-deny.audit — consenti, ma registrala per revisione
audit — consenti, ma registrala per revisione
allow, ma la chiamata è segnalata come qualcosa
che volevi osservare. È anche il valore su cui atterra il verdetto di default
di base — osserva tutto, blocca nulla, finché non sei pronto ad applicare.deny — blocca la chiamata
deny — blocca la chiamata
inbound il relay
restituisce HTTP 400 con codice di errore firewall_blocked, nominando il
tool e la motivazione; sulla superficie mcp torna come un errore di tool
così il modello può reagire. Vedi
com’è fatto un block.sanitize — redige gli argomenti, poi inoltra
sanitize — redige gli argomenti, poi inoltra
command o body) e
inoltra la chiamata ripulita. Redige solo gli argomenti — mai il contenuto che un
tool restituisce. Sulla superficie inbound non ci sono ancora argomenti al
momento della chiamata, quindi sanitize escala a un deny. Vedi
sanitizza le risposte.pending_approval — metti in attesa per un umano
pending_approval — metti in attesa per un umano
firewall_approval_pending e un id di approvazione; la
chiamata non raggiunge il tool. Un revisore la risolve nella console o
tramite webhook callback, e l’agent ri-invia con un header di approvazione
monouso. Vedi approvazioni.cap_cost — nega una volta superato un tetto di spesa
cap_cost — nega una volta superato un tetto di spesa
allow o deny al momento della valutazione. Vedi §3
e tetto di costo.deny, sanitize, pending_approval, e un cap_cost che si è risolto in deny)
viene declassato a audit e la motivazione è prefissata [shadow] would …. Fai il rollout di una policy applicativa in questo modo e osserva il feed
degli eventi prima di renderla live.2. Il verdetto di default
Il verdetto di default (default_verdict sulla policy) è ciò che la policy fa
quando nessuna regola corrisponde a una chiamata a tool. È il pavimento della tua
postura, e a differenza di un verdetto di regola accetta solo tre valori:
default_verdict | Quando nessuna regola corrisponde… |
|---|---|
audit (default) | Consenti la chiamata, ma registrala. Il punto di partenza sicuro. |
allow | Consenti e logga, nessun record di revisione. |
deny | Blocca tutto ciò che una regola non permette esplicitamente — una postura default-deny. |
audit: osserva ogni chiamata a tool e blocca
nulla finché non aggiungi regole applicative. I tre verdetti solo-regola
— sanitize, pending_approval e cap_cost — non possono essere un default;
un verdetto di default è un fallback su tutto, e quei verdetti hanno senso solo se
hanno scope su un match specifico.
3. cap_cost si risolve in allow o deny
cap_cost è l’unico verdetto che non è ciò che compare nei tuoi eventi. Scrivi
una regola con un tetto cap_cost_cents, ma al momento della valutazione il motore lo
risolve in un concreto allow o deny prima che l’evento sia registrato — quindi
il feed degli eventi non porta mai un verdetto
cap_cost letterale, solo l’allow/deny che l’agent ha effettivamente visto.
Il tetto è per esecuzione dell’agent: il motore confronta la spesa accumulata
dell’esecuzione con il tuo tetto.
- Sotto il tetto → si risolve in
allow. (Internamente questo è trattato come non corrispondente, quindi la valutazione continua alla regola successiva anziché far vincerecap_costcome primo-match concedendo un grant.) - Sopra il tetto → si risolve in
deny, con una motivazione che nomina il totale dell’esecuzione rispetto al tetto. Questo è l’esito terminale, da interruttore di sicurezza.
4. Come viene scelto un verdetto
Per ogni chiamata a tool, la risoluzione è la stessa indipendentemente da quale verdetto vince:1. Risolvi la policy
1. Risolvi la policy
firewall_policy_id), o il default del workspace — vedi
risoluzione.2. Percorri le regole, vince il primo match
2. Percorri le regole, vince il primo match
priority ASC. La prima regola la cui superficie, glob
sul tool, clausole opzionali sugli argomenti e scope opzionale di egress
tutti corrispondono produce il verdetto.3. Nessun match → il verdetto di default
3. Nessun match → il verdetto di default
default_verdict della policy —
audit a meno che tu non l’abbia cambiato.4. L'applicazione della skill si sovrappone
4. L'applicazione della skill si sovrappone
block
forza un deny e una skill in modalità quarantine escala qualsiasi cosa al di
sotto di deny a pending_approval.5. Comportamento di costo e retry di un deny
Un verdetto del firewall sulla superficieinbound scatta prima della chiamata al
modello upstream, quindi un deny lì non costa token del modello. L’errore è marcato
skip-retry — rieseguire la stessa chiamata bloccata si limiterebbe a bloccarla di
nuovo, quindi il gateway dice al client di non riprovarla.
Questo è distinto da un block dei guardrail,
che filtra il testo di prompt/risposta (PII, segreti) anziché le azioni dei tool,
e restituisce il proprio errore guardrail_blocked. Una richiesta può attraversare
entrambi i piani.
