Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user