A newer version of the Gradio SDK is available:
6.3.0
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-текст с анализом первопричин и рекомендациями.
🔄 Процесс анализа
Анализ выполняется последовательно:
- Пользователь загружает или вставляет логи в интерфейс
- Agent 1 (Log Parser) обрабатывает сырые логи → структурированный JSON
- Agent 2 (Anomaly Detection) анализирует структурированные данные → отчёт об аномалиях
- Agent 3 (Root Cause) интерпретирует аномалии → Markdown с рекомендациями
- Результаты отображаются в интерфейсе в трёх вкладках
🚀 Использование
Локальный запуск
- Установите зависимости:
pip install -r requirements.txt
- Запустите приложение:
python app.py
- Откройте браузер по адресу
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 для более глубокого анализа
- Поддержка потоковой обработки больших файлов
- Экспорт результатов в различные форматы
- Интеграция с системами мониторинга