1. Политика безопасности на ключ: два поля на ключе
Guardrail проверяет текст, который проходит через модель (PII, секреты, jailbreak’и). Политика firewall управляет вызовами инструментов, которые выпускает агент (какие инструменты, какие MCP-серверы, какие хосты). Оба — именованные политики в рамках рабочего пространства — написаны один раз, общие в пределах рабочего пространства — и ключ выбирает конкретную через два поля:| Поле | Привязывает | Задаётся в консоли |
|---|---|---|
guardrail_id | Guardrail, который проверяет промпты и ответы этого ключа. | Developer+ |
firewall_policy_id | Политику firewall, которая вычисляет вызовы инструментов этого ключа. | Developer+ |
/console/token. Установка любого из
них — действие Developer+; сами политики тоже пишутся на уровне
Developer+ (см. Область и ключи).
Эти два поля независимы. Ключ может прикрепить guardrail и не
прикреплять политику firewall, наоборот, оба или ни одного — каждая
плоскость разрешается сама по себе. Оставить поле незаданным (
0) — не то
же самое, что отключить применение;
см. §3.2. Один конкретный пример
Скажем, default-guardrail вашего рабочего пространства флагирует PII, но пропускает её, а default-политика firewall аудирует каждый вызов инструмента. Это нормально для большинства агентов — но ваш финансовый агент работает с SSN клиентов и никогда не должен вызывать shell-инструмент. Напишите более строгийfinance-guardrail (блокирует PII напрочь) и
finance-firewall (разрешает только три нужных ему инструмента), затем
привяжите оба к ключу этого агента:
12, а его вызовы инструментов вычисляются политикой 8 — при этом каждый
другой ключ в рабочем пространстве продолжает выполнять дефолты рабочего
пространства. Собственный код агента не меняется; он продолжает вызывать
https://api.orcarouter.ai/v1/... со своим ключом sk-orca-… ровно как
раньше.
3. Разрешение: правило, на котором люди спотыкаются
Для каждого запроса шлюз разрешает активный guardrail и активную политику firewall независимо. Порядок выглядит одинаково для обоих — сначала привязка, потом default рабочего пространства — но они расходятся в одном случае.Разрешение guardrail
Привязан и включён → используется он
Привязан и включён → используется он
guardrail_id ключа указывает на guardrail, который существует и
включён. Этот guardrail проверяет запрос.Привязан, но ОТКЛЮЧЁН или удалён → нет guardrail
Привязан, но ОТКЛЮЧЁН или удалён → нет guardrail
Отключение привязанного guardrail — это выключатель. Ключ получает
никакой проверки содержимого — он не откатывается к default
рабочего пространства. Это сделано намеренно: привязать guardrail и
отключить его — это и есть способ выключить проверку для этого ключа.
Не задан (0) → default рабочего пространства
Не задан (0) → default рабочего пространства
На ключе нет
guardrail_id. Применяется включённый default-guardrail
рабочего пространства, если он задан.Ни то, ни другое → нет применения
Ни то, ни другое → нет применения
Нет привязки и нет default рабочего пространства → запрос проходит без
проверки содержимого.
Разрешение firewall
Привязана и включена → используется она
Привязана и включена → используется она
firewall_policy_id ключа указывает на политику, которая существует и
включена. Эта политика вычисляет вызовы инструментов ключа.Привязана, но ОТКЛЮЧЕНА → default рабочего пространства
Привязана, но ОТКЛЮЧЕНА → default рабочего пространства
Вот в чём разница. Отключённая привязка firewall откатывается к
default-политике firewall рабочего пространства — она не выключает
применение. Отключение привязки firewall возвращает ключ к default
рабочего пространства; оно не оставляет ключ без защиты.
Не задана (0) → default рабочего пространства
Не задана (0) → default рабочего пространства
На ключе нет
firewall_policy_id → применяется включённая
default-политика firewall рабочего пространства.4. Как выглядит блокировка
Когда привязанная политика отклоняет запрос, вызывающий видит структурированную ошибку — агент может среагировать вместо падения:| Плоскость | Код ошибки | HTTP | Стоимость |
|---|---|---|---|
| Guardrail | guardrail_blocked | 400 | Нет — блокировка на входе срабатывает до тарификации; блокировка на выходе возвращает средства. Помечена skip-retry. |
| Firewall (inbound) | firewall_blocked | 400 | Блокировка inbound срабатывает до вызова модели, так что нет токенов модели. Skip-retry. |
| Firewall (удержано) | firewall_approval_pending | 400 | Удержано для подтверждения человеком; агент опрашивает и повторно отправляет после одобрения. |
5. Куда идти дальше
Область и ключи
Полная трёхуровневая модель — рабочее пространство, политика, ключ — и
каждое поле, которое несёт ключ.
Объект токена
Каждое поле на ключе:
model_limits, allow_ips, credit_limit_usd,
expired_time и две привязки политик.Guardrails
Напишите политику содержимого, которую вы привязываете через
guardrail_id — правила, PII-сущности, действия и пресеты.Firewall
Напишите политику вызовов инструментов, которую вы привязываете через
firewall_policy_id — вердикты, поверхности и уровни автономии.Хотите задать всю позицию рабочего пространства одним движением вместо
привязки ключей по одному? Уровень автономии пишет обе плоскости —
guardrails и firewall — сразу. Затем прикрепите более строгие политики на
те немногие ключи, которым нужно зайти дальше default рабочего
пространства. См.
Guardrails vs Firewall.
