shell.exec,
interroga un database, recupera un URL, dispatcha un tool attraverso un MCP server.
Ognuna di queste è un’azione con conseguenze reali che i guardrails
a livello di prompt non riescono a vedere. L’agent firewall è il piano a
livello di azione che le governa: una policy nominata, con scope a livello di
workspace, che il gateway valuta su ogni chiamata a tool, prima che raggiunga il
tool.
Questa pagina è l’hub della sezione Firewall — il modello di policy, i
verdetti, le superfici e come una policy si collega a una chiave. Ogni pagina
spoke approfondisce, e il riferimento completo del motore vive in
Firewall e Regole del Firewall.
1. Cosa fa l’agent firewall
Crei una policy una volta nella console del tuo workspace, le colleghi una chiave API (o ne imposti una come default del workspace), e da quel momento ogni chiamata a tool che quella chiave emette viene controllata rispetto alla policy nel gateway. Nessun redeploy, nessuna modifica al codice dell’agent — il tuo agent continua a emettere chiamate a tool esattamente come prima, e modificare la policy ha effetto sulla chiamata successiva per ogni chiave ad essa collegata. Una policy è un elenco ordinato di regole. Ogni regola decide a quali chiamate a tool si applica e cosa farne. Il motore percorre le regole in ordine di priorità, vince il primo match, e ricade sul verdetto di default della policy se nulla corrisponde.La detection avviene nel gateway, al primo uso — non al momento dell’installazione. Un
tool, un MCP server o una skill che un agent auto-installa viene intercettato la prima
volta che la sua chiamata attraversa il gateway. È l’unico punto di strozzatura che
vede ogni provider, ogni agent e ogni chiamata a tool indipendentemente da come la
capability è arrivata lì.
2. Un esempio concreto
Supponiamo che tu voglia bloccare i comandi shell distruttivi ma lasciar passare tutto il resto sotto audit. Nella console crei una policy condefault_verdict = audit e una regola:
args_match_json è una stringa codificata in JSON (il gateway la valida
rispetto allo schema delle clausole al salvataggio): path è un JSONPath dentro gli
argomenti della chiamata, op è uno tra eq, contains, regex, in, cidr_match,
gt, lt.
Collega una chiave alla policy (imposta firewall_policy_id sulla chiave). Ora,
quando un agent emette shell.exec con command: "rm -rf /", il gateway restituisce
HTTP 400 con codice di errore firewall_blocked e una motivazione che nomina il
tool — e la chiamata non raggiunge mai la shell. Ogni altra chiamata a tool viene
consentita e registrata per revisione.
3. Policy, regole e risoluzione
Una policy ha scope a livello di workspace ed è nominata, conenabled,
is_default, un default_verdict (allow / audit / deny, default audit) e un
flag shadow_mode. Una regola è un controllo al suo interno — vedi
Crea una policy e
Schema delle regole.
Per ogni chiamata a tool il gateway risolve la policy attiva in quest’ordine:
- Collegamento della chiave — il
firewall_policy_iddella chiave chiamante, quando quella policy esiste ed è abilitata. - Default del workspace — altrimenti la policy
is_defaultabilitata.
firewall_observe_mode del workspace: con l’observe mode attivo, la chiamata viene
consentita ma loggata come un gap di copertura (compare in Discovered Tools);
con esso disattivato, la chiamata viene consentita silenziosamente.
4. Verdetti
Una regola — o il default — produce uno tra:| Verdetto | Cosa fa |
|---|---|
allow | Lascia passare, loggato. |
audit | Consente + registra per revisione. Il default abituale. |
deny | Blocca. HTTP 400 firewall_blocked su inbound; errore di tool su MCP. |
sanitize | Redige le sottostringhe corrispondenti dagli argomenti del tool e inoltra. |
pending_approval | Mette in attesa per un umano; HTTP 400 firewall_approval_pending. |
cap_cost | Nega una volta che la spesa dell’esecuzione supera un tetto per regola. |
sanitize redige solo gli argomenti della chiamata — mai il contenuto
che un tool restituisce. Sulla superficie inbound, dove non ci sono ancora argomenti
al momento della chiamata, sanitize escala a un block. Vedi
Verdetti e
Sanitizza le risposte.
5. Le quattro superfici di applicazione
Ogni chiamata a tool è valutata rispetto a esattamente una superficie — fissa una regola a una sola con il campostage, o lascialo vuoto per applicarla a tutte.
inbound
I tool che un agent pubblicizza al modello sulla richiesta. Blocca un tool
pericoloso prima ancora che il modello possa sceglierlo.
response
I
tool_calls che il modello emette nella sua risposta.mcp
Un
tools/call dispatchato attraverso il gateway MCP. Vedi
MCP server.egress
Un host / IP / CIDR in uscita che un tool raggiunge — la superficie di SSRF
ed esfiltrazione di dati.
6. Matching
Le regole esprimono quali chiamate a tool intercettano con un vocabolario piccolo e deterministico, sicuro sul percorso caldo:Glob su nome di tool e skill
Glob su nome di tool e skill
Un glob case-sensitive sul nome del tool (
shell.*, *.delete),
opzionalmente in AND con un glob sulla skill proprietaria. Vedi
Sintassi glob e
Allow-listing dei tool.Clausole sugli argomenti
Clausole sugli argomenti
Predicati JSONPath sugli argomenti della chiamata con gli operatori
eq,
contains, regex, in, cidr_match, gt, lt — la differenza
tra “blocca shell.exec” e “bloccalo solo quando il comando è
rm -rf.” Le clausole fanno fail closed (la regola, non la richiesta). Vedi
Valida gli argomenti.Elenchi egress
Elenchi egress
Elenchi di allow e deny per host / IP / CIDR sulla superficie
egress. Puoi
scrivere la tua regola di deny per i range cloud-metadata o RFC-1918. Vedi
Controllo dell’egress.Sequenze e tetti di costo
Sequenze e tetti di costo
Una regola
sequence corrisponde a una catena ordinata di chiamate in una
finestra (applicata reattivamente); una regola cap_cost nega una volta che la
spesa accumulata di un’esecuzione dell’agent supera un tetto in centesimi. Vedi
Regole di sequenza e
Tetto di costo.7. Approvazione umana, autonomia e anomalie
- Human-in-the-loop. Un verdetto
pending_approvalmette in attesa la chiamata e restituisce il suo id di approvazione. Un revisore la risolve nella console (Developer+) o tramite un webhook callback firmato con HMAC; l’agent fa polling e ri-invia con un header monousoX-OrcaRouter-Firewall-Approval. Vedi Approvazioni e Webhook di approvazione. - Livelli di autonomia. Un singolo interruttore imposta tutta la tua postura:
tight(default-deny + deny della shell distruttiva + deny dei tool a forma di fetch (http_fetch/web_search/fetch_url/request, il vettore SSRF) + PII Shield + Secrets Blocker applicati),balanced(audit di default, deny della shell distruttiva, PII Shield solo in audit), opermissive(solo observe). Ognuno scrive righe di policy e di guardrail reali e modificabili, con undo a un clic dallo snapshot di audit. - Rilevamento delle anomalie. Oltre alle regole statiche, il firewall valuta l’uso
dei tool rispetto a una baseline ora-della-settimana appresa (14 giorni) e segnala
picchi di rate/costo,
retry_loopenovel_pathsu un feed leggibile dai Member che puoi mettere in snooze per un massimo di 7 giorni.
8. Dove si colloca il firewall
Il firewall è il pari a livello di azione di due piani adiacenti:| Piano | Governa | Quando ricorrervi |
|---|---|---|
| Guardrails | Testo di prompt e risposta | PII, segreti, jailbreak, intento di injection |
| Agent firewall | Azioni dei tool | Quali tool, chiamate MCP, host e costo |
| Compliance | Evidenze e framework | Prontezza SOC 2 / HIPAA / EU AI Act |
9. Collegamento e connessione
Una policy si lega a una chiave tramitefirewall_policy_id (configurato nella
console; il binding vive sulla chiave nel gateway). Due modi in cui una chiamata a tool
raggiunge il motore, entrambi che richiedono una chiave con scope firewall-gateway
(is_firewall_gateway = true) — una normale chiave di relay riceve 403 su queste
rotte:
- Gateway MCP — punta il tuo client MCP sull’endpoint unificato
ANY /api/v1/firewall/mcp; ognitools/callviene valutato inline. Vedi MCP server. - Hook di evaluate — chiama
POST /api/v1/firewall/evaluate(o/evaluate_planper un piano multi-step) dal tuo loop di agent prima di dispatchare, e agisci sul verdetto.
/api/workspace/firewall/*. Le letture di policy, impostazioni, discovered
tools, il simulatore di autonomia in sola lettura e il feed delle anomalie sono aperti
a ogni membro del workspace; la sandbox di dry-run Test, il log Events / Runs e
tutte le scritture richiedono Developer+. Vedi
Chiavi del gateway e
Testa le regole.
10. Minacce affrontate da questo piano
Chiamate a tool pericolose
Nega shell distruttiva, drop di DB e verbi rischiosi per glob + args.
Esfiltrazione di dati
Elenchi egress e regole di sequenza read-then-export.
MCP tool poisoning
Valutazione per chiamata sulla superficie
mcp prima del dispatch.Agenzia eccessiva
Approvazioni, tetti di costo e postura default-deny.
Passi successivi
Crea una policy
Crea la tua prima policy e regola.
Verdetti
Cosa fa ogni verdetto sul filo.
Log degli eventi
Leggi cosa ha deciso il firewall e perché.
