1. Введение

В этом практическом занятии вы создадите многоязычную систему аудита качества кода и автоматизированного исправления ошибок, используя параллельную многоагентную оркестровку в Antigravity. Вместо традиционного, ручного и линейного анализа множества отдельных каталогов сервисов, вы развернете специализированных субагентов на основе ИИ для параллельной проверки различных языковых стеков.
Вам предстоит создать агента- координатора для определения структуры проекта, управлять субагентами для выполнения модульного тестирования, составить план аудита, проверить соответствие требованиям, создать отчет об аудите и автономно рефакторить приоритетные проблемы в кодовой базе.
Что вы узнаете
- Обнаружение проекта: Как развернуть агента-координатора для построения карты каталогов и определения языков программирования в сложной микросервисной архитектуре.
- Организованный параллелизм: как распределить проверку кода и модульное тестирование между независимыми, специфичными для каждого языка субагентами ИИ одновременно.
- Контроль с участием человека: как помочь агенту-координатору составить план аудита и безопасно сделать паузу для вашего ознакомления и утверждения перед его выполнением.
- Автоматизированное исправление ошибок: как развернуть специализированных субагентов-разработчиков для автономной рефакторизации и решения приоритетных проблем кодирования и соответствия требованиям.
- Циклы верификации: как проверить изменения кода, сгенерированные ИИ, путем автоматического повторного запуска наборов тестов, чтобы убедиться в отсутствии регрессий.
Что вам понадобится
Для выполнения этого практического задания вам потребуется установить следующие инструменты локально:
- Google Антигравитация
- Гит
- В вашей среде должен быть установлен один или несколько из следующих языков программирования: Go, Python, C# / .NET, NodeJS, Java.
Давайте начнём!
2. Настройка среды
Во-первых, убедитесь, что у вас установлена игра Antigravity.
Во-вторых, клонируйте Online Boutique , демонстрационное приложение на основе облачных микросервисов:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
Создайте новый проект в Antigravity, используя следующий код. В Antigravity выберите Create New Project в разделе Projects в левой части экрана:

Выберите папку репозитория:

Вы можете выбрать режим Default для Agent Security Settings , а также использовать то же имя microservices-demo для проекта.
3. Открытие
В микросервисной архитектуре кодовая база обычно включает в себя множество сервисов, расположенных в разных папках или репозиториях и использующих различные программные стеки. Это справедливо и для демонстрационного приложения «Онлайн-бутик» .
Прежде чем запускать агентов, давайте разберемся со структурой проекта. На первом этапе вы развернете агент- координатор с помощью Antigravity, который будет обнаруживать различные микросервисы на разных языках в каталоге src/ и координировать работу субагентов, специфичных для каждого языка, на последующих этапах для работы с каждым микросервисом.
Давайте сначала попросим агента-координатора изучить кодовую базу и составить карту того, какие сервисы находятся в каких каталогах и какие языки они используют.
В Antigravity начните новый диалог в созданном ранее проекте microservices-demo . В качестве модели можно использовать новейшую модель Gemini со средним уровнем сложности:

Попробуйте эту подсказку:
Identify all the microservices located under the src/ directory,
detect which programming language each service is written in, and
output the list as a clean markdown table showing: Service Name,
Directory, and Primary Language.
В итоге Antigravity должна представить неплохой список предоставляемых услуг и основной язык программирования, что-то вроде этого:

