Gemini Conductor: Новый инструмент Google для исправления AI-кодирования

AAI LABS
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Если вы следили за каналом,
00:00:01то наверняка знакомы с различными типами рабочих процессов контекстной инженерии,
00:00:04которые мы здесь рассматривали.
00:00:06Что ж, Google также выпустил ещё один.
00:00:07Хотел бы я сказать, что он лучше других рабочих процессов.
00:00:10Но правда в том, что это не так.
00:00:11И с этим много проблем.
00:00:12Даже если вы будете утверждать,
00:00:14что он лучше для экосистемы Gemini,
00:00:15он всё равно недостаточно хорош.
00:00:17Прежде чем мы разберёмся,
00:00:18почему не было необходимости это выпускать,
00:00:20давайте сделаем небольшой перерыв и поговорим об Automata.
00:00:22После того как мы научили миллионы людей создавать продукты с помощью ИИ,
00:00:25мы начали внедрять эти рабочие процессы сами.
00:00:27Мы обнаружили,
00:00:28что можем создавать более качественные продукты быстрее,
00:00:30чем когда-либо прежде.
00:00:31Мы помогаем воплощать ваши идеи в жизнь,
00:00:33будь то приложения или веб-сайты.
00:00:34Возможно,
00:00:35вы смотрели наши видео и думали: у меня есть отличная идея,
00:00:37но нет технической команды для её реализации.
00:00:39Именно здесь мы и приходим на помощь..
00:00:42Думайте о нас как о вашем техническом со-пилоте.
00:00:44Мы применяем те же рабочие процессы,
00:00:46которым обучили миллионы людей,
00:00:47непосредственно к вашему проекту,
00:00:49превращая концепции в реально работающие решения без головной боли от найма или управления командой разработчиков.
00:00:54Готовы ускорить воплощение вашей идеи в реальность?
00:00:57Свяжитесь с нами по адресу hello@automata.dev..
00:00:59Прежде чем объяснить,
00:01:00почему это просто ещё одна неудачная попытка создать рабочий процесс контекстной инженерии,
00:01:05давайте сначала разберёмся,
00:01:06как на самом деле работает Conductor.
00:01:08Вот статья, и я оставлю ссылку на неё в описании ниже.
00:01:10В конце вы получите команду для установки этого в качестве расширения в Gemini CLI.
00:01:14Для тех,
00:01:15кто не знает: расширения — это наборы команд,
00:01:17MCP и других правил,
00:01:18которые объединены в пакет,
00:01:19который люди могут размещать и делиться с другими.
00:01:22У Claude также есть нечто подобное, называемое плагинами.
00:01:25Чтобы фактически запустить рабочий процесс,
00:01:27вы используете команду,
00:01:28и происходит установка.
00:01:29После установки вы можете использовать slash-команды в Conductor.
00:01:32Вы получите эти пять команд,
00:01:33которые фактически управляют Conductor и тем,
00:01:36как вы используете рабочий процесс.
00:01:37Первая команда,
00:01:38которую вы будете использовать,
00:01:40— это команда setup..
00:01:41Эта команда сначала проверяет,
00:01:43доступны ли существующие файлы Conductor,
00:01:45такие как состояние настройки и другие файлы,
00:01:48которые сообщают,
00:01:49был ли проект уже инициализирован или нет.
00:01:51Вместо историй он создаёт эти файлы,
00:01:53называемые треками,
00:01:54и выполняет их один за другим.
00:01:56После этого он инициализировал новый GitHub-репозиторий и спросил,
00:01:59что нужно построить.
00:02:00Чтобы протестировать его,
00:02:02я создал простой проект,
00:02:03но хотел проверить,
00:02:04будет ли созданная архитектура действительно хорошей.
00:02:06Просто чтобы проверить,
00:02:07порекомендует ли он то,
00:02:08что мне действительно нужно,
00:02:10я сказал,
00:02:10что проект должен быть готов к продакшену и масштабируем для большого количества пользователей.
00:02:15После этого он создал файл product.md,
00:02:17который содержал фактическую концепцию того,
00:02:19что я хотел построить.
00:02:20Чтобы уточнить и доработать её,
00:02:21он начал задавать мне вопросы,
00:02:23и в конце,
00:02:23поскольку вопросы на самом деле никуда не вели и были очень упрощёнными,
00:02:27я просто попросил его автоматически сгенерировать всё.
00:02:30После того как он одобрил и сохранил руководство по продукту,
00:02:32он захотел создать ещё один файл — руководство по продукту,
00:02:35которое в основном было сосредоточено на стилизации продукта и некоторых принципах дизайна.
00:02:40Он также одобрил и сохранил руководство по продукту.
00:02:42После этого он определил технологический стек,
00:02:44и это одна из причин,
00:02:45почему рабочий процесс был не очень хорош.
00:02:47Он испортил технологический стек,
00:02:49который предлагал мне,
00:02:50потому что знал,
00:02:51каким был весь мой проект,
00:02:52и всё равно не рекомендовал то,
00:02:54что было уместно.
00:02:55После того как я это исправил,
00:02:56он также одобрил технологический стек и обновил этот MD-файл.
00:02:59У него также есть файлы,
00:03:00называемые руководствами по стилю кода.
00:03:02Если я зайду в саму папку,
00:03:03это единственные языки,
00:03:04которые у него есть,
00:03:05и если он думает,
00:03:06что мы будем использовать какой-либо из них в проекте,
00:03:09он добавляет их в руководства по стилю кода текущего проекта во время инициализации.
00:03:13Рабочий процесс по умолчанию,
00:03:14который он использует,
00:03:15на самом деле довольно хорош.
00:03:17По умолчанию он включает 80% покрытие кода тестами,
00:03:19и пока он настраивал всё и писал базовые компоненты,
00:03:22он следил за тем,
00:03:23чтобы тесты также писались,
00:03:24а после завершения задач он их тестировал.
00:03:26В то же время он фиксировал изменения после каждой задачи,
00:03:29а также использовал git notes,
00:03:30чтобы мы могли отслеживать,
00:03:32где и когда что-то пошло не так.
00:03:33После завершения первоначальной настройки он создал некоторые высокоуровневые требования к продукту,
00:03:38чтобы мы могли приступить к первому треку.
00:03:40Это был первый трек, который он пытался реализовать..
00:03:45Опять же,
00:03:45это было слишком широко и нуждалось в разбиении на более мелкие треки.
00:03:49Это было слишком много,
00:03:50чтобы сделать за один трек,
00:03:51и было много шансов ошибиться,
00:03:53если делать всё это одновременно.
00:03:54Итак,
00:03:55после того как вы это завершите,
00:03:56вы можете начать работу,
00:03:58запустив команду implement,
00:03:59и в папке tracks у вас есть разные треки,
00:04:01которые он реализует один за другим.
00:04:03Каждый трек имеет два файла: plan.md и spec.md.
00:04:05Файл spec.md содержит цель и технические детали,
00:04:07извлечённые из технологического стека и информации,
00:04:10которую мы ввели в начале.
00:04:11Файл plan.md фактически содержит задачи,
00:04:13которые нужно реализовать одну за другой.
00:04:15Когда вы фактически используете команду implement,
00:04:18он смотрит на tracks.md и в основном смотрит на каждый трек,
00:04:21где на основе статуса он фактически знает,
00:04:23что делать.
00:04:23Если он пуст, значит, он не начат.
00:04:25Это означает,
00:04:26что он в процессе выполнения,
00:04:27а это означает,
00:04:28что трек завершён.
00:04:29И как вы можете видеть,
00:04:30этот текущий трек находится в процессе выполнения.
00:04:32Что касается других команд,
00:04:33команда status даёт вам отчёт о статусе того,
00:04:36что в данный момент происходит,
00:04:37какие треки отслеживаются,
00:04:38а какие не завершены.
00:04:39Если вы используете команду new track,
00:04:41он снова задаст вам различные вопросы для новой задачи.
00:04:44Я также реализовал его в уже существующем репозитории,
00:04:47и всё прошло примерно так же.
00:04:48Это было немного по-другому,
00:04:50потому что он смотрел на существующие файлы и просто задавал мне уточняющие вопросы,
00:04:54и не просил о новом треке..
00:04:57Мне пришлось самому реализовать новый трек как новую функцию.
00:05:00А ещё есть revert,
00:05:01ещё одна действительно умная функция,
00:05:03которая фактически смягчает любой ущерб и интегрирована с git.
00:05:06Так что она использует git для помощи,
00:05:08если агент где-то ошибается.
00:05:09Сейчас управление файлами и структура не так уж плохи.
00:05:11Способ,
00:05:12которым он реализует новые функции или существующие задачи в треки,
00:05:15а затем отслеживает их,
00:05:16на самом деле довольно хорош.
00:05:18Но то,
00:05:18как написаны инструкции или как написаны эти командные файлы,
00:05:21требует доработки,
00:05:22потому что они не управляют должным образом контекстным циклом,
00:05:25где нужно всё проверять.
00:05:26И если есть изменение, то как нужно это изменить.
00:05:28Потому что даже во время этого начального процесса было много ошибок.
00:05:32Первая ошибка заключается в том,
00:05:33что пока он запрашивал создание каждого документа,
00:05:36он не разобрал мою идею должным образом.
00:05:37И мне пришлось провести его через многое.
00:05:39Когда я посчитал это достаточным,
00:05:41я просто позволил ему автоматически сгенерировать остальной контент.
00:05:44И снова,
00:05:45как я упоминал ранее,
00:05:46при определении технологического стека он также упустил многое.
00:05:49Вариант B был хорош.
00:05:50Но поскольку я сказал ему,
00:05:51что хочу полностью масштабируемое приложение с большим количеством пользователей,
00:05:55он упустил много вещей,
00:05:56которые мне пришлось уточнять и явно говорить ему,
00:05:58что они также нужны,
00:05:59и затем он изменил план.
00:06:00Когда был сгенерирован первоначальный трек,
00:06:02я фактически зашёл и посмотрел на план и спецификации,
00:06:05которые он создал,
00:06:06и схема базы данных была совершенно неполной.
00:06:08Он упустил много вещей,
00:06:09которые были критически важны для настройки приложения,
00:06:11и мне снова пришлось направлять его и вести в правильном направлении.
00:06:15Gemini на самом деле действительно хорошая модель.
00:06:17Поэтому я подозреваю,
00:06:18что команды,
00:06:19которые были реализованы,
00:06:20и заставляют её вести себя таким образом..
00:06:23И самая главная причина,
00:06:24по которой я считаю,
00:06:25что даже несмотря на то,
00:06:26что сама настройка действительно хороша,
00:06:28есть много проблем в основных слэш-командах и особенно в workflow.MD,
00:06:31заключается в том,
00:06:32что система серьёзно сбилась после того,
00:06:34как я сказал,
00:06:35что хочу изменить NPM.
00:06:36Вместо этого я хотел использовать PNPM,
00:06:38поскольку забыл упомянуть об этом ранее.
00:06:39Почему-то она сначала попыталась сделать резервную копию..
00:06:43И при этом она указала,
00:06:44что нужно удалить файлы,
00:06:46созданные с помощью NPM.
00:06:47Но в итоге она удалила всю папку conductor,
00:06:49которая содержала все файлы планирования.
00:06:52После удаления она продолжала искать эту папку.
00:06:55А когда не смогла её найти,
00:06:56сказала,
00:06:57что восстановит папку conductor,
00:06:59используя свой контекст и всё,
00:07:00что есть в её памяти..
00:07:02По сути,
00:07:03ей пришлось переписать всё с нуля,
00:07:04в отличие от того,
00:07:05как должен работать обычный контекстный рабочий процесс,
00:07:08где изменение должно влиять только на основные контекстные файлы и файлы,
00:07:11связанные с конкретной задачей,
00:07:12что позволяет be mad работать эффективно.
00:07:14Возможно,
00:07:15если бы я не попросил резко что-то изменить,
00:07:17всё прошло бы хорошо.
00:07:18Но всё же,
00:07:18когда система инициализировала все задачи,
00:07:20и я попросил начать выполнение первой задачи,
00:07:23она начала инициализацию проекта и других необходимых основных сервисов.
00:07:26Когда дело дошло до настройки переменных окружения для подключения к Supabase,
00:07:30почему-то она автоматически отметила задачу как выполненную,
00:07:32явно подставив туда фиктивный ключ.
00:07:34Она даже не попросила меня настроить проект Supabase или предоставить настоящий ключ.
00:07:38И автоматически попыталась загрузить схему базы данных.
00:07:41Поскольку реального ключа не было, это не удалось.
00:07:43А затем она попросила меня перепроверить строку подключения.
00:07:46Так что даже задачи обновляются неправильно,
00:07:48и система не особо следовала им корректно.
00:07:50Честно говоря,
00:07:51я бы не стал использовать это сейчас для сквозной разработки по спецификации.
00:07:54Be mad — гораздо лучший вариант.
00:07:56А для небольших проектов я по-прежнему создаю свои собственные контекстные файлы.
00:07:59На этом мы подошли к концу этого видео.
00:08:01Если вы хотите поддержать канал и помочь нам продолжать создавать подобные видео,
00:08:05вы можете сделать это,
00:08:06используя кнопку Super Thanks ниже.
00:08:08Как всегда,
00:08:08спасибо за просмотр,
00:08:09и увидимся в следующем выпуске..

