Инженерный эксперимент · Cockroach Labs

Баги как пациенты.
Агенты как медицинская команда.

Пять месяцев MOLT Sinai: как GitHub Actions, независимое ревью и строгие правила превращают работу coding-агентов в проверяемый процесс.

Adam Storm · Rafi Shamim9 октября 2026Оригинал: 12 минутВизуальный конспект
В статье ↗
Главный тезис

Качество создают проверки между этапами: отдельный агент утверждает план и код, ещё один проверяет соблюдение процесса. Для клиентского продукта команда добавила человеческое ревью каждого слияния.

01

Главное за минуту

В статье ↗

Разделить исполнение и проверку

Fellow исследует и исправляет. Review Attending, другой экземпляр агента, ищет дефекты. Discharge Nurse проверяет, что ревью и CI действительно завершены.

Планировать до изменения кода

Воспроизведение ошибки, диагноз, файлы, тесты и риски фиксируются до реализации. Изменился объём работы — план снова проходит ревью.

Ограничить размер и число попыток

Изменение больше 1 000 строк, включая тесты, дробят по графу зависимостей. Для затянувшихся циклов ревью ввели явный порог эскалации.

Считать всю стоимость процесса

За эксперимент потратили более $135 000 на токены. Очереди ревью, избыточные инструкции и задачи, которые агенты находят сами, требуют отдельных ограничений.

02

Одна задача проходит шесть этапов

В статье ↗

Задача хранится в GitHub issue. Метки задают состояние и запускают workflows; записи и служебные файлы сохраняют ход работы.

Исходная схема MOLT Sinai. Строки разделяют роли; стрелки показывают переходы, пунктир — возвраты и эскалации. Внизу приведены входящие и исходящие метки issue. Нажмите на изображение, чтобы увеличить. Оригинал ↗

Кратко о ролях

Карточки поясняют роли на исходной схеме. Отклонённый план возвращается к исследованию; замечания к коду и красный CI — к реализации; тупик ведёт к эскалации.

Chief of Medicine — человек, который разрешает тупики и принимает задачи в работу. Charge Nurse каждые 30 минут ищет зависшие этапы. Infection Control останавливает workflows при поломке main. Safety проводит еженедельные разборы, Research предлагает новые задачи.

Роль задаётся Markdown-скиллом. По наблюдению авторов, короткое описание роли помогает модели применять уже знакомые ей правила диагностики, передачи дела и второго мнения. Эта же метафора иногда порождает лишнюю бюрократию.

03

Что удерживает ошибку от main

В статье ↗

Тест должен ловить именно изменение

Нельзя отключать или ослаблять тест ради зелёного результата. Ревью начинается с отключения исправления: новые тесты должны упасть. Если неверен сам тест, его исправляют отдельным коммитом с отдельным обоснованием и ревью.

Передача дела требует обратной связи

Застрявший агент пишет I-PASS: серьёзность, сводка, действия, риски ситуации и подтверждение понимания. Получатель сначала пересказывает, что понял, затем продолжает работу.

Проверяется и работа проверяющего

Последний этап сверяет наличие approval, заполненный шаблон, разрешённые обсуждения, CI и чистую историю. Невыполненный пункт блокирует слияние; повторное ревью кода этот этап не заменяет.

Решения человека становятся прецедентами

Перед эскалацией агент читает журнал прежних решений и применяет подходящий прецедент со ссылкой. Новые прецеденты создаёт только человек.

Ревью плана отклоняет менее 10% проверенных планов. Авторы считают эти редкие отказы особенно полезными: они меняют подход до того, как появится код.

Для изменений свыше 1 000 строк обязательна повторная декомпозиция. В issue остаются планы, протокол падающего теста, передачи дела, вердикты, модель, токены, время и стоимость. Подробные записи хранятся в сопутствующей архивной ветке, чтобы diff PR содержал код.

04

Что удалось сделать за пять месяцев

В статье ↗

Данные авторов для зеркала репозитория MOLT с 21 апреля по 11 сентября. Объём кода и число отмен не измеряют все возможные дефекты.

ПоказательРезультат
Слитые PR с реализацией1 238
Закрытые задачи1 322
Задачи, созданные агентами1 299
Слитые PR, которые позже отменили7
Задачи, дошедшие до человека-Chief92
Медианный размер PR527 добавленных строк

Система внесла более миллиона строк. Почти половину задач агенты создали сами: подзадачи, найденные пробелы, предложения Research и исправления по итогам Safety. Уже со второго месяца люди перестали быть главным источником новых задач.

Главным продуктом стал Migration Assistant для переноса PostgreSQL в CockroachDB: конвертация схемы и процедур, загрузка и проверка данных. На момент статьи он находится в preview и почти целиком написан агентами.

