PatrickRedStar's picture
Fix: Update Gradio to 5.23.1 and add pydantic 2.10.6 to fix TypeError with JSON schema
b42458c

A newer version of the Gradio SDK is available: 6.3.0

Upgrade
metadata
title: MultiAgentLogsAnalyze
emoji: 🔥
colorFrom: gray
colorTo: indigo
sdk: gradio
sdk_version: 5.23.1
app_file: app.py
pinned: false

🔍 Мультиагентная система анализа логов

Интерактивное веб-приложение для автоматизированного анализа лог-файлов с использованием трёх логически разделённых агентов.

📋 Описание

Система обеспечивает автоматизированный анализ логов с:

  • Структурированием данных
  • Выявлением аномалий
  • Интерпретацией причин и выдачей рекомендаций

🏗️ Архитектура

Проект реализован как мультиагентная система с строго 3 независимыми агентами, каждый из которых выполняет определённую функцию в цепочке анализа.

Агент 1: Log Parser Agent (agents/parser_agent.py)

Назначение: Преобразование сырых логов в структурированное представление.

Функциональность:

  • Разбор строк логов
  • Извлечение временных меток
  • Определение уровней логирования (INFO, WARNING, ERROR, CRITICAL, DEBUG)
  • Извлечение сообщений
  • Группировка по типам событий (CONNECTION, HTTP_REQUEST, DATABASE, AUTHENTICATION, EXCEPTION, SYSTEM, GENERAL)

Выход: Структурированный JSON-объект с полями:

  • events - список всех распарсенных событий
  • errors - список ошибок
  • warnings - список предупреждений
  • statistics - статистика по логам

Агент 2: Anomaly Detection Agent (agents/anomaly_agent.py)

Назначение: Выявление аномалий и подозрительных паттернов в структурированных логах.

Функциональность:

  • Подсчёт частоты событий
  • Поиск повторяющихся ошибок
  • Обнаружение временных всплесков
  • Эвристический анализ последовательностей событий

Типы обнаруживаемых аномалий:

  • BURST_ERRORS - всплески ошибок (более 5 ошибок в короткий промежуток времени)
  • REPEATED_ERRORS - повторяющиеся ошибки (одна и та же ошибка более 3 раз)
  • ERROR_BEFORE_CRASH - паттерны "ошибка перед крашем"
  • TEMPORAL_SPIKE - временные всплески событий (превышение среднего в 2 раза)
  • REPEATED_STACK_TRACES - повторяющиеся stack traces

Выход: JSON-отчёт об аномалиях с описанием, метаданными и статистикой.

Агент 3: Root Cause & Recommendation Agent (agents/rca_agent.py)

Назначение: Интерпретация аномалий и формирование рекомендаций.

Функциональность:

  • Определение возможных первопричин на основе типа аномалий
  • Формирование человеко-читаемого отчёта в формате Markdown
  • Генерация рекомендаций по устранению проблем с приоритетами
  • Предоставление конкретных действий для решения проблем

Выход: Markdown-текст с анализом первопричин и рекомендациями.

🔄 Процесс анализа

Анализ выполняется последовательно:

  1. Пользователь загружает или вставляет логи в интерфейс
  2. Agent 1 (Log Parser) обрабатывает сырые логи → структурированный JSON
  3. Agent 2 (Anomaly Detection) анализирует структурированные данные → отчёт об аномалиях
  4. Agent 3 (Root Cause) интерпретирует аномалии → Markdown с рекомендациями
  5. Результаты отображаются в интерфейсе в трёх вкладках

🚀 Использование

Локальный запуск

  1. Установите зависимости:
pip install -r requirements.txt
  1. Запустите приложение:
python app.py
  1. Откройте браузер по адресу http://localhost:7860

Использование в Hugging Face Spaces

Приложение автоматически развернётся при загрузке на Hugging Face Spaces.

📁 Структура проекта

MultiAgentLogsAnalyze/
├── agents/
│   ├── __init__.py          # Экспорт агентов
│   ├── parser_agent.py      # Agent 1: Log Parser Agent
│   ├── anomaly_agent.py     # Agent 2: Anomaly Detection Agent
│   └── rca_agent.py         # Agent 3: Root Cause Agent
├── app.py                   # Gradio приложение и оркестрация
├── requirements.txt         # Зависимости Python
├── README.md               # Документация проекта
└── space_config.yaml       # Конфигурация для Hugging Face Spaces

🔧 Технические детали

Зависимости

  • gradio>=4.0.0,<5.0.0 - веб-интерфейс

Все агенты реализованы на чистом Python 3.10+ без использования LLM или трансформеров.

Производительность

  • Поддержка анализа до 10,000 строк логов
  • Время обработки ≤ 10 секунд для типичных логов

Обработка ошибок

  • Валидация входных данных
  • Обработка некорректных логов без падения приложения
  • Информативные сообщения об ошибках

🎯 Пример использования

Пример входных логов:

2024-01-15 10:00:00 INFO Application started
2024-01-15 10:00:05 INFO Database connection established
2024-01-15 10:01:00 ERROR Connection timeout to external API
2024-01-15 10:01:05 ERROR Connection timeout to external API
2024-01-15 10:01:10 ERROR Connection timeout to external API
2024-01-15 10:01:15 WARNING High memory usage detected: 85%
2024-01-15 10:02:00 CRITICAL System crash detected
2024-01-15 10:02:01 INFO Application shutdown

Пример выхода Agent 1 (структурированные данные):

{
  "events": [
    {
      "line_number": 1,
      "timestamp": "2024-01-15 10:00:00",
      "level": "INFO",
      "message": "Application started",
      "type": "SYSTEM"
    },
    ...
  ],
  "errors": [...],
  "warnings": [...],
  "statistics": {
    "total_lines": 8,
    "parsed_events": 8,
    "errors": 3,
    "warnings": 1,
    ...
  }
}

Пример выхода Agent 2 (аномалии):

{
  "anomalies": [
    {
      "type": "BURST_ERRORS",
      "severity": "HIGH",
      "description": "Обнаружен всплеск из 3 последовательных ошибок",
      "count": 3,
      ...
    },
    {
      "type": "ERROR_BEFORE_CRASH",
      "severity": "CRITICAL",
      "description": "Обнаружен паттерн: ошибка перед возможным крашем системы",
      ...
    }
  ],
  ...
}

Пример выхода Agent 3 (рекомендации):

Markdown-отчёт с:

  • Анализом первопричин
  • Детальным описанием аномалий
  • Приоритизированными рекомендациями
  • Конкретными действиями для решения проблем

🔌 Расширяемость

Система разработана с учётом расширяемости:

  • Независимые агенты: Каждый агент реализован как отдельный класс и может быть заменён без изменения остальных
  • Чёткий интерфейс: Агенты взаимодействуют через стандартизированные форматы данных (JSON)
  • Добавление новых правил: Легко добавить новые типы аномалий в AnomalyDetectionAgent
  • Кастомные парсеры: Можно расширить LogParserAgent для поддержки новых форматов логов

📝 Лицензия

Этот проект создан в рамках технического задания для демонстрации мультиагентной архитектуры.

🤝 Вклад

Проект готов к расширению и улучшению. Возможные направления:

  • Поддержка дополнительных форматов логов
  • Интеграция с LLM для более глубокого анализа
  • Поддержка потоковой обработки больших файлов
  • Экспорт результатов в различные форматы
  • Интеграция с системами мониторинга