- Add pipeline-judge agent for objective fitness scoring - Update capability-index.yaml with pipeline-judge, evolution config - Add fitness-evaluation.md workflow for auto-optimization - Update evolution.md command with /evolve CLI - Create .kilo/logs/fitness-history.jsonl for metrics logging - Update AGENTS.md with new workflow state machine - Add 6 new issues to MILESTONE_ISSUES.md for evolution integration - Preserve ideas in agent-evolution/ideas/ Pipeline Judge computes fitness = (test_rate*0.5) + (gates*0.25) + (efficiency*0.25) Auto-triggers prompt-optimizer when fitness < 0.70
483 lines
18 KiB
Markdown
483 lines
18 KiB
Markdown
# Agent Evolution Dashboard - Milestone & Issues
|
||
|
||
## Milestone: Agent Evolution Dashboard
|
||
|
||
**Title:** Agent Evolution Dashboard
|
||
**Description:** Интерактивная панель для отслеживания эволюции агентной системы APAW с интеграцией Gitea
|
||
**Due Date:** 2026-04-19 (2 недели)
|
||
**State:** Open
|
||
|
||
---
|
||
|
||
## Issues
|
||
|
||
### Issue 1: Рефакторинг из архива в root-директорию
|
||
|
||
**Title:** Рефакторинг: перенести agent model research из archive в agent-evolution
|
||
**Labels:** `refactor`, `high-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Файл `archive/apaw_agent_model_research_v3.html` содержит ценную информацию о моделях и рекомендациях. Необходимо:
|
||
|
||
1. ✅ Создать директорию `agent-evolution/` в корне проекта
|
||
2. ✅ Создать `agent-evolution/index.standalone.html` с интегрированными данными
|
||
3. ✅ Создать `agent-evolution/data/agent-versions.json` с актуальными данными
|
||
4. ✅ Создать `agent-evolution/scripts/build-standalone.cjs` для генерации
|
||
5. 🔄 Удалить `archive/apaw_agent_model_research_v3.html` после переноса данных
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Все данные из архива интегрированы
|
||
- [ ] Дашборд работает автономно (file://)
|
||
- [ ] Данные актуальны на момент коммита
|
||
|
||
---
|
||
|
||
### Issue 2: Интеграция с Gitea для истории изменений
|
||
|
||
**Title:** Интеграция Agent Evolution с Gitea API
|
||
**Labels:** `enhancement`, `integration`, `high-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Требуется интегрировать дашборд с Gitea для:
|
||
|
||
1. Получения истории изменений моделей из issue comments
|
||
2. Парсинга комментариев агентов (формат `## ✅ agent-name completed`)
|
||
3. Извлечения метрик производительности (Score, Duration, Files)
|
||
4. Отображения реальной истории в дашборде
|
||
|
||
**Требования:**
|
||
- API endpoint `/api/evolution/history` для получения истории
|
||
- Webhook для автоматического обновления при новых комментариях
|
||
- Кэширование данных локально
|
||
- Fallback на локальные данные при недоступности Gitea
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] История загружается из Gitea при наличии API
|
||
- [ ] Fallback на локальные данные
|
||
- [ ] Webhook обрабатывает `issue_comment` события
|
||
- [ ] Данные обновляются в реальном времени
|
||
|
||
---
|
||
|
||
### Issue 3: Синхронизация с capability-index.yaml и kilo.jsonc
|
||
|
||
**Title:** Автоматическая синхронизация эволюции агентов
|
||
**Labels:** `automation`, `sync`, `medium-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Создать автоматическую синхронизацию данных эволюции из:
|
||
|
||
1. `.kilo/agents/*.md` - frontmatter с моделями
|
||
2. `.kilo/capability-index.yaml` - capabilities и routing
|
||
3. `.kilo/kilo.jsonc` - model assignments
|
||
4. Git history - история изменений
|
||
5. Gitea issue comments - performance metrics
|
||
|
||
**Скрипты:**
|
||
- `agent-evolution/scripts/sync-agent-history.ts` - основная синхронизация
|
||
- `agent-evolution/scripts/build-standalone.cjs` - генерация HTML
|
||
|
||
**NPM Scripts:**
|
||
```json
|
||
"sync:evolution": "bun run agent-evolution/scripts/sync-agent-history.ts && node agent-evolution/scripts/build-standalone.cjs",
|
||
"evolution:dashboard": "bunx serve agent-evolution -l 3001",
|
||
"evolution:open": "start agent-evolution/index.standalone.html"
|
||
```
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Синхронизация работает корректно
|
||
- [ ] HTML генерируется автоматически
|
||
- [ ] Данные консистентны
|
||
|
||
---
|
||
|
||
### Issue 4: Документация и README
|
||
|
||
**Title:** Документация Agent Evolution Dashboard
|
||
**Labels:** `documentation`, `low-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Создать полную документацию:
|
||
|
||
1. ✅ `agent-evolution/README.md` - основная документация
|
||
2. 🔄 `docs/agent-evolution.md` - техническая документация
|
||
3. 🔄 Инструкция по запуску в `AGENTS.md`
|
||
4. ✅ Schema: `agent-evolution/data/agent-versions.schema.json`
|
||
5. ✅ Skills: `.kilo/skills/evolution-sync/SKILL.md`
|
||
6. ✅ Rules: `.kilo/rules/evolutionary-sync.md`
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] README покрывает все сценарии использования
|
||
- [ ] Техническая документация описывает API
|
||
- [ ] Есть примеры кода
|
||
|
||
---
|
||
|
||
### Issue 5: Docker контейнер для дашборда
|
||
|
||
**Title:** Docker-изация Agent Evolution Dashboard
|
||
**Labels:** `docker`, `deployment`, `low-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Упаковать дашборд в Docker для простого деплоя:
|
||
|
||
**Файлы:**
|
||
- ✅ `agent-evolution/Dockerfile`
|
||
- ✅ `docker-compose.evolution.yml`
|
||
- ✅ `agent-evolution/docker-run.sh` (Linux/macOS)
|
||
- ✅ `agent-evolution/docker-run.bat` (Windows)
|
||
|
||
**Команды:**
|
||
```bash
|
||
# Linux/macOS
|
||
bash agent-evolution/docker-run.sh restart
|
||
|
||
# Windows
|
||
agent-evolution\docker-run.bat restart
|
||
|
||
# Docker Compose
|
||
docker-compose -f docker-compose.evolution.yml up -d
|
||
```
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Docker образ собирается
|
||
- [ ] Контейнер запускается на порту 3001
|
||
- [ ] Данные монтируются корректно
|
||
|
||
---
|
||
|
||
## NEW: Pipeline Fitness & Auto-Evolution Issues
|
||
|
||
### Issue 6: Pipeline Judge Agent — Объективная оценка fitness
|
||
|
||
**Title:** Создать pipeline-judge агента для объективной оценки workflow
|
||
**Labels:** `agent`, `fitness`, `high-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Создать агента `pipeline-judge`, который объективно оценивает качество выполненного workflow на основе метрик, а не субъективных оценок.
|
||
|
||
**Отличие от evaluator:**
|
||
- `evaluator` — субъективные оценки 1-10 на основе наблюдений
|
||
- `pipeline-judge` — объективные метрики: тесты, токены, время, quality gates
|
||
|
||
**Файлы:**
|
||
- `.kilo/agents/pipeline-judge.md` — ✅ создан
|
||
|
||
**Fitness Formula:**
|
||
```
|
||
fitness = (test_pass_rate × 0.50) + (quality_gates_rate × 0.25) + (efficiency_score × 0.25)
|
||
```
|
||
|
||
**Метрики:**
|
||
- Test pass rate: passed/total тестов
|
||
- Quality gates: build, lint, typecheck, tests_clean, coverage
|
||
- Efficiency: токены и время относительно бюджетов
|
||
|
||
**Критерии приёмки:**
|
||
- [x] Агент создан в `.kilo/agents/pipeline-judge.md`
|
||
- [ ] Добавлен в `capability-index.yaml`
|
||
- [ ] Интегрирован в workflow после завершения пайплайна
|
||
- [ ] Логирует результаты в `.kilo/logs/fitness-history.jsonl`
|
||
- [ ] Триггерит `prompt-optimizer` при fitness < 0.70
|
||
|
||
---
|
||
|
||
### Issue 7: Fitness History Logging — накопление метрик
|
||
|
||
**Title:** Создать систему логирования fitness-метрик
|
||
**Labels:** `logging`, `metrics`, `high-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Создать систему накопления fitness-метрик для отслеживания эволюции пайплайна во времени.
|
||
|
||
**Формат лога (`.kilo/logs/fitness-history.jsonl`):**
|
||
```jsonl
|
||
{"ts":"2026-04-06T00:00:00Z","issue":42,"workflow":"feature","fitness":0.82,"tokens":38400,"time_ms":245000,"tests_passed":45,"tests_total":47}
|
||
{"ts":"2026-04-06T01:30:00Z","issue":43,"workflow":"bugfix","fitness":0.91,"tokens":12000,"time_ms":85000,"tests_passed":47,"tests_total":47}
|
||
```
|
||
|
||
**Действия:**
|
||
1. ✅ Создать директорию `.kilo/logs/` если не существует
|
||
2. 🔄 Создать `.kilo/logs/fitness-history.jsonl`
|
||
3. 🔄 Обновить `pipeline-judge.md` для записи в лог
|
||
4. 🔄 Создать скрипт `agent-evolution/scripts/sync-fitness-history.ts`
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Файл `.kilo/logs/fitness-history.jsonl` создан
|
||
- [ ] pipeline-judge пишет в лог после каждого workflow
|
||
- [ ] Скрипт синхронизации интегрирован в `sync:evolution`
|
||
- [ ] Дашборд отображает фитнесс-тренды
|
||
|
||
---
|
||
|
||
### Issue 8: Evolution Workflow — автоматическое самоулучшение
|
||
|
||
**Title:** Реализовать эволюционный workflow для автоматической оптимизации
|
||
**Labels:** `workflow`, `automation`, `high-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Реализовать непрерывный цикл самоулучшения пайплайна на основе фитнесс-метрик.
|
||
|
||
**Workflow:**
|
||
```
|
||
[Workflow Completes]
|
||
↓
|
||
[pipeline-judge] → fitness score
|
||
↓
|
||
┌───────────────────────────┐
|
||
│ fitness >= 0.85 │──→ Log + done
|
||
│ fitness 0.70-0.84 │──→ [prompt-optimizer] minor tuning
|
||
│ fitness < 0.70 │──→ [prompt-optimizer] major rewrite
|
||
│ fitness < 0.50 │──→ [agent-architect] redesign
|
||
└───────────────────────────┘
|
||
↓
|
||
[Re-run workflow with new prompts]
|
||
↓
|
||
[pipeline-judge] again
|
||
↓
|
||
[Compare before/after]
|
||
↓
|
||
[Commit or revert]
|
||
```
|
||
|
||
**Файлы:**
|
||
- `.kilo/workflows/fitness-evaluation.md` — документация workflow
|
||
- Обновить `capability-index.yaml` — добавить `iteration_loops.evolution`
|
||
|
||
**Конфигурация:**
|
||
```yaml
|
||
evolution:
|
||
enabled: true
|
||
auto_trigger: true
|
||
fitness_threshold: 0.70
|
||
max_evolution_attempts: 3
|
||
fitness_history: .kilo/logs/fitness-history.jsonl
|
||
budgets:
|
||
feature: {tokens: 50000, time_s: 300}
|
||
bugfix: {tokens: 20000, time_s: 120}
|
||
refactor: {tokens: 40000, time_s: 240}
|
||
security: {tokens: 30000, time_s: 180}
|
||
```
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Workflow определён в `.kilo/workflows/`
|
||
- [ ] Интегрирован в основной pipeline
|
||
- [ ] Автоматически триггерит prompt-optimizer
|
||
- [ ] Сравнивает before/after fitness
|
||
- [ ] Коммитит только улучшения
|
||
|
||
---
|
||
|
||
### Issue 9: /evolve Command — ручной запуск эволюции
|
||
|
||
**Title:** Обновить команду /evolve для работы с fitness
|
||
**Labels:** `command`, `cli`, `medium-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Расширить существующую команду `/evolution` (логирование моделей) до полноценной `/evolve` команды с анализом fitness.
|
||
|
||
**Текущий `/evolution`:**
|
||
- Логирует изменения моделей
|
||
- Генерирует отчёты
|
||
|
||
**Новый `/evolve`:**
|
||
```bash
|
||
/evolve # evolve last completed workflow
|
||
/evolve --issue 42 # evolve workflow for issue #42
|
||
/evolve --agent planner # focus evolution on one agent
|
||
/evolve --dry-run # show what would change without applying
|
||
/evolve --history # print fitness trend chart
|
||
```
|
||
|
||
**Execution:**
|
||
1. Judge: `Task(subagent_type: "pipeline-judge")` → fitness report
|
||
2. Decide: threshold-based routing
|
||
3. Re-test: тот же workflow с обновлёнными промптами
|
||
4. Log: append to fitness-history.jsonl
|
||
|
||
**Файлы:**
|
||
- Обновить `.kilo/commands/evolution.md` — добавить fitness логику
|
||
- Создать алиас `/evolve` → `/evolution --fitness`
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Команда `/evolve` работает с fitness
|
||
- [ ] Опции `--issue`, `--agent`, `--dry-run`, `--history`
|
||
- [ ] Интегрирована с `pipeline-judge`
|
||
- [ ] Отображает тренд fitness
|
||
|
||
---
|
||
|
||
### Issue 10: Update Capability Index — интеграция pipeline-judge
|
||
|
||
**Title:** Добавить pipeline-judge и evolution конфигурацию в capability-index.yaml
|
||
**Labels:** `config`, `integration`, `high-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Обновить `capability-index.yaml` для поддержки нового эволюционного workflow.
|
||
|
||
**Добавить:**
|
||
```yaml
|
||
agents:
|
||
pipeline-judge:
|
||
capabilities:
|
||
- test_execution
|
||
- fitness_scoring
|
||
- metric_collection
|
||
- bottleneck_detection
|
||
receives:
|
||
- completed_workflow
|
||
- pipeline_logs
|
||
produces:
|
||
- fitness_report
|
||
- bottleneck_analysis
|
||
- improvement_triggers
|
||
forbidden:
|
||
- code_writing
|
||
- code_changes
|
||
- prompt_changes
|
||
model: ollama-cloud/nemotron-3-super
|
||
mode: subagent
|
||
|
||
capability_routing:
|
||
fitness_scoring: pipeline-judge
|
||
test_execution: pipeline-judge
|
||
bottleneck_detection: pipeline-judge
|
||
|
||
iteration_loops:
|
||
evolution:
|
||
evaluator: pipeline-judge
|
||
optimizer: prompt-optimizer
|
||
max_iterations: 3
|
||
convergence: fitness_above_0.85
|
||
|
||
workflow_states:
|
||
evaluated: [evolving, completed]
|
||
evolving: [evaluated]
|
||
|
||
evolution:
|
||
enabled: true
|
||
auto_trigger: true
|
||
fitness_threshold: 0.70
|
||
max_evolution_attempts: 3
|
||
fitness_history: .kilo/logs/fitness-history.jsonl
|
||
budgets:
|
||
feature: {tokens: 50000, time_s: 300}
|
||
bugfix: {tokens: 20000, time_s: 120}
|
||
refactor: {tokens: 40000, time_s: 240}
|
||
security: {tokens: 30000, time_s: 180}
|
||
```
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] pipeline-judge добавлен в секцию agents
|
||
- [ ] capability_routing обновлён
|
||
- [ ] iteration_loops.evolution добавлен
|
||
- [ ] workflow_states обновлены
|
||
- [ ] Секция evolution конфигурирована
|
||
- [ ] YAML валиден
|
||
|
||
---
|
||
|
||
### Issue 11: Dashboard Evolution Tab — визуализация fitness
|
||
|
||
**Title:** Добавить вкладку Fitness Evolution в дашборд
|
||
**Labels:** `dashboard`, `visualization`, `medium-priority`
|
||
**Milestone:** Agent Evolution Dashboard
|
||
|
||
**Описание:**
|
||
Расширить дашборд для отображения фитнесс-метрик и трендов эволюции.
|
||
|
||
**Новая вкладка "Evolution":**
|
||
- **Fitness Trend Chart** — график fitness по времени
|
||
- **Workflow Comparison** — сравнение fitness разных workflow типов
|
||
- **Agent Bottlenecks** — агенты с наибольшим потреблением токенов
|
||
- **Optimization History** — история оптимизаций промптов
|
||
|
||
**Data Source:**
|
||
- `.kilo/logs/fitness-history.jsonl`
|
||
- `.kilo/logs/efficiency_score.json`
|
||
|
||
**UI Components:**
|
||
```javascript
|
||
// Fitness Trend Chart
|
||
// X-axis: timestamp
|
||
// Y-axis: fitness score (0.0 - 1.0)
|
||
// Series: issues by type (feature, bugfix, refactor)
|
||
|
||
// Agent Heatmap
|
||
// Rows: agents
|
||
// Cols: metrics (tokens, time, contribution)
|
||
// Color: intensity
|
||
```
|
||
|
||
**Критерии приёмки:**
|
||
- [ ] Вкладка "Evolution" добавлена в дашборд
|
||
- [ ] График fitness-trend работает
|
||
- [ ] Agent bottlenecks отображаются
|
||
- [ ] Данные загружаются из fitness-history.jsonl
|
||
|
||
---
|
||
|
||
## Статус направления
|
||
|
||
**Текущий статус:** `ACTIVE` — новые ишьюсы для интеграции fitness-системы
|
||
|
||
**Приоритеты на спринт:**
|
||
| Priority | Issue | Effort | Impact |
|
||
|----------|-------|--------|--------|
|
||
| **P0** | #6 Pipeline Judge Agent | Low | High |
|
||
| **P0** | #7 Fitness History Logging | Low | High |
|
||
| **P0** | #10 Capability Index Update | Low | High |
|
||
| **P1** | #8 Evolution Workflow | Medium | High |
|
||
| **P1** | #9 /evolve Command | Medium | Medium |
|
||
| **P2** | #11 Dashboard Evolution Tab | Medium | Medium |
|
||
|
||
**Зависимости:**
|
||
```
|
||
#6 (pipeline-judge) ──► #7 (fitness-history) ──► #11 (dashboard)
|
||
│
|
||
└──► #10 (capability-index)
|
||
│
|
||
┌───────────────┘
|
||
▼
|
||
#8 (evolution-workflow) ──► #9 (evolve-command)
|
||
```
|
||
|
||
**Рекомендуемый порядок выполнения:**
|
||
1. Issue #6: Создать `pipeline-judge.md` ✅ DONE
|
||
2. Issue #10: Обновить `capability-index.yaml`
|
||
3. Issue #7: Создать `fitness-history.jsonl` и интегрировать логирование
|
||
4. Issue #8: Создать workflow `fitness-evaluation.md`
|
||
5. Issue #9: Обновить команду `/evolution`
|
||
6. Issue #11: Добавить вкладку в дашборд
|
||
|
||
---
|
||
|
||
## Quick Links
|
||
|
||
- Dashboard: `agent-evolution/index.standalone.html`
|
||
- Data: `agent-evolution/data/agent-versions.json`
|
||
- Build Script: `agent-evolution/scripts/build-standalone.cjs`
|
||
- Docker: `docker-compose -f docker-compose.evolution.yml up -d`
|
||
- NPM: `bun run sync:evolution`
|
||
- **NEW** Pipeline Judge: `.kilo/agents/pipeline-judge.md`
|
||
- **NEW** Fitness Log: `.kilo/logs/fitness-history.jsonl`
|
||
|
||
---
|
||
|
||
## Changelog
|
||
|
||
### 2026-04-06
|
||
- ✅ Created `pipeline-judge.md` agent
|
||
- ✅ Updated MILESTONE_ISSUES.md with 6 new issues (#6-#11)
|
||
- ✅ Added dependency graph and priority matrix
|
||
- ✅ Changed status from PAUSED to ACTIVE |