Db2: менее двух дней, $4 172

Одна исходная задача превратилась в 32 подзадачи и 27 слитых PR. Ревью возвращало работу 55 раз; из девяти эскалаций две дошли до человека. Покрытие тестами авторы оценили как сопоставимое с PostgreSQL.

Границы сравнения

Поддержка Oracle в 2024 году заняла девять месяцев и около $160 000 инженерного времени. Для Db2 авторы заявляют ускорение в 164 раза и удешевление в 38 раз. Это разные задачи, периоды и категории затрат, а не контролируемый бенчмарк.

Ключевая оговорка. Db2 был первоначальным экспериментом без человеческого ревью написанного кода; корректность поддержки ещё проверяют. После первой недели автономной работы команда ввела человеческое одобрение каждого слияния. Пятимесячные результаты нельзя приписывать полностью автономному режиму. В статье ↗
05

Цена включает токены, ожидание и инструкции

В статье ↗
> $135 000
токены Claude за эксперимент
≈ $84
в среднем на issue, по статье
1–2 дня
обычный срок прохождения задачи
23%
текста скиллов признали удаляемым
Исходный график расходов. Выбран режим «By model / Per issue»: ось Y — USD на активную issue, цвета — модели. Хотя заголовок упоминает USD/day, показанный режим нельзя читать как суммарные дневные расходы. Нажмите на изображение, чтобы увеличить. Оригинал ↗

Значительную часть времени задача ждёт человека-ревьюера. Сначала все этапы работали на Opus. Затем планирование перевели на Fable; план выбирает модель для реализации, а Sonnet или Opus при затруднениях могут эскалировать к Fable. Названия моделей приведены как в источнике.

Раз в несколько недель команда настраивает скиллы под модели и расходы. Стоимость зависит и от состава задач: UI требует обработки скриншотов, а особенности CI добавляют повторные проходы. Сумма токенов не включает все расходы на эксплуатацию и человеческую работу.

Инструкции накопили технический долг

Июльский аудит 25 скиллов, более 100 000 слов, нашёл около 23 000 лишних слов. В одном файле избыточность достигла 47%. Discharge Nurse загружает около 21 800 слов, или 29 000 токенов, ещё до чтения PR.

Система изменяет собственный код

В выделенном репозитории Sinai около 1 570 коммитов; примерно 1 340, или 85%, написала сама система. Так появился обход зависших задач после гонки событий меток GitHub Actions. Модель уже применяют в четырёх репозиториях.

Аудит инструкций: В статье ↗ · Развитие Sinai: В статье ↗

06

Где процесс перестаёт помогать

В статье ↗

Ревью зацикливается на мелочах

Однострочное исправление прошло 11 кругов за два дня. В другом окне Safety три задачи с 9, 9 и 7 кругами съели около $631 из $1 046. Блокерами становились формулировки, описание PR и отклонения от плана.

Эскалация получила счётчик

Теперь передача Attending обязательна после четырёх последовательных кругов с новым блокирующим замечанием в каждом либо шести содержательных кругов любого типа. Изменение недавнее; данных об эффективности пока мало.

Агенты находят больше работы, чем нужно

Research сначала запускался каждые три часа. Его перевели на ежедневный запуск и ограничили очередь десятью предложениями, ещё не принятыми в работу. Отбирать действительно ценные задачи всё равно приходится людям.

Новички теряют практику

Автоматизация удобна опытным инженерам, но хуже учит диагностике и компромиссам. Команда разрабатывает режим, в котором человек пишет и защищает план перед агентом, а затем сам реализует решение и проходит ревью.

Часть бюрократии уже убрали: подтверждённые дубликаты больше не должны требовать отдельной эскалации, а необязательные замечания ревьюера не должны автоматически рождать новые задачи. Возврат к автономным слияниям для отдельных классов задач остаётся направлением экспериментов.

07

Как применить

В статье ↗

Практические шаги по мотивам опыта авторов. Это рекомендации конспекта; пороги стоит проверить на своих задачах.

08

Источник и понятия

В статье ↗

Five months treating bugs like patients and coding agents like a medical team
Adam Storm и Rafi Shamim · Cockroach Labs · 9 октября 2026.

Migration Assistant — продукт, ради которого развивали процесс. Sinai PR #691 — упомянутый авторами пример из репозитория системы.

I-PASS — структурированная передача дела. Circuit breaker — порог, который прерывает повторяющиеся попытки и запускает эскалацию. Независимое ревью здесь означает другой экземпляр агента с отдельной ролью.

Включены оригинальная схема процесса и график расходов; оба изображения проверены по исходной статье и увеличиваются по нажатию. Скриншот issue #526 просмотрен и исключён: постановка задачи уже изложена в тексте.