
Python-фреймворк для создания LLM-рабочих процессов в виде конечных автоматов с формальной верификацией через теорию доказательств Z3, CTL-модел-чекинг и конформное предсказание для гарантированно корректного извлечения данных.
Докажите, что ваш AI-агент защищён от инъекций, соответствует спецификации и не выйдет за допустимые границы — ещё до релиза.
Верификатор для LLM-агентов на этапе проектирования — не runtime-ограничитель. Импортируйте своего агента на LangGraph / CrewAI / AutoGen / MCP, и Aura докажет пять свойств уже написанного вами агента, а затем выдаст точный контрпример или сертификат. Z3 · проверка моделей CTL · информационные потоки/taint · конформная калибровка. Работает локально, в CI, без API-ключа.
Проверьте проект → импортируйте реального агента из его кода → смертельная трифекта подсвечивается с точным путём → сохраните базовую линию и ограничьте регрессии. · ▶ смотреть полное прохождение
pip install aura-state # or: uv pip install aura-state · uv add aura-state
$ aura-state demo # no keys, no config, no agent of your own needed
aura-state check · support-ticket-agent · 4 nodes
✗ trifecta [send]: lethal trifecta closed — prompt injection at 'fetch' (untrusted)
can reach external sink 'send' unsanitized while 'draft' brings private data into
scope. Path: fetch → lookup → draft → send. Break it with a sanitizer between
'fetch' and 'send', or remove one of the three capabilities.
✗ NOT PROVEN — 1 blocking finding(s) # exit 1 → CI fails
checked: trifecta closed · taint proven · reachability proven · obligations proven · policy 0 flagged
Внедрение промптов — лишь одна из них.
| Свойство | Простыми словами | |
|---|---|---|
| 🔒 | Безопасный — taint + lethal trifecta | его нельзя обманом заставить утечь данные |
| ✅ | Корректный — обязательства Z3/SMT | выходные данные подчиняются вашим правилам (amount ≤ limit) |
| ♻️ | Живой — проверка модели CTL | завершается, каждый шаг достижим, нет тупиков |
| 📊 | Калиброванный — split-conformal интервалы | знает, насколько он на самом деле уверен |
| 🛑 | Управляемый — воздержание под контролем риска | отказывается действовать, когда не уверен |
aura-state check my_agent.json # a studio export
aura-state check your_agent.py # a LangGraph / CrewAI / AutoGen source file — parsed, never executed
aura-state check ./my-agent-repo/ # a whole directory
uvx aura-state check agents/*.json # zero-install via uv — perfect for CI
Помимо трифекты, check также доказывает:
"manifest": { "side_effects": ["read"] } в ваш поток:
✗ least-privilege [Pay]: 'Pay' can external 'payment.charge', outside the declared manifest
~/.cursor/mcp.json и передай его как параметр"). Статически — никогда не подключается к серверу.Докажи это — а затем докажи само доказательство. Выдай проверяемый сертификат и перепроверь его без доверия к тому, кто его выдал:
aura-state certify your_agent.py --out cert.json # design + verdict, content-hashed
aura-state verify-cert cert.json # re-runs the verifier — catches any tamper
Соответствует EU AI Act Art. 12 / ISO 42001 (доказательства, а не просто документация).
Проведите бенчмарк. aura-state bench запускает размеченный корпус (точность на парах безопасный/уязвимый — sound, поэтому полнота составляет 100% по построению; измеряемое число — это точность) плюс покрытие импорта на реальных агентах MCP/фреймворков, загруженных без изменений.
Верификаторы агентов перед выполнением существуют — но каждый делает одну вещь и заставляет вас переписывать вашего агента под их формализм. Преимущество Aura в том, что это готовый инструмент, который загружает уже написанного вами агента и запускает весь набор:
| Статический (до запуска)? | Поток данных безопасности? | Импортирует вашего реального агента? | |
|---|---|---|---|
| AgentProof | ✅ | ❌ только топология | ✅ |
| AgentFlow | ✅ | ✅ | ❌ собственный DSL политик |
| FIDES (Microsoft) | ❌ runtime | ✅ | ❌ планировщик, с которым нужно строить |
| Aura-State | ✅ | ✅ | ✅ LangGraph / CrewAI / AutoGen / MCP |
Мы не изобретали эти методы — исследования обширны, и некоторые из них строже наших. Мы — тот, который вы можете pip install и нацелить на вашего существующего агента уже сегодня. И он sound / fail-closed: неизвестная возможность выводится как рекомендация, но никогда не пропускается молча.
Внедрите его в CI, и каждый PR будет проверяться:
# .github/workflows/aura.yml
- uses: your-org/aura-state@v0
with: { paths: "agents/*.json" }
Смертельная триада — это самый пугающий сценарий отказа для агента, использующего инструменты: в тот момент, когда он может (1) читать приватные данные, (2) принимать недоверенный контент и (3) взаимодействовать с внешним миром — всё это на одном достижимом пути — внедрённая в этот контент инъекция промпта может прочитать ваши данные и отправить их наружу. Все об этом предупреждают. Aura доказывает, что ваш агент не может замкнуть эту триаду, статически, ещё до релиза:
$ aura-state check dev_assistant.tools.json # ← your MCP tools/list export
✗ trifecta [slack_post_message]: lethal trifecta closed — prompt injection at 'fetch'
(untrusted) can reach external sink 'slack_post_message' unsanitized while 'read_file'
brings private data into scope. Path: fetch → Agent → slack_post_message.
Break it with a sanitizer between 'fetch' and 'slack_post_message'.