Files
ozone-tech_owl_prime/docs/AUTONOMOUS_AI_AGENT_ARCHITECTURE.md
Даня Архипов 985f7c327d feat: maximize sorter demo realism and add safe agent MVP
Wire live classifyItem into continuous playback, add jam/E-stop cases,
presenter controls (seek/speed/hotkeys), quality modes, demo scripts,
audit docs, and a verify-only autonomous agent CLI with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:53:35 +00:00

7.9 KiB
Raw Blame History

Архитектура автономного AI-агента

Статус: MVP реализован (agent/cli.mjs)
Вердикт ёмкости: круглосуточный агент возможен с ограничениями
Рекомендуемый вариант LLM: C — гибридный (внешний API primary; локальная 7B+ только эксперименты)


1. Цель

Агент исследует, анализирует, планирует улучшения, проверяет тесты/сборку, пишет отчёты и готовит безопасные следующие шаги — без автоматического merge в main и без production deploy.

MVP не выполняет auto-patch кода (verify-only / plan-only).


2. Компоненты (целевая схема брифа → фактический MVP)

# Компонент Роль в брифе MVP сейчас
10.1 Orchestrator Цикл задач, лимиты, kill switch Есть — agent/cli.mjs
10.2 Research Agent Поиск подходов Задел в backlog задач
10.3 Project Analyst Анализ репо/метрик Baseline tests+build
10.4 Planner Выбор задачи по impact/risk proposeTasks()
10.5 Implementer Патчи Не авто — human
10.6 Test Agent Vitest/build gates Встроено в dry-run/run-once
10.7 Visual QA Playwright/screenshots Scripts вручную; не в цикле MVP
10.8 Physics QA Инварианты motion Покрыто частично unit-тестами
10.9 Critic Scorecard scoreCategories()
10.10 Release Manager Merge/deploy Запрещён всегда

3. Схема взаимодействия

                    ┌─────────────┐
                    │ Kill switch │ agent/state/KILL
                    └──────┬──────┘
                           │ blocks
┌──────────┐   plan    ┌───▼────────┐   verify    ┌────────────┐
│ Planner  │──────────►│ Orchestrator│───────────►│ Test/Build │
└──────────┘           └───┬────────┘             └─────┬──────┘
                           │                            │
                           ▼                            ▼
                    agent/reports/*.json         ACCEPT / REJECT
                           │
                           ▼
                    Human Implementer (feature branch)
                           │
                           X ──► main / production  (forbidden auto)

4. Жизненный цикл задачи

  1. Ingest: dry-run или run-once.
  2. Baseline: npm test + npm run build.
  3. Propose: выбрать задачу из backlog (impact/risk) или stabilize-baseline.
  4. Score: категории visual/physics/demo/… → total/100.
  5. Decide:
    • dry-run → PLAN_ONLY;
    • run-once → ACCEPT_BASELINE / REJECT_BASELINE.
  6. Persist: agent/reports/<id>.json, latest.json, audit.jsonl, status.json.
  7. Stop conditions: kill switch, красный baseline, лимиты LIMITS.

(Будущий уровень 2: Implementer создаёт patch branch → Test → Critic → human merge.)


5. Выбор моделей

Вариант Описание Вердикт на OwlPrime
A. Полностью локальный 7B+ на 2×1080 Технически возможно, тяжело; риск OOM
B. Внешние LLM API Планирование/код вне хоста Хорошо, нужен бюджет и секреты вне логов
C. Гибридный API для reasoning; локально tests/build/Playwright Рекомендуется

Локально всегда: Vitest, Vite build, git, статический preview.
Внешне: генерация гипотез/диффов (когда Implementer появится).


6. Хранение состояния

Путь Назначение
agent/state/status.json Текущее состояние (idle/dry-run/…)
agent/state/audit.jsonl Append-only журнал событий
agent/state/KILL Аварийная остановка
agent/reports/*.json Отчёты прогонов
agent/reports/latest.json Последний отчёт

Секреты из .env агент не должен читать в логи (forbidSecretAccess: true).


7. Очереди

MVP: очереди нет — один процесс, maxParallelWorkers: 1.
Будущее: файловая очередь agent/queue/ с lease и TTL, всё ещё single worker на этом хосте.


8. Безопасность

См. полный документ AI_AGENT_SAFETY_LIMITS.md. Кратко:

  • запрет merge main / master;
  • запрет production deploy;
  • kill switch;
  • лимиты файлов/диффа/времени цикла;
  • работа только в feature-ветках;
  • require green tests/build перед любым будущим патчем.

9. Бюджет

Статья Лимит MVP
dailyLlmBudgetUsd 5
Parallel LLM calls 1 effective
Cycle wall time ≤25 min

Превышение бюджета → stop + report, без «догоняющих» ретраев.


10. Мониторинг

Сигнал Как смотреть
Status npm run agent:status / node agent/cli.mjs status
Audit agent/state/audit.jsonl
Host load uptime, free -h (не в агенте)
Demo health npm run demo:health

Во время показа жюри: node agent/cli.mjs stop.


11. Rollback

Уровень Механизм
Git code тег backup/pre-maximum-demo-realism-20260715, ветки feature/*
Agent run stop/kill; отчёты не мутируют prod
Preview scripts/demo-stop.sh
Production только ручной redeploy предыдущего образа/dist

Авто-rollback кода в MVP не требуется, т.к. авто-патча нет.


12. План внедрения

Фаза Содержание Статус
0 Orchestrator + dry-run/run-once + limits Done
1 Подключить внешний LLM к Planner (без write) Open
2 Implementer пишет patch в agent/work/* branch Open
3 Visual QA 1 worker в цикле Open
4 Human approval gate → PR (не auto-merge) Open
5 Staging preview auto-update Open
∞ Production Никогда автоматически

13. Команды

npm run agent:dry-run
npm run agent:run-once
npm run agent:status
# или
node agent/cli.mjs dry-run|run-once|status|stop|resume|pause|report
./scripts/agent-dry-run.sh
./scripts/agent-run-once.sh

14. Вывод

Архитектура соответствует брифу на уровне безопасного оркестратора. Полная автономия «исследуй→патчь→деплой» на этом сервере нецелесообразна и запрещена. Гибридный Variant C + 1 worker + human merge — единственный устойчивый путь.