PII-guardrail проверяет текст промптов и ответов. Чтобы управлять
действиями, которые агент совершает с данными — инструменты выборки, egress-хосты
— см. Эксфильтрация данных. Две плоскости
комбинируются; большинство команд используют обе.
1. Как происходит раскрытие
PII достигает вышестоящего провайдера через обычный, благонамеренный трафик:- Пользователь вставляет свои контактные данные в чат, а ваше приложение пересылает всё сообщение дословно.
- RAG-конвейер извлекает документ, содержащий записи клиентов, и помещает его в промпт в качестве контекста.
- Агент читает строку базы данных и включает необработанные поля в аргумент инструмента или последующий промпт.
- Ответ модели повторяет или выводит PII, которые ваше приложение затем записывает в собственные логи.
2. Защита от утечки PII в LLM с помощью PII-guardrail
Guardrail — это именованная контентная политика в рамках рабочего пространства. Правилоpii внутри него обнаруживает чувствительные
сущности и применяет одно действие к каждому совпадению:
| Действие | Эффект |
|---|---|
mask | Заменить каждое совпадение типизированным тегом — jane@acme.com → [EMAIL] — и переслать очищенный текст. Модель никогда не видит оригинал. |
block | Отклонить весь запрос с HTTP 400 guardrail_blocked. Используйте, когда PII вообще не должны достигать провайдера. |
flag | Ничего не менять в трафике; записать совпадение. Измерьте раскрытие до того, как начнёте применять. |
email, phone, credit_card, ssn, ip, iban, mac_address, jwt,
aws_access_key, api_key_openai, bitcoin_address, плюс проверяемые
контрольной суммой региональные идентификаторы jp_mynumber, kr_rrn и
cn_resident_id.
При действии mask каждое совпадение отображается как его типизированный тег —
[EMAIL], [SSN], [CREDIT_CARD] и т.д. — так что структура промпта сохраняется,
а значение исчезает.
3. Конкретный пример — маскирование PII в запросе
Самый быстрый старт — пресет PII Shield: единственное правилоpii, которое
маскирует email, phone, ssn, credit_card и ip. Настройте его в консоли —
без изменений кода, без ключа на этом шаге.
Создайте guardrail
В консоли откройте Guardrails и нажмите New guardrail. Выберите пресет
PII Shield из категории pii или вручную напишите одно правило
pii с
действием mask для сущностей выше. Сохраните. (Запись требует роли
Developer или выше.)Проверьте в песочнице
Откройте вкладку Test, вставьте «reply to jane@acme.com», выберите этап
input и запустите. Песочница возвращает reply to [EMAIL] — локально, без
вышестоящего вызова и без расхода квоты.Привяжите к ключу
В API Keys отредактируйте ключ и выберите guardrail из выпадающего списка
Guardrail, или установите guardrail как дефолт рабочего пространства, чтобы
каждый непривязанный ключ его унаследовал. Привязка живёт на ключе в шлюзе.
4. Маскируйте большинство, блокируйте худшее — переопределения по сущностям
Одно правило может применять разные действия к разным сущностям черезentity_actions. Маскируйте низкорисковые идентификаторы, но жёстко блокируйте
сущности, которые вы никогда не хотите пересылать — одно правило вместо трёх
перекрывающихся:
guardrail_blocked.
Заблокированный запрос не стоит квоты — блокировка на этапе входа срабатывает
до учёта — и помечается skip-retry. Каждый ключ entity_actions должен быть
сущностью, объявленной в правиле (встроенной или пользовательской); его действие
проверяется относительно набора действий правила.
5. Что работает на стриминге сегодня
Действие и этап по-разному взаимодействуют со стримингом — узнайте матрицу до того, как начнёте на это полагаться:Маскирование или блокировка на этапе входа (любой режим ответа)
Маскирование или блокировка на этапе входа (любой режим ответа)
Полностью живое. Промпт проверяется до вышестоящего вызова, так что
маскирование и блокировка работают одинаково, независимо от того, стримится
ли ответ. Это поверхность, которую PII Shield применяет сегодня.
Блокировка на этапе вывода
Блокировка на этапе вывода
Применяется как к стриминговым, так и к нестриминговым ответам. На стриме
сканер обрывает поток на лету и выдаёт замещающее сообщение до того, как
какой-либо заблокированный контент достигнет клиента; блокировка вывода
возвращает предварительно списанную квоту.
Маскирование на этапе вывода
Маскирование на этапе вывода
В настоящее время только нестриминг. На стримящемся ответе оригинальный
фрагмент проходит немаскированным — переписывание потока в полосе является
запланированным улучшением. Для маскирования ответа сегодня используйте
нестриминговые запросы или полагайтесь на маскирование на этапе входа. Сначала
проверьте вашу точную комбинацию этап/стрим во вкладке Test.
6. Посмотрите, что было поймано
Каждое сработавшее правило записывает совпадение — его тип, действие, этап и строку детализации — видимое в ленте Matches рабочего пространства (GET /api/guardrail/match, открыто любому участнику). Оттуда вы можете группировать,
фильтровать, экспортировать в CSV и помечать ложные срабатывания.
Необработанные значения по умолчанию не логируются. Переключатель Log raw
content у guardrail выключен — позиция, консервативная к приватности — так что
лента Matches записывает, что сработало PII-правило и какая сущность, но не
совпавшую подстроку (сам адрес email). Включайте его для каждого guardrail
отдельно только тогда, когда значение нужно для триажа; настройка не
ретроактивна. Захват PII в собственный журнал аудита для отладки утечки PII был
бы самоопровержением.
7. Развивайте дальше
Для полного контроля резидентности, удержания и права на удаление — включая установку комплаенс-пакета, материализующего эти guardrails для GDPR, HIPAA или PCI DSS — начните со справочных страниц ниже.Справочник Guardrails
Каждый тип правила, этап, действие, пользовательские сущности, версионирование
и evaluation-харнесс — глубокий справочник за этой страницей.
Утечка секретов
Аналог в форме учётных данных — токены AWS, OpenAI, GitHub — ловимый
guardrail-ом Secrets Blocker.
Небезопасный вывод
Проверка того, что модель отправляет обратно, а не только того, что получает.
Guardrails vs Firewall
Когда проверять текст, а когда управлять действиями — и почему обычно нужно
и то, и другое.
