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

181 lines
4.3 KiB
Markdown

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