C3PIO Tracker

Завёл задачу — получил в продакшн

Трекер, в котором задачи выполняют AI-агенты: планируют, пишут код, тестируют, ревьюят друг друга и сами вливают работу в основную ветку.

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

Зачем

Рук не хватает. Найм — это месяцы

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

Чат с моделью эту очередь не разгребает. Он выдаёт куски кода, которые человек всё равно переносит руками: заводит ветку, открывает merge request, гоняет тесты, правит по замечаниям. Ассистент ускоряет клавиатуру. Он не доводит задачу до продакшна.

Как обычно

  • Человек копирует ответ модели в редактор
  • Ветку, коммит и merge request заводит сам
  • Проверяет тоже сам — или не проверяет
  • Сколько это стоило, не знает никто
  • Задача живёт в трекере, работа — где-то ещё

С трекером

  • Задача назначается на агента как на человека
  • Ветка, коммиты и merge request — его работа
  • Тестировщик и ревьювер — другие агенты на других моделях
  • Стоимость и токены видны по каждому прогону
  • Работа и задача — в одном месте, с живым логом

Как это работает

Конвейер, а не чат

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

Роли

Семь ролей, каждая со своим делом

Архитектор режет задачу на подзадачи и не пишет код. Разработчик работает в своей ветке. Тестировщик сверяет критерии приёмки. Ревьювер возвращает с замечаниями или одобряет. Плюс разметчик, DevOps и технический писатель.

Правило

Проверяет не тот, кто писал

Ревью идёт на другой модели, чем работа. Самопроверка одной моделью — это разговор с собой; кросс-провайдерное ревью ловит то, что зелёные тесты пропускают.

Гейт

Автомерж только по зелёному

Влить в основную ветку можно после одобрения ревьювера и зелёного пайплайна. Упёрся в конфликт — конвейер отправляет ревьювера разводить слияние, а не ждёт человека.

Прозрачность

Видно, что агент делает прямо сейчас

Живой лог прогона: какой инструмент вызвал, что прочитал, что записал. А если задача стоит — причина написана в карточке, а не спрятана в логах сервера.

Не демо

Система работает и делает сама себя

Цифры ниже — с рабочей установки, а не из презентации. Трекер ведёт собственную разработку: его задачи делают его же агенты, в его же конвейере.

163задачи прошли через систему
107влиты агентами без человека
1 436прогонов агентов
$0,20средняя стоимость прогона
4релиза в продакшн
1,5 чот постановки до готовой доработки

Последняя цифра — не рекорд, а обычный день: задача на доработку интерфейса заведена в 15:49, разрезана на четыре подзадачи, разобрана параллельно и закрыта комплексной проверкой в 17:19. 28 прогонов, $10,52.

Таблица прогонов агентов: модели, статусы, токены, стоимость и длительность
Каждый прогон записан: кто, на какой модели, сколько токенов и денег, сколько шёл. Здесь же видно правило разных моделей на шагах — работу вёл один провайдер, проверку и ревью другие.

Что внутри

Обычный трекер, только исполнители другие

Доска с перетаскиванием, спринты, бэклог, зависимости, поиск и фильтры, права доступа, журнал действий. Всё, к чему привыкли люди, — плюс то, чего в трекерах не бывает.

Карточка задачи с критериями приёмки, исполнителями и блоком Git
Карточка задачи: критерии приёмки, исполнитель, ревьювер и тестировщик — каждый на своей модели, ветка, merge request и состояние пайплайна. Откат — одной кнопкой, через merge request.

Команда

Соберите агента, как собирают персонажа

Модель — это подключение к провайдеру. Должность — роль в конвейере, промпт и потолки. Персонаж — конкретный работник: имя, лицо, характер, навыки и манера речи. У «Теслы» и «Марвина» может быть одна модель и разный нрав, и в задаче видно, кто именно её вёл.

Всё, что выставлено на листе персонажа, уходит в промпт — и тут же, на той же странице, показано, что именно уйдёт. Никаких «где-то в настройках»: видно, чем агент отличается от соседа.

Лист персонажа агента: имя, характер, навыки, шкалы и манера речи
Лист персонажа: имя, лицо, характер, навыки и пять шкал. Рядом — предпросмотр того, что уйдёт модели, собранный той же функцией, что и настоящий промпт прогона.

