Архитектура¶
AegisAI построена как модульная платформа с чётким разделением ответственности между API-слоем, движком политик, модулем безопасности и фронтенд-панелью.
Обзор компонентов¶
graph LR
subgraph Clients
SDK[Python SDK]
WH[Webhooks]
UI[Vite Dashboard]
end
subgraph AegisAI Core
GW[FastAPI Gateway]
AR[Agent Registry]
AL[Audit Logger]
PE[Policy Engine]
AD[Anomaly Detector]
GUARD[Prompt Guard]
HL[HITL Service]
EP[Event Publisher]
SIEM[SIEM Exporter]
end
subgraph Infrastructure
PG[(PostgreSQL)]
RD[(Redis)]
OPA[OPA Server]
end
SDK --> GW
WH --> GW
UI --> GW
GW --> AR
GW --> AL
GW --> PE
GW --> AD
GW --> GUARD
GW --> HL
GW --> EP
AR --> PG
AL --> PG
PE --> OPA
GUARD --> OPA
GUARD --> RD
EP --> RD
UI -.->|WebSocket| GW
Структура репозитория¶
app/ # FastAPI: API, сервисы, модели, миграции, guard/
aegisai/ # Python SDK и интеграции (LangChain, OpenAI, Webhooks)
policies/ # OPA-движок и шаблоны Rego (включая guard.rego)
security/ # Аномалии, риск-скоринг, HITL, шифрование
dashboard/ # Устаревшая панель (Jinja2 + static)
frontend/ # SPA-панель Phase 4 (Vite)
API Gateway (FastAPI)¶
Центральная точка входа на порту 8000. Обрабатывает:
- REST API (
/api/v1/*) - WebSocket (
/api/v1/ws) - Webhooks (
/webhooks/agent) - Swagger UI (
/docs) - Устаревшую панель (
/dashboard)
Аутентификация¶
| Метод | Заголовок / параметр | Назначение |
|---|---|---|
| API-ключ | X-API-Key |
Доступ агентов и SDK к tenant API |
| Admin-ключ | X-Admin-Key |
Управление арендаторами |
| JWT | Authorization: Bearer <token> |
Сессии пользователей панели |
| SSO (OIDC) | Keycloak, Okta, Google, Entra ID | Корпоративный вход — см. SSO |
| Webhook-подпись | X-Webhook-Signature |
Верификация внешних событий |
Мультитенантность
Каждый API-ключ привязан к арендатору (tenant). Данные изолированы на уровне запросов и RBAC.
Движок политик (OPA + Rego)¶
Политики описываются на языке Rego и исполняются через Open Policy Agent.
Модули политик¶
| Модуль | Файл | Назначение |
|---|---|---|
| GDPR | gdpr.rego |
Защита персональных данных (ЕС) |
| HIPAA | hipaa.rego |
Контроль PHI (медицина, США) |
| ФЗ-152 | fz152.rego |
Локализация данных (РФ) |
| HITL | hitl.rego |
Требование согласования для критических операций |
| Prompt Guard | guard.rego |
Injection / jailbreak / утечка данных (package guard.main) |
| Custom | custom.rego |
Пользовательские правила allow/deny |
Агрегатор main.rego объединяет решения всех модулей:
allow if {
all_modules_allow
not hitl.deny_critical
}
risk_score := max([gdpr.risk_score, hipaa.risk_score, fz152.risk_score, hitl.risk_score, custom.risk_score])
Поток проверки политики¶
sequenceDiagram
participant Agent
participant API as FastAPI
participant OPA
participant AD as Anomaly Detector
Agent->>API: POST /policies/check
API->>OPA: Evaluate Rego
OPA-->>API: allow, risk_score, required_approval
API->>AD: Score behavior
AD-->>API: anomaly flag
API-->>Agent: PolicyCheckResponse
Модуль безопасности¶
| Компонент | Технология | Описание |
|---|---|---|
| Anomaly Detector | Supervised / IF / ONNX hybrid + Redis cache | ML-обнаружение аномалий (p95 ≤ 300 ms) |
| Agent Embeddings | Hash embeddings + cosine search | Семантический поиск, predicted type / risk |
| Shadow AI | Fingerprint → HITL confirm | Discovery незарегистрированных агентов |
| Prompt Guard | Rules + TF-IDF/IF + OPA | Проверка промптов до LLM (app/guard/) |
| Rule Engine | Правила на Python | Дополнение к ML |
| Risk Scorer | Многофакторная оценка + ML prior | Шкала 0.0–1.0 |
| HITL Service | Workflow на PostgreSQL | Запросы на согласование |
| Audit Signer | cryptography | Цифровая подпись записей |
Хранилище данных¶
PostgreSQL¶
Основное хранилище:
- Арендаторы, агенты, политики
- Журнал аудита
agent_embeddings,discovery_candidatesanomaly_training_samples,anomaly_model_versions- Отчёты об аномалиях
- HITL-запросы
- Пользователи, роли, API-ключи, сессии
Redis¶
- Pub/sub для real-time событий
- Кэш результатов Prompt Guard (TTL)
- Rate limiting (login)
- Координация фоновых задач (экспорт аудита)
Real-time события¶
WebSocket¶
Эндпоинт /api/v1/ws?token=<JWT> обеспечивает:
- Уведомления о новых аномалиях
- Обновления HITL-очереди
- Системные статусы
Event Publisher¶
Сервис event_publisher слушает Redis и рассылает события подключённым WebSocket-клиентам с учётом tenant и роли.
Фронтенд (Vite SPA)¶
| Маршрут | Страница |
|---|---|
/dashboard |
KPI, график активности |
/agents |
Список агентов |
/policies |
Управление политиками |
/audit |
Журнал аудита |
/anomalies |
Аномалии |
/hitl |
Очередь согласований |
/settings |
API-ключ и настройки |
Стек: Vite 5, Vanilla JS, Tailwind CSS 3, Chart.js 4, Luxon.
Безопасность¶
Рекомендации для production
- Смените
SECRET_KEY,ADMIN_API_KEY,WEBHOOK_SECRET - Включите HTTPS (TLS-терминация на reverse proxy)
- Ограничьте CORS до доверенных доменов
- Настройте ротацию API-ключей
- Включите
AUDIT_SIGNING_ENABLED=true
| Механизм | Реализация |
|---|---|
| Хеширование паролей | bcrypt |
| JWT | PyJWT, TTL сессии |
| API-ключи | Хеш в БД, префикс для идентификации |
| Подпись аудита | HMAC / cryptography |
| Prompt Guard | Middleware + /guard/*; fail-open при сбоях детекторов |
| RBAC | 5 ролей с иерархией прав |
Масштабирование¶
| Компонент | Стратегия |
|---|---|
| FastAPI | Горизонтальное масштабирование за load balancer |
| PostgreSQL | Репликация read-replica |
| Redis | Redis Cluster / Sentinel |
| OPA | Отдельный sidecar или централизованный сервис |
| Frontend | Статика через CDN (после npm run build) |