allow, ogni deny,
ogni approvazione messa in attesa, ogni “avrebbe fatto” della shadow mode atterra
qui, filtrabile e correlato all’esecuzione dell’agent che l’ha prodotto.
Il feed degli eventi è Developer+ in lettura. Ogni riga riserva un campo
args_summary limitato per uno snapshot degli argomenti della chiamata a tool,
quindi la superficie sta sopra quelle leggibili dai Member (impostazioni, policy,
discovered tools, il
feed delle anomalie). Configura tutto questo dalla console —
sono rotte autenticate con la sessione, non chiamate di relay.1. Cosa atterra nel feed degli eventi
Ogni valutazione che il motore esegue è registrata — non solo i block. Unallow e
un audit lasciano una riga esattamente come fa un deny, così il feed è una
traccia completa, non un log di eccezioni.
Il verdetto su una riga è quello che l’agent ha effettivamente visto:
| Verdetto | Significa |
|---|---|
allow / audit | Lasciato passare; audit lo segnala come qualcosa che volevi osservare. |
deny | Bloccato — firewall_blocked (HTTP 400) inbound, errore di tool su mcp. |
sanitize | Inoltrato con le sottostringhe corrispondenti redatte dagli argomenti della chiamata. |
pending_approval | Messo in attesa per un umano; la riga marca che la chiamata è stata governata. |
observe | Nessuna policy ha corrisposto — un gap di copertura in observe-mode. |
audit e la motivazione è prefissata [shadow] would …, così il feed
ti mostra esattamente cosa una policy avrebbe bloccato prima che tu la renda live.
2. Cosa registra ogni evento
Un singolo evento è uno snapshot denormalizzato — abbastanza per ricostruire la decisione senza fare join con nient’altro:La decisione
La decisione
verdict, surface (inbound / response / mcp / egress),
tool_name, e una reason umana (“destructive shell command”,
“egress to 169.254.169.254 denied”). Quando la regola corrispondente aveva
un’etichetta, policy_name e rule_label nominano la regola esatta che è
scattata — così la riga punta direttamente alla linea che hai scritto.Chiavi di correlazione
Chiavi di correlazione
request_id unisce l’evento al log delle richieste; conversation_id
raggruppa una sessione multi-turno; agent_run_id (con step_id /
parent_step_id) lo lega a un’intera esecuzione dell’agent e alla chiamata LLM
che ha richiesto il tool. Sono questi a fare del feed una trace, non un elenco
piatto — vedi §4.Provenienza
Provenienza
token_name, model_name e l’ip del chiamante — la chiave, il modello e
l’origine dietro la chiamata. skill_name nomina la
skill proprietaria quando la chiamata era
attribuibile a una, e quarantine segnala un hold da skill-quarantine.Argomenti ed egress
Argomenti ed egress
args_summary è il campo di snapshot limitato degli argomenti della chiamata a
tool (il motivo per cui questa superficie è Developer+). Su un evento egress,
egress_host registra la destinazione in uscita che è stata giudicata.3. Un esempio concreto
Il tuo agent ha emesso una chiamatashell.exec con rm -rf /data, una regola
deny l’ha catturata, e vuoi vedere quella sola decisione. Filtra il feed per
verdetto e tool:
$ORCA_CONSOLE_TOKEN è il tuo token di sessione / di accesso, non una chiave di
relay sk-orca-…. Le rotte /api/workspace/firewall/* sono autenticate con la
console e role-gated; solo il traffico /v1/* usa una chiave di relay.4. Correla per esecuzione e sessione
Il motivo per cui ogni evento portaagent_run_id e conversation_id è perché tu
possa smettere di guardare le chiamate in isolamento e iniziare a chiederti cosa ha
fatto questo agent nell’intera sua esecuzione:
| Filtro | Domanda a cui risponde |
|---|---|
run_id=<run> | Ogni verdetto in un’esecuzione dell’agent — l’intera traccia delle azioni. |
session_id=<conv> | Ogni verdetto attraverso una conversazione multi-turno. |
verdict=deny,pending_approval | La vista “cosa è stato fermato o messo in attesa” in una query. |
surface=egress | Solo le decisioni sulla destinazione in uscita — la lente di esfiltrazione. |
since / until (secondi unix) e
limit / skip per la paginazione. Per la vista aggregata — una riga per
esecuzione o sessione con una ripartizione per verdetto, tool e modelli distinti e
primo/ultimo visto — la console legge
GET /api/workspace/firewall/events/aggregate?group_by=run (o
group_by=session), e l’albero di trace dell’agent legge /trace/by-run. Entrambi
sono Developer+, come il feed grezzo.
5. Retention e cancellazione
Gli eventi del firewall portano il proprio orizzonte di retention — un default di 30 giorni, limitato dal server a un massimo netto di 365 giorni. Ogni evento è scritto con una scadenza e fatto invecchiare automaticamente da un indice TTL; nulla nel feed vive oltre la tua impostazione di retention. Una richiesta di diritto alla cancellazione si propaga anche qui: eliminare un utente avvia un periodo di grazia di 30 giorni, dopo il quale le sue PII vengono ripulite e i suoi eventi del firewall vengono eliminati insieme ai log delle richieste e ai match dei guardrail dello stesso scope.Dove andare dopo
Verdetti
Cosa ha effettivamente fatto alla chiamata ogni verdetto nel feed.
Shadow mode
Leggi il feed in modalità “avrebbe fatto” prima di applicare.
Stage e superfici
Le quattro superfici che il campo
surface nomina.Riferimento del firewall
Il riferimento completo di policy, regole e API.
