1. Почему шлюз является правильной точкой инспекции
Большинство средств безопасности живут в приложении: обёртки библиотек, хуки агентских фреймворков, SDK для каждого провайдера. У этих средств есть фатальный структурный недостаток — они ломаются, как только вы добавляете второго провайдера, меняете фреймворки или позволяете агенту самостоятельно установить новый навык. У шлюза нет этих швов. Каждый вызов вашего агента, независимо от модели, провайдера или способа появления возможности инструмента, проходит через единственную точку до того, как что-либо достигнет вышестоящего сервиса. Это единственный слой, где вы можете дать гарантию: если это произошло, шлюз это видел. OrcaRouter использует эту позицию для двух различных проходов применения:- Guardrails проверяют текст — промпт, который отправляет ваш агент, и
ответ, который возвращает модель. Блокировка guardrail возвращает HTTP 400
guardrail_blockedи не стоит квоты. - Firewall оценивает действия — инструменты, которые вызывает агент,
MCP-серверы, к которым он обращается, и сетевые адреса назначения, которые
он сообщает. Deny firewall возвращает HTTP 400
firewall_blockedна поверхности inbound или ошибку инструмента на поверхности MCP, чтобы модель видела отказ и могла рассуждать о нём.
https://api.orcarouter.ai/v1 ровно так же, как раньше.
2. Четыре поверхности применения
Firewall оценивает каждый вызов инструмента ровно по одной поверхности — точке в жизненном цикле вызова, где шлюз его видит.| Поверхность | Что видит шлюз |
|---|---|
inbound | Инструменты, которые ваш агент рекламирует модели в запросе — определения инструментов. Блокировка здесь предотвращает возможность модели когда-либо выбрать опасный инструмент. |
response | tool_calls, которые модель выпускает в своём ответе — выбранные моделью действия до их диспетча. |
mcp | tools/call, диспетчеризованный через MCP gateway Firewall или оцененный через SDK-хук — вызов в момент диспетча. |
egress | Исходящий сетевой адрес назначения (host / IP / CIDR), сообщённый инструментом — поверхность SSRF и эксфильтрации данных. |
input (промпт и сообщения запроса) и output
(текст ответа модели). Один запрос может пройти через все из них.
3. Детектирование при первом использовании
Детектирование происходит на шлюзе, при первом использовании — не во время
установки. Инструмент, MCP-сервер или навык, самостоятельно установленный
агентом, перехватывается при первом пересечении шлюза его вызовом. Это намеренно:
шлюз — единственная точка, которая видит каждого провайдера, каждого агента и
каждый вызов независимо от того, как появилась возможность. Ожидание детектирования
во время установки пропустило бы возможности, загружаемые во время выполнения.
4. Что шлюз не может видеть
Гарантия инспекции распространяется на вызовы, пересекающие шлюз. Она не распространяется на инструмент, который ваш агент запускает целиком внутри собственного процесса — тот, который читает локальный файл, вызывает функцию библиотеки или выполняет подпроцесс, никогда не отправляя сообщение шлюзу. Это честная граница, а не конструктивный недостаток. Цель дизайна — сделать шлюз аудируемым путём для вызовов, которые имеют значение — тех, которые имеют последствия в реальном мире:| Где выполняется | Шлюз видит? | Как закрыть пробел |
|---|---|---|
Вызов инструмента, опосредованный моделью (модель выпускает tool_calls) | Да — поверхность response | Действий не требуется; уже управляется. |
| Диспетч MCP через MCP gateway Firewall | Да — поверхность mcp | Действий не требуется; уже управляется. |
Ваш агент вызывает POST /api/v1/firewall/evaluate перед диспетчем | Да — оценивается inline | Уже управляется через хук evaluate. |
| Инструмент работает внутри процесса, без контакта со шлюзом | Нет | Маршрутизируйте диспетч MCP и инструменты, вызывающие сеть, через шлюз, а не напрямую из процесса агента. |
5. Ролевое ограничение доступа к данным инспекции
Доступ к поверхностям инспекции ограничен ролями в рамках вашего рабочего пространства:| Возможность | Минимальная роль |
|---|---|
| Чтение совпадений guardrail, политик и discovered tools firewall | Member |
| Чтение лент Events & Runs firewall | Developer |
| Создание или изменение guardrails, политик и правил firewall | Developer |
Экспорт комплаенса, открытый текст ключей с областью firewall-gateway, флаг is_firewall_gateway | Admin |
Токен с областью firewall-gateway (ключ для вызова
/api/v1/firewall/evaluate и MCP gateway) требует роли Admin для создания.
Обычный API-ключ получит 403 на этих маршрутах.6. Дальнейшие шаги
Стек управления
Полный путь запроса — ключ, guardrails, модель, firewall, аудит —
в одной диаграмме.
Разделённая ответственность
Что обеспечивает шлюз и что остаётся в вашем приложении.
Agent Firewall
Создавайте политики, настраивайте поверхности и управляйте вызовами
инструментов подробно.