Ваш контур

Ничего не уезжает на чужую сторону

Развёртывание

На вашем сервере

Ставится рядом с вашим GitLab. Наружу выставлен только интерфейс, вход — через корпоративный GitLab OAuth. Базы и API остаются на петле.

Модели

Ваши ключи и подписки

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

Изоляция

Каждый прогон — отдельный контейнер

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

Деньги

Лимиты на трёх уровнях

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

Что нужно

Что нужно, чтобы это работало

  1. СерверLinux с докером. Один сервер тянет и трекер, и очередь прогонов; видеокарта нужна только для локальных моделей.
  2. GitLabСвой или в облаке — работа идёт через merge request, вебхуки и CI. Репозитории команд трекер заводит сам, чужие подхватывает по URL.
  3. Доступ к моделямКлючи провайдеров или подписки на агентные оболочки. Минимальный рабочий состав — одна модель и команда из трёх агентов.

Перспективы

Где ещё работает такой конвейер

Трекер устроен вокруг одной механики: задача с машиночитаемыми критериями, исполнитель, независимая проверка, гейт перед выпуском и журнал всего, что произошло.

Эта механика не про код. Она про любую работу, у которой есть проверяемый результат и версия. Меняется то, что считать артефактом и что — «зелёной сборкой».

Сегодня

Разработка и интеграции

Ветка, merge request, пайплайн, ревью. То, ради чего система написана и на чём она проверена на собственной кодовой базе.

Сегодня

Компьютерное зрение и ML

Разметка через CVAT, сбор выборки, обучение джобой CI на видеокарте, метрики в артефактах, выкладка модели кнопкой. Нитка пройдена на живых данных склада металлопроката.

Близко

Аналитика и отчётность

Регулярные отчёты и витрины данных: запрос — тоже код, а критерий приёмки — сходящиеся контрольные суммы и цифры, которые не разошлись с источником.

Близко

Эксплуатация и поддержка

Разбор инцидентов, инструкции, постмортемы. Причина простоя, живой лог и журнал действий — уже готовая основа для дежурной смены.

Требует доработки

Проектные организации

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

Требует доработки

Медицина и здравоохранение

Разработка и валидация медицинских ИИ-систем, СОПы и регламенты, отчётность. Клинические решения — вне контура: агент не ставит диагноз и не назначает лечение.

Требует доработки

Музыка, видео, продакшн

Технический контроль материала автоматизируется целиком: громкость, клиппинг, хронометраж, рассинхрон. Художественное решение остаётся за человеком — и это гейт, а не недоделка.

Требует доработки

Регламенты и договоры

Работа по шаблонам с обязательной проверкой второй моделью и подписью человека на выпуске. Подробнее — ниже.

Документооборот

Согласование — это тот же merge request

Документооборот и разработка устроены одинаково, только называются по-разному. Есть версия, есть автор, есть тот, кто проверяет, и есть тот, кто подписывает. Разница лишь в том, что артефакт — не программа, а документ.

В трекереВ документооборотеЧто это даёт
ЗадачаПоручение выпустить документСрок, ответственный, критерии готовности в одном месте
Критерии приёмкиЧек-лист нормоконтроляРеквизиты, ссылки на нормы, обязательные разделы — проверяются по пунктам, а не «на глаз»
Ветка и коммитыЧерновик и его версииВидно, что именно изменилось между редакциями и почему
Merge requestЛист согласованияЗамечания привязаны к строкам, а не пересланы письмом
Ревьювер на другой моделиНезависимый контролёрПроверяет не тот, кто писал, — и не тот, кто заинтересован
Гейт релизаУтверждение и подписьВыпуск невозможен без человека, и это записано
Журнал действийИстория обращения документаКто, когда, на основании чего — без реконструкции по почте

Архитектор разбирает поручение «выпустить пакет к вводу объекта» на отдельные документы и расставляет между ними зависимости: пояснительная записка не пишется раньше, чем согласован технический раздел. Составители работают параллельно, нормоконтролёр сверяет каждый по чек-листу, согласующий возвращает с замечаниями. Человек подписывает.

