Files
ozone-tech_owl_prime/docs/AI_AGENT_SAFETY_LIMITS.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

6.3 KiB
Raw Blame History

Лимиты безопасности AI-агента

Файл реализации лимитов: agent/cli.mjs → объект LIMITS
Дата: 2026-07-15

Документ обязателен к соблюдению при любом расширении агента за пределы MVP.


1. Однозначная политика

Действие Разрешено автоматически?
Читать репозиторий, запускать tests/build Да
Писать отчёты в agent/reports Да
Планировать задачи (dry-run) Да
Патчить исходники (MVP) Нет
Merge в main/master Никогда
Deploy production (:3100 / tunnel) Никогда
Печать значений секретов / .env Никогда
Менять firewall/SSH/системные секреты Никогда
Force-push Никогда

2. Числовые лимиты (MVP)

Параметр Значение Смысл
maxCycleMinutes 25 Стена времени одного цикла
maxChangedFiles 12 Потолок будущего патча
maxDiffLines 800 Анти-мегадифф
maxParallelWorkers 1 Ёмкость сервера
dailyLlmBudgetUsd 5 Бюджет API
minScoreDelta 0 Порог «улучшения» для accept (будущее)
requireTestsPass true Gate
requireBuildPass true Gate
forbidMergeToMain true Hard
forbidProductionDeploy true Hard
forbidSecretAccess true Hard

Playwright (когда будет в цикле): 1 worker, не параллелить с локальной LLM.


3. Kill switch

Операция Команда / файл
Остановить node agent/cli.mjs stop → создаёт agent/state/KILL
Возобновить node agent/cli.mjs resume → удаляет KILL
Пауза статуса node agent/cli.mjs pause

При наличии KILL режимы dry-run / run-once завершаются с ошибкой.

Перед живой демонстрацией: всегда stop.


4. Изоляция изменений

Правило Деталь
Ветка Только feature/* или agent/*; не main
Backup Тег backup/pre-maximum-demo-realism-20260715 уже создан
Worktree (рекомендация L2) Отдельный worktree для патчей
Production dist Не трогать volume/nginx без человека
Preview :3101 допустим для проверки; не путать с :3100

5. Что можно / нельзя автоматизировать

Безопасно автоматизировать

  • Запуск Vitest и production build.
  • Генерация JSON-отчётов и scorecard.
  • Обновление backlog приоритетов.
  • Health-check URL (без секретов).
  • Сбор метрик размеров dist (без PII).

Только с проверкой человека

  • Любой diff по src/.
  • Изменение demo playlist / classifier thresholds.
  • Включение shadows/effects (FPS).
  • Зависимости package.json.
  • Nginx/Docker/Compose манифесты.
  • Создание PR (без auto-merge).

Никогда автоматически

  • Merge в main.
  • Deploy на https://arhipovdan.ru/ / :3100.
  • Ротация credentials, правка .env.
  • git push --force.
  • Отключение или ослабление тестов «чтобы стало зелёным».
  • Удаление backup-тегов.
  • Запуск локальной LLM параллельно с демо-нагрузкой.

6. Журналирование и аудит

Артефакт Требование
audit.jsonl Append-only; каждое start/stop/complete
Reports Хранить hypothesis, decision, limits snapshot
Запрет Значения login/password/url из .env

При инциденте: приложить status.json + хвост audit.jsonl + latest.json без .env.


7. Ресурсные лимиты хоста (операционные)

Согласовано с SERVER_CAPACITY_REPORT.md:

Ресурс Лимит для агента
Workers 1
RAM budget ≤4 GiB суммарно с Chromium
GPU не обязателен; не держать 7B 24/7
Расписание не во время режима «Демонстрация»
Disk ротация старых agent/reports при росте

8. Реакция на отказы

Ситуация Действие агента
Tests red REJECT_BASELINE, не планировать фичи
Build red то же
Kill switch немедленный выход
Budget exceeded stop + report
Попытка deploy/merge невозможна в коде MVP; при добавлении — hard fail

9. Чеклист расширения Implementer (уровень 2)

Перед включением auto-patch обязательно:

  1. Отдельный git worktree.
  2. Проверка forbidMergeToMain интеграционными тестами агента.
  3. Max files/diff enforced до git commit.
  4. Авто-PR без auto-merge.
  5. Visual QA optional flag, default off on demo days.
  6. Документированный human approver.

Пока пункты не выполнены — Implementer остаётся выключенным (текущее состояние).


10. Вывод

Безопасность агента важнее скорости итераций. На OwlPrime допустим только узкий, наблюдаемый, обратимый контур. MVP это соблюдает: verify-only + kill switch + запрет prod.