Исследование
Инструменты защиты ИИ-агентов: практический справочник с примерами подключения
Короткий практический каталог инструментов защиты ИИ-агентов: открытый код или коммерческие, облако или свой контур, от каких атак защищают и как встраиваются.

Инструменты защиты ИИ-агентов: практический справочник с примерами подключения
Ниже - рабочий список инструментов для защиты ИИ-агентов и приложений на больших языковых моделях. Для каждого указано: лицензия, способ развертывания, от каких атак защищает и как выглядит минимальное подключение.
Важно: один инструмент обычно не закрывает все сразу. Инъекции в промпт, контроль поведения агента и маскировка данных - это разные слои защиты.
Быстрый выбор
- Lakera Guard - коммерческий инструмент,
облачный API, внешний фильтр входа и выхода. - NeMo Guardrails - открытый код,
в своем контуре, управление сценарием агента, вызовами инструментов и ограничениями диалога. - Presidio - открытый код,
в своем контуре, поиск и анонимизация персональных данных. - Rebuff - открытый код,
в своем контуре, защита от инъекций в промпт, но проект имеет архивный статусarchivedи помечен какprototype. - Guardrails AI - открытый код,
в своем контуре, конструктор проверок для входа и выхода модели. - MOLL Y/X - коммерческий инструмент: браузерное расширение и API для маскировки данных перед отправкой во внешний ИИ.
Lakera Guard
Лицензия:коммерческий продуктРазвертывание:облачный APIЧто это:внешний ИИ-брандмауэр, фильтр входа и выходаЗащищает от:инъекций в промпт, джейлбрейк-запросов, утечек данных, вредных ссылок, нарушений политикКогда брать:если нужен отдельный слой проверки перед вызовом модели без переписывания всего приложения
Как подключается
Пользовательский ввод сначала проходит через Lakera Guard. Если запрос безопасен, он уходит в модель. При необходимости тем же способом можно проверять и ответ модели перед возвратом пользователю.
Пример подключения (схема, псевдокод)
screened = lakera.scan(user_input)
if screened.blocked:
return "Запрос заблокирован политикой безопасности"
answer = llm.invoke(user_input)
screened_answer = lakera.scan(answer)
if screened_answer.blocked:
return "Ответ скрыт политикой безопасности"
return answerГраница применения
Lakera Guard хорошо решает слой фильтрации, но не описывает за вас сценарии работы агента, разрешенные действия и бизнес-логику.
NVIDIA NeMo Guardrails
Лицензия:открытый кодРазвертывание:в своем контуреЧто это:Python-фреймворк для управления поведением агента через rails и ColangЗащищает от:выхода агента за сценарий, небезопасных вызовов инструментов, отклонений в диалоге и поиске по базе знанийКогда брать:если агент не просто отвечает, а ходит в инструменты, память, поиск и должен работать по строго заданным правилам
Как подключается
Вы описываете rails в конфиге и Colang, затем все сообщения пропускаете через LLMRails, а не отправляете напрямую в модель.
Пример подключения
from nemoguardrails import RailsConfig, LLMRails
config = RailsConfig.from_path("./config")
rails = LLMRails(config)
result = rails.generate(
messages=[{"role": "user", "content": user_input}]
)Граница применения
NeMo Guardrails требует отдельного проектирования сценариев и тестов. Если rails не описаны, фреймворк не угадает нужную политику сам.
Microsoft Presidio
Лицензия:открытый кодРазвертывание:в своем контуреЧто это:библиотека для поиска и анонимизации персональных данныхЗащищает от:утечки ПДн, случайной отправки чувствительных данных во внешний ИИ, нарушений требований по приватностиКогда брать:если нужно очищать текст, формы, документы и изображения до передачи в облачные модели или внешние сервисы
Как подключается
Обычно сначала запускается AnalyzerEngine, затем найденные сущности анонимизируются через AnonymizerEngine. После этого в модель уходит уже обезличенный текст.
Пример подключения
from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine
analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()
entities = analyzer.analyze(text=text, language="en")
safe_text = anonymizer.anonymize(
text=text,
analyzer_results=entities,
)Граница применения
Presidio решает слой данных, а не слой поведения агента. Для русского контура обычно приходится отдельно настраивать распознаватели, словари и правила.
Rebuff
Лицензия:открытый кодРазвертывание:в своем контуреЧто это:библиотека и прототип для защиты от инъекций в промптЗащищает от:скрытых инструкций, утечки системного промпта, части джейлбрейк-сценариевКогда брать:если нужен исследовательский слой или стартовая точка для собственного детектора атак
Как подключается
Входной текст проверяется до передачи в модель. Если детектор находит признаки инъекции, запрос блокируется или переводится в безопасный режим.
Пример подключения (схема, псевдокод)
from rebuff import Rebuff
detector = Rebuff()
check = detector.detect_injection(user_input)
if check.injection_detected:
return "Подозрительный запрос заблокирован"
return llm.invoke(user_input)Граница применения
Rebuff нельзя честно подавать как основной стандарт для продакшна: репозиторий имеет архивный статус archived, а сам проект помечен как prototype.
Guardrails AI
Лицензия:открытый кодРазвертывание:в своем контуреЧто это:фреймворк для сборки проверок на входе и выходе моделиЗащищает от:ПДн во входе и выходе, токсичного контента, невалидного формата ответа, части инъекций в промпт и нарушений политик выводаКогда брать:если нужна не одна проверка, а набор валидаторов под разные маршруты и сценарии
Как подключается
Создается Guard, в него добавляются нужные валидаторы из Hub, после чего через него прогоняется входной запрос, ответ модели или оба потока сразу.
Пример подключения (схема, псевдокод)
from guardrails import Guard
guard = Guard().use_many(
DetectPII(),
DetectPromptInjection(),
CompetitorCheck(),
)
validated = guard.validate(user_input_or_output)Граница применения
Guardrails AI - это каркас, а не готовая политика безопасности. Качество зависит от набора валидаторов, порядка их применения и ваших проверок на реальных данных.
MOLL Y/X
Лицензия:коммерческий продуктРазвертывание:браузерное расширение и API в контуре компанииЧто это:локальная маскировка данных перед отправкой во внешний ИИ или любой другой сервисЗащищает от:утечки ПДн, передачи чувствительных данных за пределы контура, нарушений 152-ФЗ, случайной отправки секретов в публичные ИИ-сервисыКогда брать:если сотрудники уже работают в веб-интерфейсах ИИ или если компании нужен собственный API-слой маскировки
Как подключается
У MOLL Y/X два сценария:
- Браузерное расширение для Chrome, которое маскирует данные прямо перед отправкой в ChatGPT, Claude и другие сервисы.
- API в контуре компании: сначала текст или документ проходит через MOLL Y/X, затем уже обезличенный запрос уходит во внешний ИИ.
Пример подключения
import requests
safe = requests.post(
"http://localhost:8080/v1/anonymize/text",
json={"text": prompt},
).json()
llm_answer = llm.invoke(safe["text"])
final = requests.post(
"http://localhost:8080/v1/deanonymize/text",
json={"text": llm_answer, "map": safe["map"]},
).json()Точки интеграции
GET /healthPOST /v1/anonymize/textPOST /v1/anonymize/documentPOST /v1/deanonymize/text
Что важно на практике
MOLL Y/X распознает 100+ типов сущностей, работает с текстом, документами и изображениями и подходит сразу для двух задач: защиты сотрудников в браузере и защиты корпоративных интеграций через API.
Граница применения
MOLL Y/X решает прежде всего слой маскировки и обезличивания. Если агент сам принимает решения, использует инструменты и читает потенциально враждебный контент, его правильно комбинировать с фильтрацией входа и ограничениями поведения.
Что ставить в реальном проекте
- Если нужен внешний фильтр входа и выхода - берите Lakera Guard.
- Если нужен контроль сценария, поведения и вызовов инструментов - смотрите на NeMo Guardrails или Guardrails AI.
- Если нужно не выпускать ПДн и чувствительные данные наружу - ставьте Presidio или MOLL Y/X.
- Если сотрудники уже работают в ChatGPT и Claude из браузера - самый прямой вариант это MOLL Y/X для Chrome.
- Если нужен локальный API-слой перед внешним ИИ - смотрите на MOLL Y/X.
- Если нужен исследовательский пример защиты от инъекций в промпт - можно посмотреть Rebuff, но с поправкой на его статус
archived.

