allow, każde deny,
każde wstrzymane zatwierdzenie, każde „byłoby” trybu cienia ląduje tutaj,
filtrowalne i skorelowane z uruchomieniem agenta, które je wyprodukowało.
Strumień zdarzeń jest Developer+ do odczytu. Każdy wiersz rezerwuje
ograniczone pole
args_summary na migawkę argumentów wywołania narzędzia,
więc powierzchnia siedzi ponad czytelnymi dla Membera
(ustawienia, polityki, wykryte narzędzia,
strumień anomalii). Konfiguruj to wszystko z konsoli —
to trasy uwierzytelniane sesją, nie wywołania relay.1. Co ląduje w strumieniu zdarzeń
Każda ewaluacja, którą silnik uruchamia, jest rejestrowana — nie tylko bloki.allow i audit zostawiają wiersz dokładnie tak, jak robi to deny, więc
strumień to kompletny ślad, nie log wyjątków.
Werdykt w wierszu to ten, który agent faktycznie zobaczył:
| Werdykt | Oznacza |
|---|---|
allow / audit | Przepuszczone; audit flaguje to jako coś, co chciałeś obserwować. |
deny | Zablokowane — firewall_blocked (HTTP 400) inbound, błąd narzędzia na mcp. |
sanitize | Przesłane z dopasowanymi podłańcuchami zredagowanymi z argumentów wywołania. |
pending_approval | Wstrzymane dla człowieka; wiersz oznacza, że wywołanie było bramkowane. |
observe | Żadna polityka nie dopasowała — luka w pokryciu trybu obserwacji. |
audit, a powód jest poprzedzony przedrostkiem
[shadow] would …, więc strumień pokazuje ci dokładnie, co polityka by
zablokowała, zanim przełączysz ją na żywo.
2. Co rejestruje każde zdarzenie
Pojedyncze zdarzenie to zdenormalizowana migawka — wystarczająca, by zrekonstruować decyzję bez łączenia z czymkolwiek:Decyzja
Decyzja
verdict, surface (inbound / response / mcp / egress),
tool_name oraz reason dla człowieka („destructive shell command”,
„egress to 169.254.169.254 denied”). Gdy dopasowująca reguła miała
etykietę, policy_name i rule_label nazywają dokładną regułę, która
odpaliła — więc wiersz wskazuje prosto z powrotem na linię, którą
napisałeś.Klucze korelacji
Klucze korelacji
request_id łączy zdarzenie z logiem żądań; conversation_id grupuje
sesję wielo-turową; agent_run_id (z step_id / parent_step_id) wiąże
je z jednym pełnym uruchomieniem agenta i wywołaniem LLM, które zażądało
narzędzia. To one czynią strumień trace’em, a nie płaską listą — zobacz
§4.Proweniencja
Proweniencja
token_name, model_name oraz ip wywołującego — klucz, model i
pochodzenie za wywołaniem. skill_name nazywa skill właściciela
(skill), gdy wywołanie było mu
przypisywalne, a quarantine flaguje wstrzymanie kwarantanny skilla.Argumenty i egress
Argumenty i egress
args_summary to ograniczone pole migawki argumentów wywołania narzędzia
(powód, dla którego ta powierzchnia jest Developer+). Na zdarzeniu
egress egress_host rejestruje wychodzący cel, który był osądzony.3. Jeden konkretny przykład
Twój agent wyemitował wywołanieshell.exec z rm -rf /data, reguła deny
je wychwyciła, a ty chcesz zobaczyć tę jedną decyzję. Filtruj strumień po
werdykcie i narzędziu:
$ORCA_CONSOLE_TOKEN to twój token sesji / dostępu, nie klucz relay
sk-orca-…. Trasy /api/workspace/firewall/* są uwierzytelniane konsolą i
bramkowane rolą; tylko ruch /v1/* używa klucza relay.4. Koreluj po uruchomieniu i sesji
Powód, dla którego każde zdarzenie niesieagent_run_id i conversation_id,
to byś mógł przestać patrzeć na wywołania w izolacji i zacząć pytać, co ten
agent zrobił przez całe swoje uruchomienie:
| Filtr | Pytanie, na które odpowiada |
|---|---|
run_id=<run> | Każdy werdykt w jednym uruchomieniu agenta — pełny ślad akcji. |
session_id=<conv> | Każdy werdykt w wielo-turowej konwersacji. |
verdict=deny,pending_approval | Widok „co zostało zatrzymane lub wstrzymane” w jednym zapytaniu. |
surface=egress | Tylko decyzje o wychodzącym celu — soczewka eksfiltracji. |
since / until (sekundy uniksowe) oraz
limit / skip do stronicowania. Dla zwiniętego widoku — jeden wiersz na
uruchomienie lub sesję z rozbiciem per werdykt, odrębnymi narzędziami i
modelami oraz pierwszym/ostatnim zaobserwowaniem — konsola odczytuje
GET /api/workspace/firewall/events/aggregate?group_by=run (lub
group_by=session), a drzewo trace agenta odczytuje /trace/by-run. Oba są
Developer+, tak samo jak surowy strumień.
5. Retencja i wymazanie
Zdarzenia firewalla niosą własny horyzont retencji — domyślnie 30 dni, zaciskany po stronie serwera do twardego maksimum 365 dni. Każde zdarzenie jest zapisywane z wygaśnięciem i postarzane automatycznie indeksem TTL; nic w strumieniu nie żyje poza twoim ustawieniem retencji. Żądanie prawa do wymazania kaskaduje też tutaj: usunięcie użytkownika rozpoczyna 30-dniowy okres karencji, po którym jego PII jest wyczyszczane, a jego zdarzenia firewalla są usuwane obok logów żądań i dopasowań guardrail tego samego zakresu.Dokąd dalej
Werdykty
Co każdy werdykt w strumieniu faktycznie zrobił z wywołaniem.
Tryb cienia
Odczytaj strumień w trybie „byłoby”, zanim wyegzekwujesz.
Etapy i powierzchnie
Cztery powierzchnie, które nazywa pole
surface.Referencja firewalla
Pełna referencja polityki, reguł i API.
