feat: add pipeline-judge agent and evolution workflow system

- 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
This commit is contained in:
¨NW¨
2026-04-06 00:23:50 +01:00
parent 1ab9939c92
commit fa68141d47
12 changed files with 1653 additions and 193 deletions

View File

@@ -151,25 +151,314 @@ docker-compose -f docker-compose.evolution.yml up -d
---
## Статус напраления
## NEW: Pipeline Fitness & Auto-Evolution Issues
**Текущий статус:** `PAUSED` - приостановлено до следующего спринта
### Issue 6: Pipeline Judge Agent — Объективная оценка fitness
**Причина паузы:**
Базовая инфраструктура создана:
- ✅ Структура директорий `agent-evolution/`
- ✅ Данные интегрированы в HTML
- ✅ Скрипты синхронизации созданы
- ✅ Docker контейнер настроен
- ✅ Документация написана
**Title:** Создать pipeline-judge агента для объективной оценки workflow
**Labels:** `agent`, `fitness`, `high-priority`
**Milestone:** Agent Evolution Dashboard
**Что осталось:**
- 🔄 Issue #2: Интеграция с Gitea API (требует backend)
- 🔄 Issue #3: Полная синхронизация (требует тестирования)
- 🔄 Issue #4: Расширенная документация
**Описание:**
Создать агента `pipeline-judge`, который объективно оценивает качество выполненного workflow на основе метрик, а не субъективных оценок.
**Резюме работы:**
Создана полноценная инфраструктура для отслеживания эволюции агентной системы. Дашборд работает автономно без сервера, включает данные о 28 агентах, 8 моделях, рекомендациях по оптимизации. Подготовлен foundation для будущей интеграции с Gitea.
**Отличие от 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: Добавить вкладку в дашборд
---
@@ -180,3 +469,15 @@ docker-compose -f docker-compose.evolution.yml up -d
- 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