Решения·Разработка
Работа, которая никогда не добирается до верха очереди.
Каждая сессия поднимает свой cloud computer, клонирует repo и режет свою ветку. Агент воспроизводит failure, пишет patch, гоняет suite и открывает change request. Вы ревьюите diff, а не transcript.
Одна машина на сессию
Одна ветка на сессию
Merge запрещён по умолчанию
ЗапускРеальная Linux-машина с shell
РаботаСвоя ветка, резанная на сессию
РезультатChange request в main
MergeЗапрет по умолчанию для агентов
Передача работы
Бэклог, который вы перестали делать вид, что возьмёте.
Не архитектура. Длинный хвост под ней — воспроизведения, bump'ы, флейки, механическая миграция по двумстам файлам. Работа с чёткой спецификацией, мелкая поштучно и вместе — причина, почему больше ничего не выходит. Именно такую сессия делает хорошо.
01Баг, который никто не воспроизвёл
Берёт репорт, собирает кейс на своей машине и возвращается с падающим тестом или причиной, почему воспроизвести не удалось. Сессия, которая не воспроизвела, так и говорит — не выдумывает fix для бага, которого не видела.
02Флейковый тест, который все перезапускают
Гоняет suite в цикле, изолирует, какой тест реально падает и как часто, и находит общее состояние или timing-предположение под ним. В change request — частота падений до и после.
03Bump зависимостей — с доказанной сборкой
Обновляет, собирает, гоняет suite, читает changelog на breaking notes, патчит call site'ы, которые сдвинулись. Если suite красный — всё равно открывает change request, с failures в описании, а не с заявлением «зелёный».
04Механическая миграция по двумстам файлам
Один rename, один перенос API, одно включённое lint-правило — тривиально на файл и невыносимо в масштабе. Работает файл за файлом на своей ветке и кладёт один diff на ревью.
05Исключения прошлой ночи, сгруппированные
Читает ошибки дня, кластеризует по root cause, а не по тексту сообщения, ранжирует по числу затронутых людей и доводит верхний пункт до patch.
06Доки, которые разъехались с кодом
Сравнивает описанное поведение с фактическим и правит документ под код — или помечает код как ошибочный. Оба варианта один тип коммита: здесь всё — файл.
Результат
Diff на ветке — suite уже прогнан.
Результат engineering-сессии — то, что разработка и так ревьюит. Новый артефакт учить не нужно, summary доверять не надо — изменение есть изменение, а тесты на машине, где его писали, либо прошли, либо нет.
neuro-os/session-9f4c2b7e · retry backoffChange request
packages/queue/src/retry.ts
-const delay = base * 2 ** attempt;
+// Full jitter. Without it every worker wakes on the same tick.
+const delay = Math.random() * base * 2 ** attempt;
packages/queue/src/retry.test.ts
+test("spreads retries across the window", () => {
+ const spread = sample(1_000).stddev / EXPECTED_MEAN;
+ expect(spread).toBeGreaterThan(0.4);
+});
2 файла · +7 −1 · 214 тестов прошли · имя ветки — id сессии.
Ревьюите изменение, а не отчёт о нём
Агент коммитит на ветку сессии и открывает change request в main. В ревью приходит diff с описанием — тот же объект, что открыл бы коллега.
Suite прогнан до того, как вы читаете
Песочница — реальная Linux-машина: агент сам ставит зависимости, собирает и гоняет suite. Change request, пришедший красным, так и написан в описании — без заявления «зелёный».
Одна ветка, одна машина, без коллизий
Сессии не делят working tree. Двадцать могут идти по одному repo одновременно — каждая на своей ветке и своём компьютере, не мешая друг другу.
Куда дотягивается
Repo, трекер и тред.
Engineering-сессия уже имеет самый сильный reach на платформе — большая часть работы внутри клонированного repo. Коннекторы закрывают остальное; каждый credential резолвится на сервере, не внутри машины.
Сам repo
Клонируется в песочницу при старте сессии, на свежей ветке. У агента shell, файловая система и полная история — может bisect'ить, гонять suite и читать коммит, который ввёл строку, которую собирается менять.
GitHub
Читает issues, комментарии и состояние ветки, пишет обратно, где вы разрешили. Neuro OS сам открывает change request; коннектор — для всего вокруг.
Linear
Тянет тикет, с которого началась сессия, читает acceptance criteria и постит ссылку на change request, когда работа готова. Тикет остаётся источником правды по scope.
Slack
Живой канал. Упомяните бота в треде — тред становится сессией; ответ и любой файл возвращаются в тот же тред.
Ваши сервисы
Укажите Neuro OS на OpenAPI или Postman spec, GraphQL endpoint, удалённый MCP-сервер или bare HTTP base URL. Каждая операция становится инструментом, который агент может вызвать.
За пределами каталога
Всё, чего нет в Easy connect, доступно через MCP, OpenAPI, GraphQL или raw HTTP — честный ответ для внутреннего сервиса без публичной записи в каталоге.
КоннекторыРазработка
githubRepoПодключено
linearТрекерПодключено
slackКаналПодключено
sandboxLinuxНа сессию
Как это работает
Спросите сейчас, следите за важным, остальное — по расписанию.
Та же механика сессий, три способа запуска. Изоляция и ревью не меняются от триггера.
01 · По запросу
Из треда, где вы уже сидите
Опишите баг в Slack-треде или запустите сессию из веб-приложения или CLI. На ваше сообщение — реакция, а не пост бота; ответ приходит в тот же тред.
02 · С участием человека
Останавливается там, где вы сказали
Поставьте действие в Ask — запуск встанет на вызове и покажет action с аргументами. Согласовали — тот же вызов завершается, сессия продолжается с того же места.
03 · Автоматически
Cron или подписанный webhook от алертов
Разбор ночных исключений в 06:00. Или подключите alerting к подписанному webhook — paging event открывает сессию с payload инцидента уже в prompt.
Запрос на согласованиеОжидает
Ожидает вашего согласования
Открыть change request · retry backoff jitter
214 тестов прошли · 2 файла · +7 −1 · действие: open PR
Согласовать
Отклонить
Контроль
Ничего не мержится само.
Интересный вопрос про автономного инженера — не что он может написать, а что может залить. Вот ответ, сформулированный точно.
Merge запрещён по умолчанию
Агент не может мержить в main. Разрешение существует — админ может выдать — но grant живёт в config, и расширение само изменение на ревью. Скрытого дефолта нет.
Этапы согласования выключены, пока вы их не включите
Из коробки — разрешающий режим: действие идёт, пока вы не сказали иначе. Поставьте Ask там, где нужна пауза, и Block там, где действие недопустимо. Мы честнее сказать дефолт, чем дать думать, что выбран безопасный.
Каждая сессия изолирована от других
Одна одноразовая Linux-машина на сессию, на своей ветке. Общее только снаружи — поэтому reach решают коннекторы, а не машина.
Учётные данные коннекторов не попадают в машину
Песочница несёт один токен с областью проекта без сторонних ключей. Шлюз расшифровывает credential на сервере и прикрепляет к исходящему вызову.
Каждый вызов инструмента записан
Шлюз, который резолвит credential, же пишет запись: action, агент, человек или триггер за сессией, исход и кто отпустил удерживаемый вызов.
Та же платформа
Другие команды
Один проект, один набор коннекторов, память, которая накапливается. Каждая команда пишет навыки под свою работу — вторую систему не поднимают.
ПродажиИсследование, черновики и гигиена CRM — с согласованием
МаркетингЧерновики, потом «да», потом пост
AI-поиск и аналитикаЧто отвечает AI — и что менять
ОперацииРутины по чеклистам; люди — исключения
ФинансыЛимиты, чеки и отчётные пакеты
ПоддержкаКруглосуточная triage с именованными эскалациями
ПродуктОргструктура, управление, бюджеты, задачи
РитмыЗапуски по расписанию со следом в журнале
HRКоординация — никогда решение о человеке
ITRunbook'и, которые исполняются — запись вы одобряете
Data ScienceАнализ, который можно перезапустить — с запросом
ДизайнКартинки, слайды и бренд-борды как задачи
ЮридическоеДела, цитаты и workflows, которыми вы владеете
Персональный ассистентИИ для личной жизни — Telegram, голос, напоминания
«Ничего не мержится само. Вы ревьюите diff на ветке — suite уже прогнан — а не transcript о том, что могло измениться.»
Отдайте тикет, который никто не взял.
Любая модель, ваши ключи. Neuro OS в вашем облаке, VPC или на вашей инфраструктуре.