output. Шлюз
выполняет его после ответа вышестоящей модели и до того, как хоть один
байт дойдёт до вашего клиента.
Эта страница покрывает стадию output конкретно: как проверяется
завершение, что стоит блокировка и как block и mask ведут себя на
стриминговых ответах. Полный движок — каждый тип правила, поле и
маршрут — см. в Guardrails.
1. За чем команды тянутся к output-guardrails llm
Модель — недоверенная часть цикла. Она может повторить секрет из промпта, вытащить email клиента из RAG-контекста или галлюцинировать утверждение, которого ваши источники никогда не делали. Ничего из этого не видно на стадии input, потому что ничего из этого не существует, пока модель не ответила. Guardrail на стадии output — это проверка самого завершения. Правило выполняется на стадии output, когда егоstage — output
(или both). Шлюз оценивает текст ответа модели относительно политики,
записывает любое совпадение, а затем либо пропускает его, редактирует
или отклоняет — ровно те же действия block / mask / flag, что вы
используете на input, лишь применённые к ответу.
Правила output — это надстройка, а не замена. Большинство политик
проверяют
input, чтобы держать данные вне промпта, и output,
чтобы ловить то, что возвращает модель. Стадия both привязывает одно
правило к обоим концам.2. Один конкретный пример — заблокировать секрет в ответе
Создайте guardrail в консоли (/console/guardrails), добавьте одно
правило и привяжите его к ключу:
- Тип: Secrets / regex-детектор
- Стадия:
output - Действие:
block
/v1/*:
guardrail_blocked — клиент никогда не видит утёкший
контент. Если он чист, ответ проходит нетронутым.
3. Что стоит блокировка output
В отличие от блокировки input — которая срабатывает до тарификации запроса — блокировка output происходит после того, как вышестоящая модель уже отработала. Шлюз ведёт учёт за вас:- Заблокированное завершение всё равно возвращает HTTP 400
guardrail_blockedс сообщением, называющим guardrail и сработавшее правило. - Квота не списывается. Блокировка output возвращает предварительно списанную квоту после отклонения ответа, так что неудавшийся вызов для вас бесплатен, даже если модель произвела токены.
- Запрос помечается skip-retry — повторный прогон того же промпта просто снова заблокировался бы, так что шлюз не будет сжигать повтор на другом канале.
Это ключевое отличие от стадии input. Блокировка input бесплатна,
потому что тарификация не начиналась; блокировка output бесплатна,
потому что предварительно списанная квота возвращается после
отклонения ответа. В любом случае вызывающий не платит ничего. См.
ошибку guardrail_blocked.
4. Стриминг — block против mask
Block применяется на стриминговых ответах; output mask пока нет. Вот как ведёт себя каждое:block — применяется на стриминге И нестриминге
block — применяется на стриминге И нестриминге
На нестриминговом ответе завершение проверяется целиком до того,
как вернётся. На стриминговом ответе сканер наблюдает за дельтами
по мере их потока; когда правило block срабатывает посреди потока,
оно режет поток — сканер запечатывается, выдаёт короткое
уведомление-замену вместо остального, и SSE-канал закрывается прежде,
чем заблокированный контент дойдёт до клиента.Уже сброшенные байты нельзя отозвать, так что блокировка работает по
мере возможностей над тем, что уже отстримилось, но надёжно
останавливает всё после совпадения. Для жёсткой гарантии, что ни один
нарушающий байт никогда не отправляется, используйте нестриминговый
запрос.
mask — только нестриминг (маскирование in-stream в дорожной карте)
mask — только нестриминг (маскирование in-stream в дорожной карте)
На нестриминговом ответе правило mask переписывает завершение —
например, email в ответе становится
[EMAIL] — и очищенный текст —
это то, что получает ваш клиент.На стриминговом ответе правило mask на output сегодня не
редактирует ответ. Сканер всё равно оценивает каждую дельту и
отработает решение block, но замаскированный текст, который он
вычисляет, не пересылается — сырые дельты проходят без изменений.
Переписывание стримингового вывода in-band в дорожной карте. Пока
оно не зашипится, отправляйте запрос нестриминговым, если вам
нужно, чтобы output mask реально редактировал ответ.Действие на output | Нестриминг | Стриминг |
|---|---|---|
block | отклоняет ответ | режет поток |
mask | редактирует ответ | пока не редактируется (дорожная карта) |
flag | только записывает | только записывает |
5. Grounding — проверка достоверности на стадии output
Одно продвинутое правило по природе имеет форму output: контекстная заземлённость. Правилоgrounding оценивает ответ модели относительно
источников, извлечённых на запросе (ваш RAG-контекст), и срабатывает,
когда достоверность падает ниже порога (по умолчанию 0.7). Сочетайте
его с block, чтобы отказывать в недостоверных ответах, или с flag,
чтобы измерять отклонение перед применением. Оно тарифицируется как
под-строка judge, как любое правило с моделью. Полные поля живут в
Guardrails.
6. PII Shield на стадии output
Пресет PII Shield — это единственное правилоpii, действие
mask, стадия both. На стадии input оно полностью живое — оно
переписывает запрос до модели, на стриминге и нестриминге одинаково. На
стадии output оно маскирует нестриминговые завершения, как в
§4; на стриминговом ответе output
mask сегодня не редактирует ответ (маскирование вывода in-stream в
дорожной карте).
Так что на стадии output вызывайте нестриминг, если вам нужно, чтобы
PII Shield реально редактировал ответ. См.
PII Shield и
форматы маскирования.
7. Просмотр того, что сработало
Каждое сработавшее правило output записывает совпадение — его тип правила, действие, стадию (output) и строку-деталь — в ленте
Matches рабочего пространства (GET /api/guardrail/match, открыта
любому Member).
Совпавшая подстрока записывается только, когда у guardrail включён
переключатель Log raw content; он по умолчанию выключен
(консервативная по приватности позиция), так что по умолчанию вы видите
то, что правило output сработало, а не чувствительный текст, который
оно поймало. Ложное срабатывание помечается через
POST /api/guardrail/match/:id/mark-fp (Admin) — трактуйте его как
сигнал к настройке, а не как причину отключить правило.
8. Куда двигаться дальше
Стадия input
Зеркальное отражение — проверьте запрос до того, как модель его
увидит. Маскирование input полностью живое, включая стриминг.
Действия
block, mask и flag в деталях — когда каждое из них правильный выбор.
Покрытие стриминга
Полная матрица того, что применяется на стриминге против нестриминга.
Ошибка guardrail_blocked
HTTP 400, возврат квоты и поведение skip-retry.
Связанные концепции
Связанные концепции
Угрозы, которые это адресует
Угрозы, которые это адресует
Полный справочник движка
Полный справочник движка
Guardrails — каждый тип правила, поле и
маршрут, включая grounding и LLM judge.
