regex позволяет сопоставить эту форму на каждом вызове и затем
блокировать, маскировать или флагировать её, до того как
промпт дойдёт до модели и до того как ответ дойдёт до вашего пользователя.
Это сфокусированная посадочная страница для сценария структурированных
паттернов. Полный движок guardrail — каждый тип правила, поле и маршрут —
см. в справочнике Guardrails.
api.orcarouter.ai). Вы создаёте guardrail под собственной сессией;
только финальный вызов /v1/* использует relay-ключ sk-orca-....
Создание и редактирование guardrails требует Developer+ в рабочем
пространстве.1. Когда вам нужен контроль regex guardrail llm
Правилоregex — правильный инструмент, когда то, что вы хотите поймать,
имеет структуру, которую не может выразить литеральный denylist, но
не является стандартной идентичностью, которую уже покрывает
детектор pii.
Структурированные коды
Токены в форме формата
Паттерны утечки в выводе
Дешёвые детерминированные проверки
2. RE2 — линейное время, без обратных ссылок
pattern правила regex — это регулярное выражение Go RE2. RE2 —
движок, который делает правило regex безопасным для выполнения на каждом
запросе:
Сопоставление за линейное время — без катастрофического бэктрекинга
Сопоставление за линейное время — без катастрофического бэктрекинга
Без обратных ссылок, без lookaround
Без обратных ссылок, без lookaround
\1), lookahead или lookbehind.
Если вы портируете PCRE-паттерн, который на них полагается,
перепишите его без них. Классы символов, якоря, квантификаторы,
альтернация и незахватывающие группы все работают как ожидается.Нечувствительность к регистру и флаги идут в паттерне
Нечувствительность к регистру и флаги идут в паттерне
(?i) для нечувствительности к регистру, (?m) для
многострочности. Пример: (?i)\bproject-orca\b.Паттерн должен компилироваться — проверяется при сохранении
Паттерн должен компилироваться — проверяется при сохранении
3. Анатомия правила regex
Правилоregex — наименьшее правило в движке после keyword: паттерн,
стадия и действие.
| Поле | Что делает |
|---|---|
pattern | Регулярное выражение Go RE2 (линейное время, без обратных ссылок). Должно компилироваться. |
stage | input (запрос), output (ответ) или both. |
action | block, mask или flag. |
[REDACTED] — правило regex не типизировано, так что
оно не рендерит тег по сущности вроде [EMAIL]. Если вы хотите
типизированный тег или пользовательский токен замены, смоделируйте форму
как пользовательскую сущность PII
вместо этого.
4. Один конкретный пример
Предположим, ваши внутренние номера заказов выглядят какORD-, за
которой следуют восемь цифр, и вы никогда не хотите, чтобы один из них был
повторён обратно в ответе модели. Добавьте одно правило regex на
стадии output:
Создайте guardrail
order-id-filter.Добавьте правило regex
ORD-\d{8}.
Сохраните.Протестируйте в песочнице
output
и прогоните текущую политику локально — без вышестоящего вызова,
без квоты:Привяжите ключ
order-id-filter из выпадающего
списка Guardrail (устанавливает guardrail_id на ключе) или
пометьте guardrail default’ом рабочего пространства. См.
Привязка к ключу и
Default аккаунта.5. Стадия и покрытие стриминга
Действие, которое вы выбираете, взаимодействует с тем, стримится ли ответ:| Действие | Нестриминг | Стриминг |
|---|---|---|
block (output) | Применяется | Применяется — сканер режет поток |
mask (output) | Применяется | Применяется — сканер переписывает буфер |
6. Выберите действие
Правилоregex выбирает одно действие на правило:
Block — отклонить вызов
Block — отклонить вызов
guardrail_blocked.
Заблокированный запрос не стоит квоты — блокировка на стадии input
срабатывает до тарификации; блокировка на стадии output возвращает
предварительно списанную квоту — и помечается skip-retry. См.
ошибку guardrail_blocked.Mask — отредактировать совпадение
Mask — отредактировать совпадение
[REDACTED], и запрос
продолжается с очищенным текстом — вышестоящая модель (стадия input)
или ваш пользователь (стадия output) никогда не видит оригинал. См.
Действия.Flag — только наблюдение
Flag — только наблюдение
flag,
понаблюдайте за лентой Matches, затем продвиньте в mask/block, как
только начнёте ему доверять.Annotate — прикрепить заметку
Annotate — прикрепить заметку
Spotlight — обернуть как недоверенные данные
Spotlight — обернуть как недоверенные данные
⟦UNTRUSTED⟧…⟦/UNTRUSTED⟧), которые говорят модели
трактовать текст как данные, не инструкции — митигация
prompt-инъекции. См. Действия.7. Посмотрите, что сработало — и настройте точность
Каждое сработавшее правило записывает совпадение — тип правила, действие, стадию и строку-деталь — в ленте Matches рабочего пространства. Слишком широкий паттерн — классическая ловушка regex —\d{8} совпадает
с каждым набором из восьми цифр, а не только с вашими номерами заказов.
Заякорите его (фиксированный префикс вроде ORD-, границы слов \b),
наблюдайте за лентой Matches и помечайте ложные срабатывания, чтобы
ужесточать по ходу. Для A/B-сетки против корпуса — доказывающей, что
паттерн ловит то, что должен, не флагируя безобидный трафик —
eval-харнесс живёт одной вкладкой
дальше. См.
Настройку ложных срабатываний.
8. Куда двигаться дальше
Пользовательские сущности PII
[REDACTED].Чувствительные слова
Действия
Справочник Guardrails
regex управляет содержимым. Чтобы управлять вызовами
инструментов агента — запрещать деструктивные действия, редактировать
аргументы вызовов инструментов, требовать подтверждения — используйте
Firewall и его
сопоставители правил. Для нечётких
политик, которые не может выразить ни один паттерн (токсичность,
оффтопик, намерение инъекции), правило llm_judge выполняет семантическую
проверку моделью рабочего пространства. Чтобы увидеть, где regex
вписывается в общий дизайн, прочтите
Guardrails vs Firewall.