4. Выберите языки
Теперь, когда вы составили план кодовой базы, вам нужно выбрать языки, с которыми вы хотите работать. Вам необходимо убедиться, что у вас есть необходимые компиляторы/инструменты для выбранных вами языков (например, dotnet tool для C#, javac для Java и т. д.).
После выбора языков программирования, с которыми вы хотите работать, крайне важно проверить работоспособность существующего кода, запустив соответствующие модульные тесты для каждого языка.
Для запуска наборов тестов на каждом языке можно использовать специализированные параллельные субагенты . Это подчеркивает ключевое преимущество многоагентного рабочего процесса: одновременное выполнение изолированных тестов в отдельных рабочих пространствах, специфичных для каждого языка.
Адаптируйте и запустите следующую командную строку для вашей среды:
I have [C#, Python, Go, Java, Node.js] setup locally.
Run the unit tests for services in these languages
in parallel subagents and report back in a clean markdown
on their pass/fail status.
Вы должны увидеть несколько агентов, запускающих тесты на каждом языке. Убедитесь, что вы проверили каждого субагента, поскольку они запрашивают разрешения на запуск инструментов, как показано ниже:

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

5. Спланируйте аудит.
План
В сложных рабочих процессах внесение изменений в код без плана может привести к конфликтам. Мы хотим создать структурированный и прозрачный план того, что мы намерены проверить. Вы попросите агента-координатора разработать план проверки, включающий проверки качества кода, обработку исключений, проверку корректности запросов и так далее.
Для обеспечения человеческого контроля (участия человека в процессе) координатор запишет план в документ и немедленно приостановит его для вашего ознакомления.
Попробуйте выполнить это задание, чтобы составить план аудита:
We want to audit these microservices for code quality,
exception handling and database query formatting standards
for the languages I have set up locally. Design an audit plan
detailing what you will check and save it as an Audit Plan artifact.
Do not execute the audit yet. Stop after writing the plan and wait
for my instructions.
В чате вы должны увидеть артефакт «План аудита»:

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

Необязательно : вы можете добавить комментарии к плану (например, «убедитесь, что все публичные методы хорошо документированы»), если хотите внести изменения, и дорабатывать его, пока не будете удовлетворены результатом.
6. Провести аудит
Выполнять
После утверждения плана аудита приступим к его проведению. Агент-координатор запустит независимые параллельные подагенты для каждого языкового стека. Каждый агент будет работать одновременно в своей собственной папке службы, предотвращая конфликты файлов и ускоряя процесс сканирования. Агент-координатор объединит полученные результаты в единую панель мониторинга качества.
Вот следующее задание, которое стоит попробовать:
Execute the audit plan by spawning the parallel language subagents.
Once they finish scanning, collect their findings into an audit
report artifact, sorted by language and then priority. Include the
file paths, line ranges, snippets, and explanation of why it is a
finding. Stop after writing the report.
Вы снова должны увидеть нескольких агентов:

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

Обзор
После открытия отчета об аудите вы также увидите подробные результаты по каждому языку. Например, вот высокоприоритетная проблема, связанная с cartservice в C#:

Ознакомьтесь с остальной частью аудиторского отчета, чтобы увидеть результаты проверки.
7. Очистка
Диагностика проблем с качеством кода — это только половина дела. Теперь мы будем использовать агентов для решения этих проблем. Вместо того чтобы писать код вручную, мы можем делегировать рефакторинг субагентам разработчиков, работающим с конкретным языком программирования, которые смогут переписать код в соответствии с передовыми практиками.
Существуют разные способы это сделать:
- Можно запустить отдельного агента для каждого языка и позволить всем агентам исправлять все проблемы одновременно. Это может сработать, но отслеживать и проверять всё одновременно может быть слишком сложно.
- Вы можете запускать по одному агенту для каждого языка и позволять ему обрабатывать проблемы именно на этом языке. Это упростит управление, но вам все равно нужно будет доверять агенту в вопросе внесения множественных изменений в различные файлы.
- Вы можете поручить одному агенту обработку одной задачи за раз, пока вы проверяете результат, прежде чем переходить к следующей. Это более консервативный подход, но он также гарантирует, что вы будете в курсе каждого изменения.
Мы выберем более консервативный подход №3, используя следующий вопрос:
Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.
Через несколько секунд вы увидите, как агент начнет работу над задачей с наивысшим приоритетом на выбранном вами языке и исправит ее.
В итоге вы также можете получить артефакт «Пошаговое руководство», показывающий, какие изменения внес агент:

Необязательно: На этом этапе вы можете попросить агента изменить реализацию, или, если вас устраивают изменения, вы можете попросить агента добавить новый модульный тест, охватывающий эти изменения.
8. Проверка
В разработке программного обеспечения исправление не считается завершенным, пока оно не будет проверено. На этом заключительном этапе мы можем попросить агента запустить набор тестов, чтобы убедиться, что изменения в коде не привели к регрессиям, и повторно запустить сканер аудита, чтобы убедиться, что проблема полностью решена.
На этом этапе показан полный автоматизированный цикл обратной связи, включающий планирование, сканирование, исправление и проверку.
Выполните следующую команду:
Rerun the unit tests for the changed language. If they pass, rerun
the relevant audit agent to check if the finding is resolved. If it
is resolved, mark the issue as resolved in the audit report.
Вы должны увидеть, как запускается субагент Test Runner и выполняет тесты, а затем субагент Auditor обновляет отчет аудита. В итоге вы должны увидеть обновленный отчет аудита с последним статусом:

Один вопрос решен! Теперь вы можете перейти к остальным вопросам, возможно, на этот раз используя менее консервативный подход, позволив агентам выполнить больше работы, прежде чем вы начнете проверку.
9. Поздравляем!
Поздравляем! Вы только что завершили сложный многоязычный анализ кода и автоматизированный процесс исправления ошибок с помощью Antigravity.
Благодаря многоагентной архитектуре Antigravity вы не просто автоматизировали статические проверки, а организовали автоматизированную команду обеспечения качества. Пока специализированные агенты, отвечающие за конкретные языки программирования, работали над специфическими для каждого языка задачами, ваш агент-координатор составлял централизованный план и отчет, а затем управлял целенаправленной рефакторизацией кода.
Основные выводы
- Организованный параллелизм : Вы научились распределять проверки и тесты между независимыми, языково-ориентированными подсистемами, работающими параллельно, избегая линейных узких мест в процессе проверки.
- Участие человека : Проверяя и комментируя сгенерированный план аудита перед его выполнением, вы осуществляли контроль за автономными операциями.
- Автоматизированное исправление и проверка : Вы увидели, как агенты ИИ могут не только диагностировать несоответствия качества кода, но и рефакторить код, а также проверять свои собственные изменения с помощью локальных наборов тестов.