Перейти к содержанию

Архитектура

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_candidates
  • anomaly_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)