diff --git a/personal/plans/personal-os-operating-plan-2026-10-03.md b/personal/plans/personal-os-operating-plan-2026-10-03.md index beb7a732..0fd7f06d 100644 --- a/personal/plans/personal-os-operating-plan-2026-10-03.md +++ b/personal/plans/personal-os-operating-plan-2026-10-03.md @@ -97,11 +97,11 @@ mission: "[[personal/projects/personal-os/personal-os-purpose]]" **Было:** `MAX_WORKERS=2`, `max_turns=200`, повторные respawn и подробные сообщения в чат; очередь ревью Алекса и токены не учитываются в плане дня. -**Станет:** перед запуском есть **два независимых лимита**: (A) человеческий — ожидаемые минуты ревью, уже ожидающие результаты, доступный reviewer slot с учётом энергии/фокуса; (B) агентный — токены/стоимость, время, число попыток и параллельность. Агентная задача имеет прогноз пользы, review minutes и токенов; задача может готовиться в фоне, но не предъявляет результат сверх reviewer capacity. После лимита или двух попыток без нового проверяемого прогресса — stop с точным blocker, без самоперезапуска. +**Станет:** перед запуском есть **два независимых лимита**: (A) человеческий — ожидаемые минуты ревью, уже ожидающие результаты, доступный reviewer slot с учётом энергии/фокуса; (B) агентный — токены/стоимость, время, число попыток и параллельность. Ledger хранит `provider/model`, input/output/cache tokens, оценку денег по фактическому тарифу, длительность, retries, прогноз и факт минут ревью. Агентная задача получает прогноз пользы и затрат; admission разрешён, только если оба остатка достаточны. На 80% дневного/недельного лимита новые coding jobs не стартуют, на 100% текущий job завершает безопасную точку и останавливается с артефактом/блокером. После двух попыток без нового проверяемого прогресса — stop без самоперезапуска. Готовый результат сверх reviewer capacity остаётся в очереди без уведомления Алекса. **Правки:** `migrations/004_agent_capacity.sql` (`agent_runs`, `agent_usage`, `review_queue`, лимиты, прогноз/факт); новый `agent-budget.js` как admission/stop policy; [`agent/executor_worker_runner.py`](file:///Users/admin/Developer/personal-os/agent/executor_worker_runner.py#L195) логирует usage из ResultMessage/провайдера и прерывает по budget, не выдаёт `max_turns` за успех; [`executor/executor-runner.sh`](file:///Users/admin/Developer/personal-os/executor/executor-runner.sh#L17) в будущей замене/адаптере ограничивает WIP и запрещает бесконечный respawn; правила в `agent/prompts/executor-*.md` требуют одного проверяемого артефакта и оценки времени ревью, без полного trace в чат. Balda/Broker/Virfield остаются своим параллельным проектом; Personal OS пользуется их зрелым интерфейсом после приёмки. -**Предлагаемые стартовые лимиты для пилота, не включены:** одновременно 1 coding worker; 1 результат, ожидающий Алекса; до 20 минут ревью в рабочий день; максимум 1 автоматическая повторная попытка; 30 000 учтённых токенов на задачу, 60 000 в день, 120 000 в неделю. После 3 измеренных задач пересчитать лимиты по реальной стоимости и времени ревью; стоимость в деньгах считать по фактическому провайдеру/плану, без выдуманной цены за токен. Если провайдер не отдаёт usage, пометить `unmetered` и не запускать следующий unattended loop. В день с низкой энергией reviewer slot можно обнулить без накопления срочных запросов. +**Предлагаемые стартовые лимиты для пилота, не включены:** одновременно 1 coding worker; 1 результат, ожидающий Алекса; до 20 минут ревью в рабочий день; максимум 1 автоматическая повторная попытка; 30 000 суммарных input+output токенов на задачу, 60 000 в день, 120 000 в неделю (cache tokens хранить отдельно для расчёта стоимости). После 3 измеренных задач пересчитать лимиты по реальной стоимости и времени ревью; стоимость в деньгах считать по фактическому провайдеру/плану, без выдуманной цены за токен. Если провайдер не отдаёт usage, пометить `unmetered` и не запускать следующий unattended loop. В день с низкой энергией reviewer slot можно обнулить без накопления срочных запросов. **Приёмка:** два законченных агентных результата не вызывают два одновременных запроса к Алексу; второй ждёт свободного slot. Задача с повтором без diff/test progress останавливается; ledger показывает токены, время, оценку и факт человеческого ревью. Агентная работа не съедает защищённый focus block и не делает вечер новым рабочим временем.