
pytest для AI-агентов - Автономное тестирование на проникновение, мониторинг поведения и проверка безопасности для LLM-агентов
██████╗██████╗ ██╗ ██╗ ██████╗██╗██████╗ ██╗ ███████╗ ██╔════╝██╔══██╗██║ ██║██╔════╝██║██╔══██╗██║ ██╔════╝ ██║ ██████╔╝██║ ██║██║ ██║██████╔╝██║ █████╗ ██║ ██╔══██╗██║ ██║██║ ██║██╔══██╗██║ ██╔══╝ ╚██████╗██║ ██║╚██████╔╝╚██████╗██║██████╔╝███████╗███████╗ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝╚═╝╚═════╝ ╚══════╝╚══════╝pytest для AI-агентов — тестируйте, оценивайте и укрепляйте до выхода в production
pip install crucible-security
🆕 Новичок в безопасности ИИ? Прочитайте наше Руководство для начинающих или настройте локальную тестовую цель с помощью Руководства по n8n Local Demo Target.
crucible init --target https://my-agent.com/api/chat
crucible scan --target https://my-agent.com/api/chat
crucible report crucible-report.json
Одна команда. 90 атак. Красивый отчёт.
crucible scan --output json встраивается в любой пайплайн; сборка проваливается при низких оценкахЧем Crucible отличается от Garak и PyRIT? → См. docs/comparison.md для подробной объективной таблицы возможностей.
Что тестирует Crucible? → См. docs/owasp_mapping.md для полной документации атак OWASP Agentic AI Top 10 (ASI01–ASI10).
Нужны постоянные дашборды, отчёты о соответствии и командная работа?
Присоединяйтесь к листу ожидания нашей будущей облачной платформы: crucible-cloud.vercel.app
| Модуль | Атаки | Статус | Покрытие OWASP |
|---|---|---|---|
| Prompt Injection (инъекция подсказок) | 50 | ✅ В активной разработке | LLM01, LLM07 |
| Goal Hijacking (захват целей) | 20 | ✅ В активной разработке | Agentic #1 |
| Jailbreaks (джейлбрейки) | 20 | ✅ В активной разработке | LLM01, LLM06 |
| Enterprise Graph (корпоративный граф) | 10 | ✅ В активной разработке | Agentic #2, #4 |
| Memory Poisoning (отравление памяти) | 8 | ✅ В активной разработке | Agentic #5 |
| Infrastructure Escalation (эскалация инфраструктуры) | 5 | ✅ В активной разработке | LLM06, SSRF |
| Advanced Orchestration (продвинутая оркестрация) | 4 | ✅ В активной разработке | Agentic #3 |
| MCP Security (безопасность MCP) | 5 | ✅ В активной разработке | Agentic #3 |
| MCP Server Scan (сканирование MCP-сервера) | 10 | ✅ В активной разработке (v0.4) | MCP-001 – MCP-005 |
| Behavioral Drift (поведенческий дрейф) | многократные обращения | ✅ В активной разработке (v0.3) | Agentic #1, #2 |
| Multi-turn Attacks (многошаговые атаки) | стратегии | ✅ В активной разработке (v0.3) | LLM01, Agentic #1 |
| Deep Research Engine (движок глубокого исследования) | автономный | ✅ В активной разработке (v0.4) | AI Research |
| Multi-Agent Contagion (заражение нескольких агентов) | оркестрация | ✅ В активной разработке (v0.4) | Agentic #2, #3 |
| Hallucination Detection (обнаружение галлюцинаций) | 15 | ✅ В активной разработке (v0.5) | LLM09 / Agentic #9 |
| Toxicity & Content Safety (токсичность и безопасность контента) | 20 | ✅ В активной разработке (v0.5) | LLM01, LLM06 |
| Statistical Confidence (статистическая уверенность) | --confidence | ✅ В активной разработке (v0.6) | Bootstrap и биномиальные границы |
| MCP Trace Proxy (прокси трассировки MCP) | прокси трафика | ✅ В активной разработке (v0.7) | Agentic #3 / Неправильное использование инструментов |
| Memory & RAG Poisoning (отравление памяти и RAG) | poison-test | ✅ В активной разработке (v0.8) | Agentic #5 / Отравление |
| Reference Targets (эталонные цели) | 12 целей | ✅ В активной разработке (v0.18) | Цели валидации ground-truth |
| # | Категория | Модуль Crucible | Статус |
|---|---|---|---|
| 1 | Goal Hijacking (захват целей) | goal_hijacking | Покрыто (20 атак) |
| 2 | Prompt Injection (инъекция подсказок) | prompt_injection | Покрыто (50 атак) |
| 3 | Tool Misuse (неправильное использование инструментов) | tool_injection / trace proxy | Покрыто (v0.7.0) |
| 4 | Identity Abuse (злоупотребление идентификацией) | trace proxy + слой идентификации | Покрыто (v0.9.0) |
| 5 | Memory Poisoning (отравление памяти) | memory_poisoning / poison-test | Покрыто (8 атак, v0.8.0) |
| 6 | Data Exfiltration (кража данных) | prompt_injection / exfiltration | Покрыто (v0.8.0) |
| 7 | Scope Violation (нарушение области действия) | trace proxy | Покрыто (v0.7.0) |
| 8 | Cascading Failure (каскадный сбой) | -- | Запланировано |
| 9 | Supply Chain / Overreliance (цепочка поставок / чрезмерная зависимость) | hallucination | Покрыто (15 атак) |
| 10 | Rogue Agent (вредоносный агент) | -- | Запланировано |
| Провайдер | Протестировано |
|---|---|
| OpenAI (GPT-4, GPT-4o) | Да |
| Anthropic (Claude) | Да |
| Groq (Llama, Mixtral) | Да |
| Пользовательский HTTP-эндпоинт | Да |
| LangChain (LangServe / FastAPI обёртка) | Да |
| Ollama | Да (v0.5) |
| LM Studio | Да (v0.5) |
| HuggingFace TGI | Да (v0.5) |
Мы предоставляем несколько примеров скриптов в директории examples/, чтобы помочь вам начать:
| Скрипт | Фреймворк | Описание |
|---|---|---|
test_openai_agent.py | OpenAI Chat Completions | Сканирование сырого эндпоинта OpenAI /chat/completions |
test_langchain_agent.py | LangChain (LangServe) | Сканирование агента LangChain ReAct с привязкой к OWASP LLM Top 10 |
test_openai_assistant.py | OpenAI Assistants API | Сканирование эндпоинта-обёртки Assistants API |
Все примеры используют respx для имитации HTTP-вызовов, чтобы они проходили CI без работающего сервера.
Запуск примера LangChain:
python examples/test_langchain_agent.py
Запуск примера OpenAI Assistant:
python examples/test_openai_assistant.py