Приложение G - Программирование агентов
Vibe Coding: отправная точка
"Vibe coding" стал мощной техникой для быстрого инновационного развития и творческого исследования. Эта практика предполагает использование LLM для генерации первоначальных набросков, создания схем сложной логики или построения быстрых прототипов, значительно снижая начальное трение. Это бесценно для преодоления проблемы "чистого листа", позволяя разработчикам быстро переходить от расплывчатой концепции к осязаемому, исполняемому коду. Vibe coding особенно эффективен при исследовании незнакомых API или тестировании новых архитектурных паттернов, поскольку он обходит немедленную потребность в идеальной реализации. Сгенерированный код часто выступает как творческий катализатор, предоставляя основу для разработчиков, чтобы критиковать, рефакторить и расширять его. Его основная сила заключается в способности ускорять начальные фазы обнаружения и генерации идей в жизненном цикле программного обеспечения. Однако, хотя vibe coding превосходен в мозговом штурме, разработка надежного, масштабируемого и поддерживаемого программного обеспечения требует более структурированного подхода, переходя от чистой генерации к совместному партнерству со специализированными агентами программирования.
Агенты как члены команды
В то время как первая волна была сосредоточена на сырой генерации кода — "vibe code", идеальном для генерации идей — индустрия теперь переходит к более интегрированной и мощной парадигме для производственной работы. Наиболее эффективные команды разработки не просто делегируют задачи агентам; они дополняют себя набором сложных агентов программирования. Эти агенты действуют как неутомимые, специализированные члены команды, усиливая человеческое творчество и значительно увеличивая масштабируемость и скорость команды.
Эта эволюция отражается в заявлениях лидеров индустрии. В начале 2025 года генеральный директор Alphabet Сундар Пичаи отметил, что в Google "более 30% нового кода теперь создается или генерируется с помощью наших моделей Gemini, фундаментально изменяя нашу скорость разработки". Microsoft сделала аналогичное заявление. Этот отраслевой сдвиг сигнализирует о том, что истинная граница заключается не в замене разработчиков, а в их расширении возможностей. Целью является дополненное взаимодействие, где люди направляют архитектурное видение и творческое решение проблем, в то время как агенты обрабатывают специализированные, масштабируемые задачи, такие как тестирование, документация и обзор.
Эта глава представляет framework для организации команды человек-агент, основанный на основной философии, что разработчики-люди действуют как творческие лидеры и архитекторы, в то время как AI агенты функционируют как усилители силы.
Этот framework основывается на трех основополагающих принципах:
Оркестрация под руководством человека: Разработчик является лидером команды и архитектором проекта. Он всегда в контуре, оркестрируя рабочий процесс, устанавливая высокоуровневые цели и принимая окончательные решения. Агенты мощны, но они поддерживающие сотрудники. Разработчик направляет, какой агент задействовать, предоставляет необходимый контекст и, что наиболее важно, осуществляет окончательное суждение о любом выходе, сгенерированном агентом, обеспечивая его соответствие стандартам качества проекта и долгосрочному видению.
Приоритет контекста: Производительность агента полностью зависит от качества и полноты его контекста. Мощный LLM с плохим контекстом бесполезен. Поэтому наш framework приоритизирует тщательный, управляемый человеком подход к курированию контекста. Автоматизированное, черно-ящичное извлечение контекста избегается. Разработчик отвечает за сборку идеального "брифинга" для своего члена команды-агента. Это включает:
- Полную кодовую базу: Предоставление всего соответствующего исходного кода, чтобы агент понимал существующие паттерны и логику.
- Внешние знания: Поставка конкретной документации, определений API или проектных документов.
- Человеческий брифинг: Четкое формулирование целей, требований, описаний pull request и руководств по стилю.
Прямой доступ к модели: Для достижения результатов мирового уровня агенты должны быть обеспечены прямым доступом к пограничным моделям (например, Gemini 2.5 PRO, Claude Opus 4, OpenAI, DeepSeek и т.д.). Использование менее мощных моделей или маршрутизация запросов через промежуточные платформы, которые скрывают или обрезают контекст, снизит производительность. Framework построен на создании максимально чистого диалога между человеческим лидером и сырыми возможностями базовой модели, обеспечивая работу каждого агента на пике его потенциала.
Framework структурирован как команда специализированных агентов, каждый из которых предназначен для основной функции в жизненном цикле разработки. Человек-разработчик действует как центральный оркестратор, делегируя задачи и интегрируя результаты.
Основные компоненты
Для эффективного использования пограничной Large Language Model этот framework назначает различные роли разработки команде специализированных агентов. Эти агенты не являются отдельными приложениями, а концептуальными персонажами, вызываемыми внутри LLM через тщательно созданные, специфичные для роли промпты и контексты. Этот подход обеспечивает точную фокусировку обширных возможностей модели на поставленной задаче, от написания начального кода до выполнения нюансированного, критического обзора.
Оркестратор: Человек-разработчик: В этом совместном framework человек-разработчик действует как Оркестратор, служа центральным интеллектом и окончательной властью над AI агентами.
- Роль: Лидер команды, архитектор и окончательный принимающий решения. Оркестратор определяет задачи, готовит контекст и проверяет всю работу, выполненную агентами.
- Интерфейс: Собственный терминал разработчика, редактор и нативный веб-интерфейс выбранных агентов.
Область подготовки контекста: Как основа для любого успешного взаимодействия с агентом, Область подготовки контекста — это место, где человек-разработчик тщательно готовит полный и специфичный для задачи брифинг.
- Роль: Выделенное рабочее пространство для каждой задачи, обеспечивающее получение агентами полного и точного брифинга.
- Реализация: Временная директория (task-context/) содержащая markdown файлы для целей, файлы кода и соответствующие документы
Специализированные агенты: Используя целевые промпты, мы можем построить команду специализированных агентов, каждый из которых адаптирован для конкретной задачи разработки.
Агент-строитель: Реализатор
- Цель: Пишет новый код, реализует функции или создает шаблонный код на основе детальных спецификаций.
- Промпт вызова: "Вы — старший инженер-программист. На основе требований в 01_BRIEF.md и существующих паттернов в 02_CODE/, реализуйте функцию..."
Агент-тестировщик: Страж качества
- Цель: Пишет комплексные модульные тесты, интеграционные тесты и end-to-end тесты для нового или существующего кода.
- Промпт вызова: "Вы — инженер по обеспечению качества. Для кода, предоставленного в 02_CODE/, напишите полный набор модульных тестов, используя [Testing Framework, например, pytest]. Покройте все граничные случаи и придерживайтесь философии тестирования проекта."
Агент-документатор: Писарь
- Цель: Генерирует четкую, краткую документацию для функций, классов, API или целых кодовых баз.
- Промпт вызова: "Вы — технический писатель. Сгенерируйте markdown документацию для API endpoints, определенных в предоставленном коде. Включите примеры запросов/ответов и объясните каждый параметр."
Агент-оптимизатор: Партнер по рефакторингу
- Цель: Предлагает оптимизации производительности и рефакторинг кода для улучшения читаемости, поддерживаемости и эффективности.
- Промпт вызова: "Проанализируйте предоставленный код на предмет узких мест производительности или областей, которые можно рефакторить для ясности. Предложите конкретные изменения с объяснениями, почему они являются улучшением."
Агент-процессор: Надзиратель кода
- Критика: Агент выполняет первоначальный проход, выявляя потенциальные ошибки, нарушения стиля и логические недостатки, как инструмент статического анализа.
- Рефлексия: Агент затем анализирует свою собственную критику. Он синтезирует находки, приоритизирует наиболее критические проблемы, отклоняет педантичные или низкоэффектные предложения и предоставляет высокоуровневое, действенное резюме для человека-разработчика.
- Промпт вызова: "Вы — главный инженер, проводящий обзор кода. Сначала выполните детальную критику изменений. Во-вторых, поразмышляйте над своей критикой, чтобы предоставить краткое, приоритизированное резюме наиболее важной обратной связи."
В конечном счете, эта модель под руководством человека создает мощную синергию между стратегическим направлением разработчика и тактическим выполнением агентов. В результате разработчики могут превзойти рутинные задачи, сосредоточив свою экспертизу на творческих и архитектурных вызовах, которые приносят наибольшую ценность.
Практическая реализация
Чек-лист настройки
Для эффективной реализации framework команды человек-агент рекомендуется следующая настройка, сосредоточенная на поддержании контроля при улучшении эффективности.
Обеспечить доступ к пограничным моделям Получить API ключи для как минимум двух ведущих больших языковых моделей, таких как Gemini 2.5 Pro и Claude 4 Opus. Этот подход с двумя провайдерами позволяет проводить сравнительный анализ и защищает от ограничений или простоев одной платформы. Эти учетные данные должны управляться безопасно, как и любой другой производственный секрет.
Реализовать локальный оркестратор контекста Вместо специальных скриптов используйте легкий CLI инструмент или локальный runner агентов для управления контекстом. Эти инструменты должны позволять вам определять простой файл конфигурации (например, context.toml) в корне вашего проекта, который указывает, какие файлы, директории или даже URL компилировать в единую полезную нагрузку для промпта LLM. Это обеспечивает сохранение полного, прозрачного контроля над тем, что модель видит при каждом запросе.
Установить версионированную библиотеку промптов Создайте выделенную директорию /prompts в Git репозитории вашего проекта. В ней храните промпты вызова для каждого специализированного агента (например, reviewer.md, documenter.md, tester.md) как markdown файлы. Отношение к вашим промптам как к коду позволяет всей команде сотрудничать, улучшать и версионировать инструкции, данные вашим AI агентам с течением времени.
Интегрировать рабочие процессы агентов с Git hooks Автоматизируйте ваш ритм обзора, используя локальные Git hooks. Например, pre-commit hook может быть настроен для автоматического запуска Агента-рецензента на ваших staged изменениях. Резюме критики и рефлексии агента может быть представлено прямо в вашем терминале, предоставляя немедленную обратную связь перед финализацией коммита и встраивая шаг обеспечения качества прямо в ваш процесс разработки.

