Parallel Agent Dispatch

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

Зачем это отдельная тема

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

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

Человек здесь диспетчер, а не планировщик

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

Отсюда набор параметров, и считать их надо по типу задачи, а не в среднем по всему потоку: проектирование архитектуры, починка бага и сборка презентации ведут себя по-разному по всем четырём осям.

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

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

Переделки — главный рычаг, и зависимость нелинейная

Переделка стоит не одного повторного прогона: она требует заново ревью, заново уточняющего промпта, заново внимания и заново слота в очереди. Из модели получается резко нелинейный рост общего времени:

Вероятность переделки Общее время выполнения потока задач
10% +11%
30% в полтора раза
90% в десять раз

Практический вывод из этой формы важнее самих чисел: снижение с 90% до 70% даёт больше, чем с 50% до 30%. Оптимизировать надо худший тип задач, а не средний, и приемлемым уровнем называют 40–50% — выше него с типом задач надо что-то делать, а не терпеть.

Как снижать. Причины переделок разбираются по типам задач, а не вообще: смотреть, почему именно этот класс результатов уходит обратно. Источник данных — собственные журналы сессий; разбор дешёвой моделью даёт список типов задач и список причин, дальше по каждой причине ищется, чем её закрыть. Дальше причина закрывается тем, чем закрывается: правилом в файле инструкций, умением, инструментом, обратной связью, которую агент может получить сам (Harness Optimization — там же планка, отсеивающая правки, которые ничего не изменят). Любой формальный гейт — тест, линтер, проверка типов, критерий приёмки — закрывает одну или несколько причин переделки, и в этом его ценность измерима.

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

Ревью — второй рычаг, и пока идёт ревью, агенты стоят

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

Снижается это ускорением восприятия результата, а не сокращением внимания: плотность подачи на единицу площади. Схема вместо полотна markdown, диаграмма на декларативном языке с формальным валидатором, полноценный HTML-артефакт, где помещается больше и появляется интерактив.

Оговорка, которую стоит записать вместе с приёмом. Мозг, натренированный годами читать сырой код, читает его быстрее, чем диаграммы, и переучиваться пришлось бы годами. Приём не универсален — универсально направление: любой новый инструмент оценивается вопросом «сокращает ли он моё время ревью», и ответ проверяется на себе, а не принимается по описанию. Из того же ряда — сортировка файлов в диффе не по алфавиту, а по влиянию на систему.

Постановка — третий рычаг, автономность — четвёртый

Время постановки стоит примерно наравне с ревью, и уходит оно в основном на то, чтобы человек сам вошёл в контекст. Что его сокращает: параллельные субагенты, разбирающие кодовую базу одновременно вместо одного последовательного прохода; быстрые модели на этапе планирования; описание, где что лежит; режим интервью, когда агент опрашивает человека перед постановкой, — но вопросы стоит собирать пачкой, а не по одному за раз, иначе интервью само становится узким местом (Human in the Loop — бюджет уточняющих вопросов и критерий их допуска).

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

Число агентов — не рычаг, а следствие зрелости

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

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

Токсичные задачи

Отдельный класс, который сводит параллельную работу к нулю: высокое время ревью и высокая вероятность переделки одновременно. Такая задача блокирует не только себя — она отнимает у человека способность вообще запромтить остальных агентов.

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

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

Выходов три, и выбор между ними зависит от того, повторится ли задача:

  • делегировать человеку, у которого обвязка настроена именно под этот класс;
  • сделать руками — часто быстрее, чем объяснять агенту, и это нормальный исход, а не поражение;
  • сделать потоковой — если задача повторяющаяся, то есть снизить ей время ревью и вероятность переделки теми же средствами, что и всем остальным типам.

Стратегия выборки: группировка по типу

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

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

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

Что модель намеренно не считает

Два параметра исключены сознательно, и обе причины стоит знать, потому что они и есть границы применимости.

Токены не учитываются. Довод: они дешевеют, доступных обвязок становится больше, а на этапе освоения экономия вредна — она гасит эксперименты. Довод спорный и зависит от того, кто платит; если бюджет ограничен жёстко, стоимость надо вносить в модель отдельной осью (Unit Economics AI).

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

Чего эта модель не доказывает

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

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

Связано с

  • Human in the Loop — ревью и уточняющие вопросы как канал, через который человек становится узким местом
  • Harness Optimization — чем чинить найденную причину переделок и какая правка вообще заслуживает заведения
  • Agent First Repository — среда, снижающая переделки конструкцией: проверки, которые агент запускает сам
  • Quality Metric Design — как формулировать критерий, чтобы измеряемое соответствовало нужному
  • Bounded Tool Output — плотность подачи результата, только со стороны контекста агента, а не глаз человека
  • Unit Economics AI — ось стоимости, которую эта модель выносит за скобки