4.3 KiB
4.3 KiB
FixAgent Mechanism - VoIdea
Дата: 2026-05-10 Статус: Backlog
Обзор
Агент для автоматического анализа и исправления багов с созданием PR.
Архитектура
FixAgent responsibilities
-
Анализ багов
- Получение данных от QATesterAgent
- Анализ логов
- Определение причины
-
Генерация исправлений
- Написание кода
- Создание тестов
- Обновление документации
-
Создание PR
- Формирование pull request
- Описание изменений
- Добавление тестов
Процесс работы
async def fix_bug(bug_data: BugReport) -> FixResult:
# 1. Анализ
analysis = await analyze_bug(bug_data)
# 2. Поиск решения
solution = await find_solution(analysis)
# 3. Генерация кода
fix_code = await generate_fix(solution)
# 4. Создание PR
pr_url = await create_pr(fix_code, analysis)
# 5. Уведомление
await notify_about_pr(pr_url)
return FixResult(pr_url=pr_url)
Анализ багов
Источники данных
-
QATesterAgent
- Failed тесты
- Логи выполнения
- Скриншоты (если есть)
-
Логи системы
- Error логи
- Warning логи
- Traceback
-
Пользовательские отчёты
- Feedback из админ-панели
- Exception reports
Типы анализа
- Static analysis — код ревью
- Log analysis — поиск паттернов
- Test replay — воспроизведение
Генерация исправлений
Правила
- Минимальные изменения — исправлять только проблему
- Не ломать существующее — регрессионные тесты
- Документация — обновлять комментарии и docs
- Тесты — добавлять новые тесты для предотвращения
Формат PR
## Fix: [Краткое описание]
### Проблема
[Описание бага]
### Причина
[Найденная причина]
### Решение
[Описание исправления]
### Тесты
- [ ] Добавлен тест для предотвращения
- [ ] Существующие тесты проходят
### Логи
[Связанные логи]
Взаимодействие с другими агентами
QATesterAgent
FixAgent → "Исправь баг X"
QATesterAgent → "Проверь исправление"
DocAgent
FixAgent → "Обнови документацию"
DocAgent → "Документация обновлена"
RolloutAgent
FixAgent → "Обнаружен критический баг"
RolloutAgent → "Приостановить rollout, исправить"
Безопасность
Ограничения
- Только PR, не direct push — человек проверяет
- Scope ограничен — один файл за раз
- Тесты обязательны — без тестов PR не создаётся
- Логирование — все действия фиксируются
Что НЕ делает FixAgent
- Не удаляет файлы
- Не меняет чужие PR
- Не коммитит в main напрямую
- Не создаёт бесконечных PR (лимит: 3 на один баг)
Метрики
- Bugs fixed
- PRs created
- PRs merged
- Average fix time
- False positives
TODO
- Реализовать FixAgent
- Интегрировать с QATesterAgent
- Добавить анализ логов
- Создать шаблон PR
- Настроить безопасность
- Добавить метрики
- Написать тесты
Создано: 2026-05-10 Управляется FixAgent