Автономный агент, которому нечего запретить, — это не помощник, а источник ночных сюрпризов. CybOS начинался как попытка склеить личные скрипты и заметки, а вырос в другое: в операционный слой, на котором один человек тянет работу компании, и одновременно в лабораторию, где каждый приём сначала обкатывается на себе и только потом уезжает в клиентский контур.
Сейчас в индексе 66 навыков — воспроизводимых процедур, которые вызываются по имени, а не пересказываются заново; 16 репозиториев; 410 объектов системного индекса, который знает, что вообще существует в контуре. Поверх этого работает ночной цикл: доска задач ведёт себя как очередь, карточку забирает один из пяти классов исполнителей — разные модели и разные рантаймы, — и задача идёт между ними эстафетой, когда одного исполнителя не хватает.
Главное решение здесь не про выбор модели, а про границы. Агент коммитит в свою ветку и никогда не мержит — never-merge зашит в инструменты, которыми он оперирует, а не в текст промпта, где его можно молча проигнорировать. Сверху стоит confined loop: лимит итераций и таймауты, чтобы прогон умирал сам, а не тогда, когда я это замечу. Цена решения честная — часть ночной работы утром приходится домерживать руками, и автономия теряет в скорости ровно на этот шаг. Взамен ночь не может сломать то, что уже работает.
Что получилось померить. Сквозная доставка задачи в чужой репозиторий — от карточки до закрытого Done — стоит $2.99 и занимает 46 ходов агента и 17 минут. Край держат тесты: 443 у оркестратора, 863 у relay, 624 у session-inspector. За один месяц замера через контур прошло 554 сессии Claude Code — это рабочая нагрузка, а не витрина.
Что выключено намеренно. Ночь, в которую нечего делать, раньше всё равно поднимала весь контур и стоила $0.86 — деньги ровно за то, чтобы узнать, что очередь пуста. Теперь перед стартом стоит pre-check: пусто — не запускаемся, ноль долларов. Стоимость прогона я начал считать раньше, чем улучшать его качество: то, что не посчитано, разоряет незаметно.