Когда говорят про ИИ в разработке, обычно представляют нечто вроде умного автодополнения: начал писать функцию – модель подсказала продолжение. Но за последние пару лет эта идея сильно усложнилась. Теперь речь идёт не об одном помощнике, а о целых командах агентов, которые могут самостоятельно выполнять задачи, передавать их друг другу и работать параллельно. Звучит перспективно – но сразу возникает вопрос: как вообще следить за тем, что они делают?
GitHub в своём блоге разобрал, как эту проблему решает Squad – система оркестрации агентов, встроенная прямо в репозиторий. Давайте посмотрим, в чём суть подхода.
Агент – это не просто чат
Для начала стоит пояснить, что такое агент в этом контексте. Проще говоря, агент – это ИИ, которому дают не просто вопрос, а задачу. Он сам решает, что делать дальше: какие шаги предпринять, какие инструменты использовать, что проверить. Он не просто отвечает – он действует.
Один агент уже полезен. Но некоторые задачи в разработке слишком большие или многогранные для одного. Например, чтобы реализовать новую функцию, нужно и код написать, и тестами покрыть, и документацию обновить, и проверить, что ничего не сломалось. Разные части этой задачи можно распараллелить – и тут появляется идея нескольких агентов, работающих вместе.
Но «работающих вместе» – это пока просто красивые слова. На практике сразу возникают вопросы: кто раздаёт задачи? Как агенты не мешают друг другу? Как разработчик понимает, что происходит?
Репозиторий как общая среда
Ключевая идея Squad – использовать сам репозиторий как пространство для координации. Это не отдельный сервис, не внешняя платформа, а именно тот же репозиторий, в котором живёт код.
Что это означает на практике? Агенты не общаются через какой-то скрытый канал. Они взаимодействуют через те же механизмы, которые уже знакомы разработчикам: pull request'ы, issues, комментарии, ветки. Если агент что-то сделал – это видно в репозитории. Если один агент передаёт задачу другому – это тоже отражается в привычных структурах.
Такой подход решает сразу несколько проблем. Во-первых, прозрачность: не нужно заглядывать в какие-то внутренние логи системы, всё видно там, где разработчик и так работает. Во-вторых, проверяемость: можно посмотреть историю действий, откатиться, вмешаться на любом этапе. В-третьих, привычность: разработчику не нужно учить новый интерфейс – он работает с тем, что уже знает.
Кто здесь главный – и нужен ли вообще главный?
В многоагентных системах часто используется схема «оркестратор + исполнители»: один агент раздаёт задачи, остальные выполняют. Squad тоже работает по этой логике, но с важным акцентом – оркестратор не должен быть непрозрачным «чёрным ящиком».
Если оркестратор принимает решения где-то внутри, и разработчик видит только конечный результат – это создаёт проблему доверия. Непонятно, почему была выбрана именно такая последовательность действий. Непонятно, где что-то пошло не так, если результат не тот. Непонятно, можно ли вообще доверять следующему шагу.
В подходе Squad оркестрация тоже происходит через репозиторий. Это значит, что решения оркестратора – видимы. Разработчик может наблюдать за тем, как задача разбивается и распределяется, а не просто получить итог.
Предсказуемость важнее скорости
Один из принципов, на которых строится Squad, – предсказуемость поведения важнее, чем максимальная автономность.
Это не очевидный выбор. Казалось бы, чем самостоятельнее агент, тем больше он «помогает». Но на практике агент, который делает много сам и непонятно как, создаёт новую проблему: разработчику приходится тратить время не на работу, а на проверку того, что наделал агент. Особенно если агентов несколько и они работали параллельно.
Предсказуемость означает, что агент действует в понятных рамках, не делает неожиданных ходов и оставляет человеку точки контроля. Это медленнее, чем «пусть сам разберётся», но зато результату можно доверять – или как минимум быстро понять, где что-то пошло не так.
Именно поэтому в Squad сделан акцент на том, чтобы каждый шаг агента был инспектируемым: его можно посмотреть, проверить и при необходимости скорректировать до того, как работа продолжится.
Человек остаётся в контуре
Ещё один важный момент – в Squad намеренно сохраняется роль человека в процессе. Это не система, которая «всё сделает сама». Это система, которая помогает команде делать больше, не теряя контроля над тем, что происходит.
Агенты могут работать параллельно, выполнять рутинные части задачи, передавать результаты друг другу. Но разработчик остаётся тем, кто может вмешаться, одобрить или заблокировать действие. Это особенно важно в командной разработке, где изменения затрагивают общий код и их нельзя просто «автоматически смержить».
Такой подход можно назвать совместной работой, а не делегированием. Агенты – это не замена разработчику, а что-то вроде дополнительных рук, которые делают часть работы под присмотром.
GitHub Copilot как основа
Технически всё это строится на базе GitHub Copilot. Это важно не в смысле рекламы, а в смысле контекста: Copilot уже встроен в рабочий процесс многих разработчиков, и Squad использует эту интеграцию, а не создаёт параллельную инфраструктуру с нуля.
Проще говоря, агенты Squad живут там, где уже живёт разработчик – в репозитории, в pull request'ах, в знакомых инструментах. Не нужно переключаться между системами, не нужно учиться работать с отдельной платформой управления агентами.
Что всё это значит для индустрии
Подход Squad интересен не сам по себе, а как иллюстрация более широкой тенденции. Многоагентные системы в разработке – это уже не футуристическая идея, а то, с чем инженеры начинают работать прямо сейчас. И главный вызов здесь – не «как сделать агентов умнее», а «как сделать их работу понятной и контролируемой».
Пока большинство таких систем либо слишком автономны (и тогда непонятно, что происходит внутри), либо слишком ограничены (и тогда от них мало пользы). Squad пытается найти баланс: агенты делают реальную работу, но делают её в пространстве, которое разработчик понимает и контролирует.
Будет ли этот подход работать в реальных командах с реальными кодовыми базами – покажет практика. Но сам вектор кажется разумным: чем сложнее становится автоматизация, тем важнее становится её прозрачность.