# FixAgent Mechanism - VoIdea **Дата:** 2026-05-10 **Статус:** Backlog --- ## Обзор Агент для автоматического анализа и исправления багов с созданием PR. --- ## Архитектура ### FixAgent responsibilities 1. **Анализ багов** - Получение данных от QATesterAgent - Анализ логов - Определение причины 2. **Генерация исправлений** - Написание кода - Создание тестов - Обновление документации 3. **Создание PR** - Формирование pull request - Описание изменений - Добавление тестов --- ## Процесс работы ```python 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) ``` --- ## Анализ багов ### Источники данных 1. **QATesterAgent** - Failed тесты - Логи выполнения - Скриншоты (если есть) 2. **Логи системы** - Error логи - Warning логи - Traceback 3. **Пользовательские отчёты** - Feedback из админ-панели - Exception reports ### Типы анализа - **Static analysis** — код ревью - **Log analysis** — поиск паттернов - **Test replay** — воспроизведение --- ## Генерация исправлений ### Правила 1. **Минимальные изменения** — исправлять только проблему 2. **Не ломать существующее** — регрессионные тесты 3. **Документация** — обновлять комментарии и docs 4. **Тесты** — добавлять новые тесты для предотвращения ### Формат PR ```markdown ## Fix: [Краткое описание] ### Проблема [Описание бага] ### Причина [Найденная причина] ### Решение [Описание исправления] ### Тесты - [ ] Добавлен тест для предотвращения - [ ] Существующие тесты проходят ### Логи [Связанные логи] ``` --- ## Взаимодействие с другими агентами ### QATesterAgent ``` FixAgent → "Исправь баг X" QATesterAgent → "Проверь исправление" ``` ### DocAgent ``` FixAgent → "Обнови документацию" DocAgent → "Документация обновлена" ``` ### RolloutAgent ``` FixAgent → "Обнаружен критический баг" RolloutAgent → "Приостановить rollout, исправить" ``` --- ## Безопасность ### Ограничения 1. **Только PR, не direct push** — человек проверяет 2. **Scope ограничен** — один файл за раз 3. **Тесты обязательны** — без тестов PR не создаётся 4. **Логирование** — все действия фиксируются ### Что НЕ делает FixAgent - Не удаляет файлы - Не меняет чужие PR - Не коммитит в main напрямую - Не создаёт бесконечных PR (лимит: 3 на один баг) --- ## Метрики - Bugs fixed - PRs created - PRs merged - Average fix time - False positives --- ## TODO - [ ] Реализовать FixAgent - [ ] Интегрировать с QATesterAgent - [ ] Добавить анализ логов - [ ] Создать шаблон PR - [ ] Настроить безопасность - [ ] Добавить метрики - [ ] Написать тесты --- *Создано: 2026-05-10* *Управляется FixAgent*