Goal Engine
Goal Engine — подсистема автоматической декомпозиции цели на верифицируемые шаги, исполнения, валидации и отслеживания прогресса. Эволюция инструмента todo: вместо простого списка задач — управляемый цикл «цель → план → шаги → валидация → результат».
Создание цели
Попросите агента в чате: «рефактори модуль auth — разбей на шаги и валидируй» или используйте команду /goal new <описание>.
Агент вызовет инструмент goal(action="create"), Planner (LLM) декомпозирует цель в план шагей, и при approve_plan=true (по умолчанию) TUI покажет модальное окно для аппрува.
Параметры
goal(
action: "create" | "status" | "pause" | "resume" | "cancel" | "list" | "approve",
— для create:
title: string,
description: string,
— для pause/resume/cancel/status:
goal_id: string
)
Жизненный цикл
- Создание.
goal(create)→ запись в БД (status=planning). - Планирование. Planner генерирует JSON-план → шаги в
goal_steps. - Аппрув. Если
approve_plan=true→ TUI показывает план. Пользователь: Approve/Cancel. - Исполнение. Engine выполняет шаги последовательно. Шаги с
assigned_agent→ под-агенты. - Валидация. После шага → Validator проверяет критерии. Passed → completed, failed → retry.
- Завершение. Все шаги done → completed; есть failed → failed. Формируется отчёт.
Статусы цели
planning → in_progress → paused → in_progress → completed | failed | cancelled
Статусы шага
pending → running → validating → completed | failed → skipped
Валидаторы
| Валидатор | Проверка |
|---|---|
test |
Запуск тестов (go test ./...). |
linter |
Запуск линтера (go vet, golangci-lint). |
diff |
Анализ diff — были ли изменения. |
coverage |
Проверка покрытия тестами. |
Провал валидации → retry (до max_retries, по умолчанию 2). Исчерпаны повторы → шаг failed.
Управление шагами
Инструмент goal_step:
| Action | Что делает |
|---|---|
retry |
Перезапуск провалившегося шага. |
skip |
Пропуск шага (статус → skipped). |
update |
Обновление description/criteria шага. |
Команды TUI
| Команда | Описание |
|---|---|
/goal new <desc> |
Создать новую цель. |
/goal list |
Список всех целей. |
/goal show <id> |
Показать статус цели и её шагов. |
/goal pause <id> |
Приостановить цель. |
/goal resume <id> |
Возобновить приостановленную цель. |
/goal cancel <id> |
Отменить цель. |
/goal retry <sid> |
Повторить провалившийся шаг. |
Конфигурация
Раздел goal_engine в config.json:
1{
2 "goal_engine": {
3 "enabled": true,
4 "approve_plan": true,
5 "default_strategy": "sequential",
6 "max_steps": 20,
7 "max_retries": 2,
8 "validators": ["test", "linter", "diff", "coverage"]
9 }
10}
| Поле | По умолчанию | Описание |
|---|---|---|
enabled |
true |
Включить подсистему. |
approve_plan |
true |
Требовать аппрув плана. |
default_strategy |
"sequential" |
sequential / parallel / mixed. |
max_steps |
20 |
Максимум шагов в плане. |
max_retries |
2 |
Максимум повторов шага. |
validators |
["test","linter","diff","coverage"] |
Включённые валидаторы. |
TUI
- Сайдбар: блок Goals с прогресс-барами для каждой активной цели.
- Аппрув плана: модальное окно со списком шагов и кнопками Approve/Cancel.
Под-агенты
Шаги с assigned_agent делегируются под-агентам через многоагентную оркестрацию:
goal_steps.agent_task_idсвязывается сmultiagent_children.task_id.- Координация через
agent_manageсохраняется. - При завершении под-агента → шаг переходит в
validating→ Validator.
Ограничения (v1)
- Sequential по умолчанию. Шаги выполняются последовательно.
- До 20 шагов в одном плане (
max_steps). - Один уровень вложенности. Под-агенты не могут порождать своих детей.
- Planner использует
currentмодель. Без опции mini.