PatrickRedStar's picture
Fix: Update Gradio to 5.23.1 and add pydantic 2.10.6 to fix TypeError with JSON schema
b42458c
---
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. Установите зависимости:
```bash
pip install -r requirements.txt
```
2. Запустите приложение:
```bash
python app.py
```
3. Откройте браузер по адресу `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 (структурированные данные):
```json
{
"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 (аномалии):
```json
{
"anomalies": [
{
"type": "BURST_ERRORS",
"severity": "HIGH",
"description": "Обнаружен всплеск из 3 последовательных ошибок",
"count": 3,
...
},
{
"type": "ERROR_BEFORE_CRASH",
"severity": "CRITICAL",
"description": "Обнаружен паттерн: ошибка перед возможным крашем системы",
...
}
],
...
}
```
### Пример выхода Agent 3 (рекомендации):
Markdown-отчёт с:
- Анализом первопричин
- Детальным описанием аномалий
- Приоритизированными рекомендациями
- Конкретными действиями для решения проблем
## 🔌 Расширяемость
Система разработана с учётом расширяемости:
- **Независимые агенты:** Каждый агент реализован как отдельный класс и может быть заменён без изменения остальных
- **Чёткий интерфейс:** Агенты взаимодействуют через стандартизированные форматы данных (JSON)
- **Добавление новых правил:** Легко добавить новые типы аномалий в `AnomalyDetectionAgent`
- **Кастомные парсеры:** Можно расширить `LogParserAgent` для поддержки новых форматов логов
## 📝 Лицензия
Этот проект создан в рамках технического задания для демонстрации мультиагентной архитектуры.
## 🤝 Вклад
Проект готов к расширению и улучшению. Возможные направления:
- Поддержка дополнительных форматов логов
- Интеграция с LLM для более глубокого анализа
- Поддержка потоковой обработки больших файлов
- Экспорт результатов в различные форматы
- Интеграция с системами мониторинга