Уже работает

  • Версии, замечания к строкам и история изменений
  • Разбиение большого поручения на документы с зависимостями
  • Независимая проверка вторым исполнителем на другой модели
  • Подпись человека как обязательный гейт перед выпуском
  • Полный журнал: кто, что и когда изменил

Потребует доработки

  • Форматы: DOCX и PDF нужно приводить к текстовому виду, иначе изменения не видны
  • Связка с СЭД и электронной подписью
  • Маршруты согласования сложнее линейных — параллельные визы, замещающие подписанты
  • Сроки и напоминания: у документов они жёстче, чем у задач

Точные науки

Воспроизводимость — это и есть зелёная сборка

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

В трекереВ исследованииЧто это даёт
ЗадачаГипотеза или расчётный случайФормулировка, зафиксированная до счёта, а не подогнанная после
Критерии приёмкиПороги метрик и допуски«mAP не ниже 0,45», «невязка меньше 1e-6» — проверяются машиной
Песочница прогонаФиксированное окружение счётаТот же образ, те же версии библиотек — расчёт повторим через полгода
Пайплайн CIПрогон экспериментаОбучение и счёт идут на выделенной машине с видеокартой, метрики ложатся в артефакты
Ревью другой модельюНезависимая проверка методикиРазбор допущений и способа счёта тем, кто его не выбирал
Журнал и стоимостьЛабораторный журналКаждый прогон записан: что считали, сколько это заняло и стоило

Эта нитка не выдумана: обучение детектора уже проходит так целиком — выборка на 270 кадров, 1 753 аннотации, 50 эпох на Tesla V100 за 288 секунд, метрики в артефактах джобы, выкладка модели одной кнопкой. Замените детектор на численную схему, а mAP — на невязку, и получится обычный вычислительный эксперимент.

Уже работает

  • Числовые критерии приёмки и автоматическая сверка с ними
  • Фиксация окружения и данных: выборка монтируется по одному пути и только на чтение
  • Счёт на выделенной машине с видеокартой, метрики в артефактах
  • Независимая проверка и разбор методики другой моделью
  • Учёт стоимости и времени каждого прогона

Потребует доработки

  • Строгая детерминированность: фиксация зерна генератора и версий до патча
  • Символьные выкладки и доказательства — нужны проверяющие инструменты, а не мнение модели
  • Приборы и лабораторные данные — интеграция с системами сбора
  • Хранение больших выборок и версионирование данных отдельно от кода

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

Медицина и здравоохранение

Прослеживаемость там, где её требуют по закону

Начнём с границы, а не с возможностей: агент здесь не принимает клинических решений. Он не ставит диагноз, не назначает лечение и не работает с пациентом. Он делает то же, что и в разработке, — готовит артефакты, которые потом проверяет машина и утверждает человек.

Зато в медицине есть требование, ради которого конвейер и построен: доказать, что результат получен так, как заявлено. Кто менял, на каком основании, что проверялось, какая версия ушла в работу. В разработке это удобство. В здравоохранении — условие допуска.

Что делает конвейерГде это нужноЧто это даёт
Разметка и обучениеИИ-системы для снимков и сигналовГотовая нитка: выборка → разметка → обучение на видеокарте → метрики в артефактах → выкладка модели
Версии выборки и моделиВалидация медицинского ПОВидно, на каких данных обучена конкретная версия и какие метрики она показала
Критерии приёмкиПороги чувствительности и специфичностиМодель не уходит дальше, если не дотянула до заявленного порога
Независимая проверкаКонтроль качестваРаботу проверяет не тот, кто её делал, — требование, привычное в отрасли
Гейт человекаУтверждение врачом или ответственным лицомНи один результат не выпускается без подписи, и подпись записана
Документы и версииСОПы, инструкции, протоколы исследованийСогласование как merge request: замечания к пунктам, история редакций, кто утвердил
Журнал действийАудиторский след10 503 записи в журнале рабочей установки — то, что при проверке спрашивают первым

Самое очевидное применение — не лечение, а разработка медицинских ИИ-инструментов. Нитка «разметка → обучение → метрики → выкладка» уже пройдена на промышленных снимках: 270 кадров, 1 753 аннотации, обучение в CI на видеокарте, метрики в артефактах. Замените дефекты металла на находки на снимке — механика не изменится, изменятся требования к данным и к порогам.

