allow, каждый deny,
каждое удержанное подтверждение, каждое «would-have» из shadow-режима
приземляется здесь, фильтруемое и коррелированное обратно с прогоном агента,
который его породил.
Лента событий читается на уровне Developer+. Каждая строка резервирует
ограниченное поле
args_summary для снимка аргументов вызова инструмента, так
что эта поверхность стоит выше тех, что читаются на уровне Member (настройки,
политики, обнаруженные инструменты,
лента аномалий). Всё это настраивается из консоли —
это маршруты с аутентификацией сессии, а не ретрансляционные вызовы.1. Что приземляется в ленте событий
Записывается каждое вычисление, которое выполняет движок, — не только блокировки.allow и audit оставляют строку ровно так же, как deny, так
что лента — это полный след, а не журнал исключений.
Вердикт в строке — тот, который агент на самом деле увидел:
| Вердикт | Означает |
|---|---|
allow / audit | Пропущено; audit помечает это как то, за чем вы хотели наблюдать. |
deny | Заблокировано — firewall_blocked (HTTP 400) на inbound, ошибка инструмента на mcp. |
sanitize | Переслано с отредактированными совпавшими подстроками из аргументов вызова. |
pending_approval | Удержано для человека; строка фиксирует, что вызов был поставлен на проверку. |
observe | Ни одна политика не совпала — пробел в покрытии observe-режима. |
audit, а причина получает префикс [shadow] would …, так что
лента показывает вам ровно то, что политика заблокировала бы, прежде чем вы
переключите её в боевой режим.
2. Что записывает каждое событие
Отдельное событие — это денормализованный снимок, достаточный, чтобы реконструировать решение, не присоединяясь обратно ни к чему:Решение
Решение
verdict, surface (inbound / response / mcp / egress),
tool_name и человекочитаемая reason («destructive shell command»,
«egress to 169.254.169.254 denied»). Когда у совпавшего правила была
метка, policy_name и rule_label называют точное правило, которое
сработало, — так что строка указывает прямо на написанную вами строку.Ключи корреляции
Ключи корреляции
request_id присоединяет событие к логу запроса; conversation_id
группирует многоходовую сессию; agent_run_id (с step_id /
parent_step_id) привязывает его к одному полному прогону агента и
LLM-вызову, который запросил инструмент. Именно это делает ленту
трассировкой, а не плоским списком — см.
§4.Происхождение
Происхождение
token_name, model_name и IP вызывающего ip — ключ, модель и
источник за вызовом. skill_name называет владеющий
навык, когда вызов можно было ему
приписать, а quarantine флагирует удержание по карантину навыка.Аргументы и egress
Аргументы и egress
args_summary — это поле ограниченного снимка аргументов вызова
инструмента (причина, по которой эта поверхность требует Developer+). В
событии egress поле egress_host записывает исходящее назначение,
которое было оценено.3. Один конкретный пример
Ваш агент выдал вызовshell.exec с rm -rf /data, правило deny его
поймало, и вы хотите увидеть именно это решение. Отфильтруйте ленту по вердикту
и инструменту:
$ORCA_CONSOLE_TOKEN — это ваш сессионный / access-токен, а не
ретрансляционный ключ sk-orca-…. Маршруты /api/workspace/firewall/*
аутентифицируются консолью и ограничены ролью; только трафик /v1/*
использует ретрансляционный ключ.4. Коррелируйте по прогону и сессии
Причина, по которой каждое событие несётagent_run_id и conversation_id, —
чтобы вы перестали смотреть на вызовы изолированно и начали спрашивать что этот
агент сделал за весь свой прогон:
| Фильтр | На какой вопрос отвечает |
|---|---|
run_id=<run> | Каждый вердикт в одном прогоне агента — полный след действий. |
session_id=<conv> | Каждый вердикт по всему многоходовому диалогу. |
verdict=deny,pending_approval | Представление «что было остановлено или удержано» в одном запросе. |
surface=egress | Только решения по исходящим назначениям — линза эксфильтрации. |
since / until (unix-секунды) и
limit / skip для пагинации. Для свёрнутого представления — одна строка
на прогон или сессию с разбивкой по вердиктам, различимыми инструментами и
моделями и первым/последним появлением — консоль читает
GET /api/workspace/firewall/events/aggregate?group_by=run (или
group_by=session), а дерево трассировки агента читает /trace/by-run. Оба
требуют Developer+, как и сырая лента.
5. Хранение и стирание
События firewall несут собственный горизонт хранения — по умолчанию 30 дней, ограниченный сервером жёстким максимумом в 365 дней. Каждое событие пишется со сроком истечения и автоматически устаревает по TTL-индексу; ничто в ленте не живёт дольше вашей настройки хранения. Запрос на право быть забытым каскадируется сюда тоже: удаление пользователя запускает 30-дневный льготный период, после которого его PII вычищается, а его события firewall удаляются вместе с логами запросов и совпадениями guardrails той же области.Куда двигаться дальше
Вердикты
Что каждый вердикт в ленте на самом деле сделал с вызовом.
Shadow-режим
Читайте ленту в режиме «would-have» до того, как начнёте применять.
Стадии и поверхности
Четыре поверхности, которые называет поле
surface.Справочник Firewall
Полный справочник по политикам, правилам и API.
