Files
voidea/docs/backlog/fix-agent-note.md
T

4.3 KiB

FixAgent Mechanism - VoIdea

Дата: 2026-05-10 Статус: Backlog


Обзор

Агент для автоматического анализа и исправления багов с созданием PR.


Архитектура

FixAgent responsibilities

  1. Анализ багов

    • Получение данных от QATesterAgent
    • Анализ логов
    • Определение причины
  2. Генерация исправлений

    • Написание кода
    • Создание тестов
    • Обновление документации
  3. Создание 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)

Анализ багов

Источники данных

  1. QATesterAgent

    • Failed тесты
    • Логи выполнения
    • Скриншоты (если есть)
  2. Логи системы

    • Error логи
    • Warning логи
    • Traceback
  3. Пользовательские отчёты

    • Feedback из админ-панели
    • Exception reports

Типы анализа

  • Static analysis — код ревью
  • Log analysis — поиск паттернов
  • Test replay — воспроизведение

Генерация исправлений

Правила

  1. Минимальные изменения — исправлять только проблему
  2. Не ломать существующее — регрессионные тесты
  3. Документация — обновлять комментарии и docs
  4. Тесты — добавлять новые тесты для предотвращения

Формат PR

## 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