Key Takeaway

Google выпустил Gemini Conductor для AI-кодирования, но инструмент имеет множество критических проблем и уступает существующим решениям, таким как Be mad.

Highlights

Google выпустил Gemini Conductor - новый инструмент для AI-кодирования, который работает как расширение для Gemini CLI

Conductor использует систему треков (tracks) вместо историй для управления задачами разработки

Инструмент автоматически создаёт техническую документацию: product.md, style guide, tech stack и code style guides

По умолчанию Conductor включает 80% покрытие кода тестами и автоматическую фиксацию изменений через Git

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

При попытке изменить NPM на PNPM система случайно удалила всю папку conductor с файлами планирования

Автор считает, что Be mad - гораздо лучший вариант для сквозной разработки, чем Gemini Conductor

Timeline

Введение и реклама Automata

Автор представляет новый инструмент Google - Gemini Conductor, но сразу предупреждает, что он не лучше других рабочих процессов контекстной инженерии, рассмотренных на канале ранее. Он отмечает, что даже для экосистемы Gemini инструмент недостаточно хорош и имеет множество проблем. Перед детальным разбором автор делает рекламную паузу для сервиса Automata - компании, которая помогает воплощать идеи в реальные приложения и веб-сайты, используя AI-рабочие процессы. Automata позиционируется как технический со-пилот для тех, у кого есть идеи, но нет технической команды для их реализации.

