﻿---
title: "Guardrails: ограничения и защита"
description: "Защитные механизмы на входе, выходе и при вызове инструментов: prompt injection, PII, валидация схемы ответа и политики, которые нельзя обойти промптом."
---

## Что делает слой

Guardrails — механизмы, которые ограничивают поведение системы на входе, выходе и в момент вызова инструментов: фильтрация токсичности и персональных данных, защита от prompt injection, соблюдение политик, валидация структуры ответа.

Принципиальная разница с промптом: **инструкция в промпте — просьба, guardrail — проверка в коде**. Модель может проигнорировать просьбу, особенно если в неё попало содержимое из Retrieval или со страницы, которую читал агент.

## Три точки контроля

| Точка | Что проверяется |
|---|---|
| **Вход** | Кто обращается, что пришло в запросе, нет ли попытки переопределить инструкции |
| **Выход** | Формат ответа по схеме, отсутствие утечек, допустимость содержания |
| **Вызов инструмента** | Разрешён ли инструмент, корректны ли аргументы, не выходит ли действие за пределы прав |

Самая недооценённая точка — третья. Агент, которому разрешён shell или запись в API, может навредить корректным с виду ответом: текст валиден, действие — нет.

## Что защищают в первую очередь

- **Prompt injection из внешних данных.** Сайт, документ или тикет содержат фразу «игнорируй предыдущие инструкции» — и это не гипотеза, а типовой вектор атаки. Данные из Retrieval и инструментов всегда недоверенные.
- **Персональные данные и секреты.** Маскирование на входе и на выходе, отдельно — перед записью в трассировку (см. [Наблюдаемость](https://wpcraft.ru/kb/ai/agents/observability.md)).
- **Валидация структуры.** Ответ, который парсит код, должен соответствовать схеме; иначе ошибка парсинга превращается в случайное действие.
- **Политики домена.** Что агент не обсуждает, что не публикует, куда не пишет без согласования.
- **Ограничение прав по задаче.** Аналитика — только чтение; публикация — только через подтверждение.

## Инструменты

| Инструмент | Назначение |
|---|---|
| **NVIDIA NeMo Guardrails** | Программируемые rails с описанием правил |
| **Guardrails AI** | Валидаторы и схемы для структурированного вывода |
| **LLM Guard** | Набор проверок на входе и выходе |
| **Lakera Guard** | Защита от prompt injection и утечек |
| **AWS Bedrock Guardrails, Azure AI Content Safety** | Облачные фильтры в контуре провайдера |

Выбор зависит от того, где проходит граница: собственный сервис требует своих проверок, облачный провайдер даёт часть фильтров из коробки.

## Guardrails и права доступа

Guardrails не заменяют авторизацию. Разделение простое:

- **Guardrails** отвечают на вопрос «допустимо ли это содержание и действие по политике».
- **Права** отвечают на вопрос «разрешено ли это субъекту в этой системе».

Если право проверяется только фильтром на выходе, обход одного фильтра открывает всё. Надёжная схема — сначала права на уровне системы, затем guardrails как дополнительный слой.

## Что проверить в проекте

- **Что будет, если инструкции в промпте не сработают.** Именно это и есть реальное поведение системы.
- **Проверяются ли аргументы инструментов.** Разрешённый инструмент с неразрешёнными аргументами — типичная дыра.
- **Есть ли журнал блокировок.** Сработавший guardrail — сигнал, который нужно видеть и разбирать.
- **Не блокирует ли фильтр нормальную работу.** Слишком агрессивные проверки ломают сценарии и провоцируют их отключать.

## Материалы и источники

- [Системное мышление для агентного ИИ](https://wpcraft.ru/blog/systems-thinking-for-agentic-ai) — статья WPCraft, раздел «Guardrails»