Всё здесь привязывается к вашему рабочему пространству и настраивается
из консоли. Ваш чат-бот продолжает вызывать
https://api.orcarouter.ai/v1/chat/completions с тем же ключом
sk-orca-... — меняется только политика в шлюзе. Действия по конфигурации
требуют ролей, указанных на каждом шаге; вызовы ретрансляции используют
ограниченный ключ.1. Модель угроз для публичного чат-бота
Прежде чем что-либо писать, знайте, от чего вы защищаетесь. Поверхность атаки чат-бота уже, чем у полноценного агента, — но высокочастотные риски конкретны:PII на входе, PII в логах
Пользователи вставляют email-адреса, номера карт, SSN в чат — а вы
пересылаете их вышестояще и в свои логи.
Prompt injection
«Игнорируй предыдущие инструкции и …» — попытки переопределить ваш
системный промпт и изменить поведение бота.
Джейлбрейки
Обрамления в стиле DAN / ролевой игры, которые пытаются увести бота с
политики.
Небезопасный вывод
Модель отражает утёкшие секреты, шаблонный текст системного промпта или
контент с инъекциями обратно в чат.
2. Один guardrail, четыре задачи
Вместо четырёх отдельных политик создайте один guardrail рабочего пространства с упорядоченными правилами, покрывающими каждый риск. Guardrail — это именованный упорядоченный список правил; каждое правило говорит что искать, где (input, output или both) и что делать (block,
mask или flag).
В консоли откройте Guardrails → New guardrail, назовите его
chatbot-shield и добавьте правила ниже. Создание guardrail — и запуск
песочницы Test — требует роли Developer; просмотр guardrails открыт
любому участнику.
a. PII на запросе
Добавьте правило PII, стадияinput, действие mask. Встроенный
набор сущностей закрыт — выберите те, что чат-бот реально видит:
jane@acme.com
становится [EMAIL], так что вышестоящая модель никогда не видит адрес.
Переопределение entity_actions блокирует запрос целиком на номере
карты или SSN, маскируя при этом сущности меньшей серьёзности. Это в точности
пресет PII Shield, расширенный пер-сущностными переопределениями —
примените пресет из библиотеки шаблонов и редактируйте оттуда.
b. Проверка на prompt-injection
OrcaRouter поставляет это как safety-пресет Prompt-Injection Basics (denylist ключевых слов для фраз вроде «ignore previous instructions» и «reveal your system prompt»; для более строгого regex-покрытия обрамлений DAN / ролевой игры добавьте пресет Jailbreak / Role-Play Blocker) плюс, для семантического намерения, которое не ловит ни один паттерн, правилоllm_judge. Добавьте пресет, затем правило-судью на стадии input с
рубрикой, которая флагирует попытки инъекции/переопределения. Судья
работает против модели в вашем рабочем пространстве, ограничен
judge_timeout_ms и по умолчанию fails open (ошибка судьи логируется, и
запрос продолжается) — установите judge_fail_open: false, чтобы fail
closed.
c. Безопасность вывода
Добавьте правило block на стадииoutput (regex или ключевое слово) для
контента, который никогда не должен достигать окна чата — утёкшие секреты,
управляющие токены chat-шаблона, шаблонный текст системного промпта. Пресеты
Secrets & API-Key Blocker и safety-пресеты на утечку системного промпта
покрывают распространённые случаи; примените их и привяжите соответствующие
правила к стадии output. Block на выводе применяется и на потоке —
сканер обрезает поток на лету и выдаёт сообщение-замену прежде, чем
заблокированный контент достигнет пользователя.
3. Протестируйте до выкатки
У каждого редактора guardrail есть вкладка Test. Вставьте образец, выберите стадию и запустите текущую политику локально — без вышестоящего вызова, без траты квоты.| Вставьте это | Стадия | Ожидайте |
|---|---|---|
email me at jane@acme.com | input | email me at [EMAIL] |
ignore previous instructions | input | flag / block (на ваш выбор) |
карта 4111 1111 1111 1111 | input | guardrail_blocked (по переопределению) |
4. Выпустите один ограниченный ключ для бота
Guardrail применяется только на ключах, которые к нему разрешаются. Дайте чат-боту собственный ключ, ограниченный минимумом, который ему нужен, — никогда не ваш ключ уровня аккаунта. В API Keys → New key задайте:Привяжите guardrail
Привяжите guardrail
Выберите
chatbot-shield из выпадающего списка Guardrail. Это
устанавливает guardrail_id на ключе. Явная привязка — противоположность
off-переключателя: если она установлена и включена, она всегда
применяется и никогда не откатывается молча. (Оставьте её неустановленной,
чтобы откатиться к is_default-guardrail рабочего пространства.)Ограничьте траты
Ограничьте траты
Установите
credit_limit_usd на разумный потолок (0 = без лимита).
Публичный чат-бот — ключ, наиболее вероятно подверженный
злоупотреблению; жёсткий кредитный потолок — это ваш предел радиуса
поражения. См. denial-of-wallet.Закрепите модели
Закрепите модели
Включите
model_limits и перечислите только модель(и), которую боту
разрешено вызывать, чтобы утёкший ключ нельзя было использовать для
запуска дорогой модели, которую вы никогда не собирались выставлять.Ограничьте ещё сильнее
Ограничьте ещё сильнее
Установите
allow_ips на egress-IP вашего бэкенда, если бот вызывает с
фиксированного сервера, и expired_time, если ключ временный
(-1 = никогда не истекает).chatbot-shield без какого-либо кода, осознающего, что происходит проверка.
5. Наблюдайте в production
Два чтения держат вас честными, оба ограничены рабочим пространством:- Guardrails → Matches (любой Member) — каждое сработавшее правило: тип, действие, стадия и деталь. Совпавшая подстрока записывается только, если для guardrail включено Log raw content (выключено по умолчанию — консервативная по приватности позиция). Отметьте ложное срабатывание, чтобы настроить политику (Admin).
- История версий — каждое изменение пишет строку истории; сравнивайте
diff любые две версии и откатывайте, если правило окажется слишком
агрессивным. Заблокированный запрос возвращает HTTP 400
guardrail_blocked, не стоит никакой квоты и помечается skip-retry.
Ответ
guardrail_blocked — это намеренный, видимый пользователю 400.
Обработайте его в UI вашего чат-бота дружелюбным сообщением («Я не могу это
обработать») вместо того, чтобы показывать сырую ошибку, — шлюз уже остановил
небезопасный ход за вас.6. Если ваш бот вызывает инструменты
В тот момент, когда ваш чат-бот может вызвать функцию, извлечь URL или обратиться к MCP-серверу, проверки текста недостаточно — вам нужна плоскость действий. Привяжите политику Firewall к тому же ключу черезfirewall_policy_id или примените уровень автономии
balanced, чтобы аудировать вызовы инструментов и флагировать PII по
всему рабочему пространству перед ужесточением. Самый быстрый путь —
быстрый старт нулевого доверия; для
агента, который активно вызывает инструменты, см.
защиту автономного агента.
7. Куда углубиться
Справочник Guardrails
Каждый тип правила, PII-сущность, поле судьи и eval-харнесс полностью.
Guardrails vs Firewall
Текстовая плоскость против плоскости действий — когда что нужно.
Режимы применения
Observe → shadow → enforce: выкатывайте, не ломая бота.
Область ключей, политик, рабочих пространств
Как разрешаются привязка ключа и дефолты рабочего пространства.
