inbound не имеет
назначения для проверки; клауза аргумента на inbound пока не имеет аргументов
времени вызова.
Эта страница — сфокусированное руководство по четырём стадиям agent firewall: что
наблюдает каждая поверхность, когда правило должно её нацеливать и один конкретный
способ, которым одно и то же намерение выражается на разных стадиях. Полный словарь
правил см. в Правилах Firewall; модель политик
вокруг них — в Firewall.
1. Четыре стадии с первого взгляда
Каждое вычисление штампуется ровно одной стадией. Правило без стадии ("")
применяется ко всем из них; правило, привязанное к одной стадии, срабатывает
только там.
| Стадия | Что видит поверхность |
|---|---|
inbound | Инструменты, которые агент рекламирует в запросе |
response | tool_calls, которые модель выдаёт в своём ответе |
mcp | tools/call, диспетчеризованный через MCP-шлюз |
egress | Исходящий host / IP / CIDR, к которому обращается инструмент |
stage при написании через
API.
Стадия управляет тем, какие данные в области видимости, а не тем, насколько
строг вердикт.
deny — это deny на любой стадии; меняется лишь то, есть ли у
правила аргументы, имя инструмента или назначение, которые ему нужно сопоставить.2. inbound — инструменты, которые агент рекламирует
Самая ранняя поверхность. Прежде чем модель вообще запустится, ваш агент
отправляет список определений инструментов, которые он готов позволить модели
вызвать. Стадия inbound видит этот рекламируемый набор инструментов и может
заблокировать опасный инструмент до того, как модель сможет его выбрать.
На этой стадии нет аргументов времени вызова — модель ещё не решила, как
что-либо вызывать, — поэтому правила inbound сопоставляют по имени инструмента
(и опционально его владеющему навыку), а не по args_match_json.
Отклонённый вызов здесь возвращает HTTP 400 с кодом firewall_blocked,
названный по инструменту и причине, и помеченный skip-retry.
3. response — вызовы инструментов, которые выдаёт модель
Как только модель отвечает, она может выдать один или несколько tool_calls —
конкретные вызовы с реальными аргументами. Стадия response видит их, поэтому
именно здесь место правилам уровня аргументов: не «блокировать shell.exec», а
«блокировать shell.exec, только когда команда — rm -rf».
sanitize здесь работает —
он редактирует совпавшие подстроки из аргументов вызова и пересылает очищенный
вызов. (Sanitize редактирует только аргументы вызова инструмента; он никогда
не касается содержимого, которое инструмент возвращает.)
4. mcp — вызовы, диспетчеризованные через шлюз
Когда агент достигает инструмента через
MCP-шлюз OrcaRouter, каждый tools/call
вычисляется на стадии mcp до того, как он будет диспетчеризован
зарегистрированному серверу. Это поверхность, которая управляет трафиком Model
Context Protocol — тот же словарь глоб / аргумент / вердикт, что и у response,
применённый к MCP-диспетчу.
Блокировка здесь проявляется как ошибка инструмента (firewall deny: <reason>), а не сбой транспорта, так что модель видит отказ и может среагировать
— выбрать другой инструмент, спросить пользователя или остановиться.
5. egress — исходящее назначение, к которому обращается инструмент
Последняя поверхность. Когда инструмент сообщает исходящее сетевое назначение,
стадия egress сопоставляет по нему — поверхность SSRF и эксфильтрации данных.
Egress-правила не сопоставляют по одному лишь паттерну имени инструмента; они
сопоставляют по списку host / IP / CIDR:
169.254.169.254) и диапазоны RFC-1918 — это канонические вещи, которые стоит
запретить. См. Правила Firewall §6
про полярность allow/deny.
Ни один пресет не поставляет CIDR-правила. SSRF-позиция уровня автономии
tight
блокирует имена инструментов в форме fetch (например, http_fetch,
web_search, fetch_url); egress-deny на основе назначения — это то, что вы
пишете для хостов и диапазонов, которых ваши агенты никогда не должны достигать.6. Выбор правильной стадии
У одной и той же цели безопасности часто есть лучшая стадия. Сопоставьте намерение с поверхностью, которая реально несёт нужные вам данные:Не дать инструменту вообще быть предложенным → inbound
Не дать инструменту вообще быть предложенным → inbound
Если модель никогда не должна даже видеть инструмент, заблокируйте его на
inbound. Блокировка приземляется до вызова модели, поэтому она не стоит
токенов модели.Разрешить инструмент, но ограничить его аргументы → response (или mcp)
Разрешить инструмент, но ограничить его аргументы → response (или mcp)
Клаузам аргументов нужны выбранные моделью аргументы, которые существуют
только на
response и mcp. Блокируйте по опасному аргументу или
sanitize, чтобы убрать секрет или значение PII, которое агент поместил в
аргумент.Управлять трафиком Model Context Protocol → mcp
Управлять трафиком Model Context Protocol → mcp
Вызовы, маршрутизированные через MCP-шлюз, вычисляются на
mcp до диспетча
— узловая точка для инструментов каждого зарегистрированного сервера.Заблокировать, куда агент может подключиться → egress
Заблокировать, куда агент может подключиться → egress
Правила на основе назначения — заблокировать IP cloud-metadata, запретить
CIDR, добавить ваши одобренные хосты в список разрешённых — имеют смысл
только на
egress.Применить к каждой поверхности → оставьте стадию пустой
Применить к каждой поверхности → оставьте стадию пустой
Правило без стадии работает на всех четырёх. Используйте его для общего
правила в стиле
default_verdict или инструмента, который вы блокируете
везде, где он появляется.7. Стадии и shadow-режим
Флагshadow_mode политики независим от стадии. Включите его, и каждый
применяющий вердикт — на любой стадии — понижается до audit, а причина
получает префикс [shadow] would …, так что вы можете подтвердить, что правило
срабатывает на правильной поверхности, прежде чем оно изменит живой трафик. См.
Shadow-режим и
Режимы применения.
8. Где стадии вписываются в большую картину
Четыре стадии — это где применения; остальная часть модели — это что и кто.Вердикты
Что каждая стадия может сделать после совпадения — allow, audit, deny,
sanitize, удержать для подтверждения, ограничить стоимость.
Списки разрешённых инструментов
Используйте
inbound, чтобы ограничить набор инструментов, который
рекламирует агент.Проверка аргументов
Пишите клаузы аргументов
response / mcp, которые гейтят инструмент по
тому, как он вызван.Контроль egress
Блокируйте исходящие назначения на поверхности
egress — граница
эксфильтрации.