Установка и основные команды Conductor

Автор объясняет, как работает Conductor и начинает с технических деталей установки. Conductor устанавливается как расширение в Gemini CLI через специальную команду, ссылка на которую приведена в описании видео. Расширения представляют собой наборы команд, MCP и других правил, упакованных для совместного использования, подобно плагинам в Claude. После установки пользователь получает доступ к пяти slash-командам для управления рабочим процессом. Эта структура позволяет управлять всем процессом разработки через командную строку.

Команда setup и инициализация проекта

Детальное описание работы команды setup, которая является первой командой в рабочем процессе. Команда проверяет наличие существующих файлов Conductor, таких как состояние настройки, чтобы определить, был ли проект уже инициализирован. Вместо традиционных историй Conductor создаёт файлы, называемые треками (tracks), и выполняет их последовательно. После этого инициализируется новый GitHub-репозиторий, и система запрашивает описание проекта. Автор для тестирования создал простой проект, но специально указал требования готовности к продакшену и масштабируемости для большого количества пользователей, чтобы проверить качество рекомендуемой архитектуры.

Создание документации проекта

Conductor автоматически создаёт файл product.md, содержащий концепцию проекта, и начинает задавать уточняющие вопросы для доработки. Автор отмечает, что вопросы были слишком упрощёнными и не вели к конструктивному диалогу, поэтому он попросил систему автоматически сгенерировать всё. После одобрения руководства по продукту система создаёт дополнительный файл - product guide, фокусирующийся на стилизации продукта и принципах дизайна. Затем Conductor определяет технологический стек, и здесь автор выявляет первую серьёзную проблему - система испортила рекомендации по технологическому стеку, несмотря на понимание требований проекта. После исправления система также создаёт файлы code style guides для используемых языков программирования.