Ложится сразу

  • Разработка и интеграции медицинских информационных систем
  • Обучение и версионирование моделей с прослеживаемостью до выборки
  • Регламенты, СОПы и инструкции с согласованием и подписью
  • Воспроизводимая аналитика и отчётность для регулятора
  • Полный аудиторский след по каждому изменению

Обязательные условия

  • Данные пациентов не уходят внешним моделям: только локальные, в закрытом контуре
  • Обезличивание до попадания материала в работу — вне трекера, на входе
  • Регистрация ПО как медизделия: трекер даёт доказательства, но не заменяет процедуру
  • Клиническая интерпретация — всегда человек, без исключений
  • Чего делать нельзя. Ставить конвейер между врачом и пациентом, отдавать агенту решение о диагнозе или терапии, отправлять медицинские данные во внешние модели ради удобства. Ценность системы здесь — в дисциплине и следе, а не в скорости.

Музыка и видео

Техприёмку берёт машина, вкус остаётся человеку

В продакшне две разные работы, которые обычно делает один уставший человек ночью перед сдачей. Первая — художественная: что играет, как смонтировано, попадает ли в бриф. Вторая — техническая: громкость по нормативу, отсутствие клиппинга, хронометраж секунда в секунду, синхрон звука и картинки, нужный кодек и битрейт.

Вторая работа проверяется числами, а значит, ложится в конвейер целиком — с теми же критериями приёмки и тем же отказом «вернуть на доработку», что и у кода. Первая остаётся гейтом человека, и это не компромисс: вкус не выносится в чек-лист.

В трекереВ продакшнеЧто это даёт
ЗадачаБриф на трек, ролик или эпизодРеференсы, хронометраж и площадка выпуска зафиксированы до начала работы
ДекомпозицияСцены, части, слоиМонтаж, озвучка, титры и цветокоррекция идут параллельно, а не по очереди
Критерии приёмкиТехнические требования площадки«−14 LUFS, true peak не выше −1 дБ», «1920×1080, 25 кадров, ровно 30 секунд» — сверяются машиной
ПайплайнРендер и мастерингСборка идёт на сервере: превью, финальный файл и отчёт по замерам ложатся в артефакты
ТестировщикТехнический контрольКлиппинг, рассинхрон, битые кадры, несовпадение хронометража — ловятся до сдачи
РевьюверСверка с брифомСоответствие референсам и ограничениям площадки разбирает не тот, кто монтировал
Гейт релизаУтверждение заказчикомХудожественное решение подписывает человек, и версия, которую он подписал, зафиксирована

Ключ к тому, чтобы это заработало, — держать замысел в текстовом виде рядом с материалом: партитура и MIDI, монтажный лист и тайм-коды, субтитры, параметры рендера, скрипты генерации. Тогда изменения видны построчно, замечание привязывается к такту или кадру, а не к фразе «во второй половине что-то не то», и любая версия собирается заново из исходников.

Уже работает

  • Числовые критерии приёмки и отказ по ним
  • Сборка на сервере с видеокартой, результат — в артефактах прогона
  • Параллельная работа нескольких исполнителей над частями одной задачи
  • Замечания, круги доработки и подпись человека на выпуске
  • Учёт стоимости: видно, во сколько обошёлся каждый вариант

Потребует доработки

  • Тяжёлые файлы: исходники нужно держать в объектном хранилище, а не в репозитории
  • Предпросмотр прямо в карточке — плеер для звука и видео вместо ссылки на файл
  • Подключение генеративных моделей звука и видео как исполнителей
  • Права на исходный материал: их учёт сейчас за пределами трекера

Честно

Чего он не делает

Продавать чудо неинтересно: систему всё равно проверят на своих задачах. Вот что стоит знать заранее.

  • Это не замена команде. Постановка задачи, приёмка и решение о релизе остаются за человеком — и это осознанное место гейта, а не недоделка.
  • Агент ошибается. Из 1 436 прогонов 225 завершились неудачей. Конвейер рассчитан на это: повтор, передача более опытному, честная остановка с причиной.
  • Планирование требует сильной модели. На локальной 8-битной модели с коротким контекстом далеко не уедешь: она годится для мелких подзадач.
  • Нужен человек, который следит. Алертов наружу пока нет: состояние видно в интерфейсе, но ночью никто не разбудит.