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

Аудит

Раздел Аудит — полный журнал действий ИИ-агентов с возможностью фильтрации и экспорта.

Маршрут: /audit

Журнал аудита

Каждая запись содержит:

Поле Описание
ID UUID записи
Агент ID и имя агента
Действие Тип операции
Ресурс Целевой ресурс
Входные данные JSON input
Результат JSON output
Reasoning Шаги рассуждения агента
Risk Score Оценка риска (0.0–1.0)
Подпись Цифровая подпись (HMAC)
Время UTC timestamp
Согласовано Флаг is_approved

Цифровая подпись

При AUDIT_SIGNING_ENABLED=true каждая запись подписывается для обеспечения целостности и неизменяемости.

Фильтрация

Фильтр Описание
Агент По ID или имени
Действие read_data, write_data, delete_data и др.
Ресурс По имени ресурса
Период Дата начала / окончания
Risk Score Минимальный / максимальный
Статус Одобрено / отклонено

Пагинация

Журнал поддерживает курсорную пагинацию:

curl "http://localhost:8000/api/v1/audit?limit=50&offset=0" \
  -H "X-API-Key: <key>"

Параметры:

Параметр По умолчанию Описание
limit 50 Записей на страницу (макс. 200)
offset 0 Смещение
agent_id Фильтр по агенту
action Фильтр по действию
resource Фильтр по ресурсу

Экспорт

Синхронный экспорт

Для небольших объёмов (< 10 000 записей):

curl "http://localhost:8000/api/v1/audit/export/json?limit=1000" \
  -H "X-API-Key: <key>" \
  -o audit.json
curl "http://localhost:8000/api/v1/audit/export/csv?limit=1000" \
  -H "X-API-Key: <key>" \
  -o audit.csv
curl "http://localhost:8000/api/v1/audit/export" \
  -H "X-API-Key: <key>" \
  -o audit.jsonl

Асинхронный экспорт

Для больших объёмов (> 10 000 записей):

# 1. Запуск задачи
curl -X POST http://localhost:8000/api/v1/audit/export/async \
  -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{"format": "json", "limit": 50000}'

# 2. Проверка статуса
curl http://localhost:8000/api/v1/audit/export/status/<job_id> \
  -H "X-API-Key: <key>"

# 3. Скачивание
curl http://localhost:8000/api/v1/audit/export/download/<job_id> \
  -H "X-API-Key: <key>" \
  -o audit_export.json

Экспорт из UI

На странице аудита нажмите Export и выберите формат (JSON / CSV).

Запись в журнал (SDK)

await client.log_action(
    action="analyze_data",
    resource="sales_db",
    input_data={"query": "SELECT * FROM orders"},
    output={"rows": 150},
    reasoning=["Шаг 1: Загрузка", "Шаг 2: Анализ"],
    risk_score=0.12,
)

Хранение

Параметр Значение по умолчанию Переменная
Срок хранения 90 дней AUDIT_RETENTION_DAYS
Подпись Включена AUDIT_SIGNING_ENABLED
Путь экспорта ./storage/exports EXPORT_STORAGE_PATH