Рабочий процесс и система треков

Автор положительно оценивает рабочий процесс по умолчанию, который включает 80% покрытие кода тестами - довольно высокий стандарт. Во время настройки и написания базовых компонентов система автоматически пишет тесты, а после завершения задач тестирует их. Conductor фиксирует изменения в Git после каждой задачи и использует git notes для отслеживания проблем. После начальной настройки создаются высокоуровневые требования к продукту для первого трека. Однако первый сгенерированный трек оказался слишком широким и требовал разбиения на более мелкие задачи, так как было слишком много работы для одного трека с высоким риском ошибок.

Команды implement, status и структура треков

Для начала работы используется команда implement, которая работает с треками, находящимися в папке tracks. Каждый трек содержит два файла: plan.md с задачами для последовательного выполнения и spec.md с целью и техническими деталями из технологического стека. Команда implement анализирует tracks.md и определяет статус каждого трека: пустой (не начат), в процессе выполнения или завершён. Команда status предоставляет отчёт о текущем состоянии проекта и незавершённых треках. Команда new track позволяет создавать новые задачи через диалог с системой. Автор также протестировал Conductor на существующем репозитории, где процесс был немного другим - система анализировала существующие файлы и задавала уточняющие вопросы вместо создания нового трека.

Команда revert и оценка управления файлами