Рис. 1: Примеры специалистов программирования
Принципы руководства дополненной командой
Успешное руководство этим framework требует эволюции от единственного участника к лидеру команды человек-AI, руководствуясь следующими принципами:
Поддерживать архитектурное владение Ваша роль заключается в установлении стратегического направления и владении высокоуровневой архитектурой. Вы определяете "что" и "почему", используя команду агентов для ускорения "как". Вы являетесь окончательным арбитром дизайна, обеспечивая соответствие каждого компонента долгосрочному видению и стандартам качества проекта.
Освоить искусство брифинга Качество выхода агента является прямым отражением качества его входа. Освойте искусство брифинга, предоставляя четкий, недвусмысленный и комплексный контекст для каждой задачи. Думайте о вашем промпте не как о простой команде, а как о полном пакете брифинга для нового, высоко способного члена команды.
Действовать как окончательный контроль качества Выход агента всегда является предложением, никогда командой. Относитесь к обратной связи Агента-рецензента как к мощному сигналу, но вы являетесь окончательным контролем качества. Применяйте вашу предметную экспертизу и специфичные для проекта знания для валидации, оспаривания и одобрения всех изменений, действуя как окончательный страж целостности кодовой базы.
Участвовать в итеративном диалоге Лучшие результаты возникают из разговора, а не монолога. Если первоначальный выход агента несовершенен, не отбрасывайте его — улучшите его. Предоставьте корректирующую обратную связь, добавьте уточняющий контекст и запросите еще одну попытку. Этот итеративный диалог критически важен, особенно с Агентом-рецензентом, чей выход "Рефлексия" предназначен для начала совместного обсуждения, а не просто финального отчета.
Заключение
Будущее разработки кода наступило, и оно дополнено. Эра одинокого программиста уступила место новой парадигме, где разработчики руководят командами специализированных AI агентов. Эта модель не уменьшает человеческую роль; она возвышает ее, автоматизируя рутинные задачи, масштабируя индивидуальное влияние и достигая скорости разработки, ранее невообразимой.
Перекладывая тактическое выполнение на агентов, разработчики теперь могут посвятить свою когнитивную энергию тому, что действительно важно: стратегическим инновациям, устойчивому архитектурному дизайну и творческому решению проблем, необходимому для создания продуктов, которые радуют пользователей. Фундаментальные отношения были переопределены; это больше не соревнование человека против машины, а партнерство между человеческой изобретательностью и AI, работающими как единая, бесшовно интегрированная команда.
Ссылки
Навигация
Назад: Приложение F. Под капотом - взгляд изнутри на механизмы рассуждения агентов
Вперед: Заключение