Команда revert представлена как умная функция для смягчения ущерба, интегрированная с Git для помощи в случае ошибок агента. Автор положительно оценивает управление файлами и структуру проекта в Conductor. Способ реализации новых функций через треки и их отслеживание оценивается как довольно хороший. Однако автор критикует качество написания инструкций и командных файлов, которые не управляют должным образом контекстным циклом и не проверяют все необходимые изменения. Эта недоработка привела к множеству ошибок даже на этапе начального процесса настройки.

Первая серия ошибок: парсинг идеи и технологический стек

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

Проблемы со схемой базы данных и качество модели Gemini

При анализе первоначального трека, плана и спецификаций автор обнаружил, что схема базы данных была совершенно неполной. Система упустила множество критически важных элементов для настройки приложения, и автору снова пришлось направлять её в правильном направлении. Автор отмечает, что Gemini - действительно хорошая модель сама по себе, поэтому он подозревает, что проблема кроется в реализованных командах, которые заставляют модель вести себя неэффективно. Это наблюдение важно, так как указывает на то, что проблемы Conductor связаны не с базовой моделью AI, а с архитектурой и реализацией самого инструмента.

Критическая ошибка: удаление папки conductor

Автор выявляет главную причину, по которой даже хорошая настройка не спасает ситуацию - серьёзные проблемы в slash-командах и workflow.MD. Критическая ошибка произошла, когда автор попросил изменить NPM на PNPM, забыв упомянуть это ранее. Система сначала попыталась создать резервную копию и указала на необходимость удаления файлов, созданных с помощью NPM. Однако вместо этого она удалила всю папку conductor, содержащую все файлы планирования. После удаления система продолжала искать эту папку, а не найдя её, решила восстановить её из контекста и памяти. Это означало полное переписывание всего с нуля, что противоречит принципам нормального контекстного рабочего процесса, где изменения должны влиять только на основные контекстные файлы и файлы конкретной задачи.

Проблемы с выполнением задач и переменными окружения

Автор предполагает, что если бы он не попросил резко изменить конфигурацию, всё могло бы пройти лучше. Однако даже после инициализации всех задач и начала выполнения первой задачи возникли новые проблемы. При настройке переменных окружения для подключения к Supabase система автоматически отметила задачу как выполненную, подставив фиктивный ключ вместо реального. Система даже не попросила настроить проект Supabase или предоставить настоящий ключ. Затем она автоматически попыталась загрузить схему базы данных, что закономерно не удалось из-за отсутствия реального ключа, и только после этого попросила перепроверить строку подключения. Это показывает, что задачи обновляются неправильно, и система не следует им корректно.

Выводы и рекомендации

Автор делает однозначный вывод: он не стал бы использовать Conductor для сквозной разработки по спецификации в текущем состоянии. Be mad рекомендуется как гораздо лучший вариант для полноценной разработки. Для небольших проектов автор предпочитает создавать собственные контекстные файлы вместо использования Conductor. В заключении автор призывает поддержать канал через кнопку Super Thanks и благодарит зрителей за просмотр. Эти рекомендации основаны на практическом тестировании, которое выявило множество критических проблем в работе Conductor, несмотря на некоторые хорошие идеи в его архитектуре.

Community Posts

View all posts