1. はじめに

この Codelab では、Antigravity の並列マルチエージェント オーケストレーションを使用して、多言語のコード品質監査と自動修復システムを構築します。複数の個別のサービス ディレクトリを従来の手動で線形に確認する代わりに、特殊な AI サブエージェントをデプロイして、さまざまな言語スタックを並行して検査します。
コーディネーター エージェントを作成して、プロジェクト レイアウトの検出、単体テストを実行するサブエージェントの管理、監査計画の作成、コンプライアンスのスキャン、監査レポートの作成、コードベース内の優先度の高いコーディング問題の自律的なリファクタリングを行います。
学習内容
- プロジェクト検出: コーディネーター エージェントをデプロイして、複雑なマイクロサービス アーキテクチャ全体でディレクトリをマッピングし、プログラミング言語を検出する方法。
- オーケストレーションされた並列処理: 独立した言語固有の AI サブエージェント間でコード監査と単体テストを同時に分散する方法。
- Human-in-the-Loop 監督: コーディネーター エージェントが監査計画を作成し、実行前に安全に一時停止してレビューと承認を行う方法。
- 自動修復: 優先度の高いコーディングとコンプライアンスの問題を自律的にリファクタリングして解決するために、特別なデベロッパー サブエージェントをデプロイする方法。
- 検証ループ: テストスイートを自動的に再実行して、リグレッションが導入されていないことを確認することで、AI によって生成されたコード変更を検証する方法。
必要なもの
この Codelab では、次のツールをローカルにインストールする必要があります。
- Google Antigravity
- Git
- 環境に設定されている次の言語の 1 つ以上: Go、Python、C# / .NET、NodeJS、Java
では始めましょう。
2. 環境設定
まず、Antigravity がインストールされていることを確認します。
次に、クラウド マイクロサービスのデモ アプリケーションである Online Boutique をクローンします。
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
コードを使用して Antigravity に新しいプロジェクトを作成します。Antigravity で、左側の Projects の下にある Create New Project を選択します。

リポジトリ フォルダを選択します。

Agent Security Settings の Default モードを選択し、プロジェクトに同じ名前 microservices-demo を使用することもできます。
3. 検出
マイクロサービス アーキテクチャでは、通常、コードベースには複数のフォルダやリポジトリ、プログラミング スタックにまたがる複数のサービスが含まれます。これは、Online Boutique デモ アプリケーションにも当てはまります。
エージェントを起動する前に、プロジェクト レイアウトを確認しましょう。最初のステップでは、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. 言語を選択する
コードベースをマッピングしたら、使用する言語を選択する必要があります。選択した言語に必要なコンパイラやツール(C# の dotnet ツール、Java の javac など)が用意されていることを確認する必要があります。
使用する言語を選択したら、その言語の対応する単体テストを実行して、現在のコードベースの健全性を確認することが重要です。
専用の並列サブエージェントを使用して、各言語でテストスイートを実行できます。これは、マルチエージェント ワークフローの核となる機能(言語固有の個別のワークスペースで分離されたテストを同時に実行する)を強調するものです。
環境に合わせて次のプロンプトを調整して実行します。
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.
複数のエージェントが再び表示されます。

各サブエージェントを監視し、監査の実行に必要な権限を付与します。最終的に、監査レポート アーティファクトが表示されます。

確認
監査レポートを開くと、各言語の詳細な結果も表示されます。たとえば、C# の cartservice からの優先度の高い問題は次のようになります。

監査レポートの残りの部分で、検出結果を確認してください。
7. 修復
コード品質の問題の診断は、戦いの半分にすぎません。次に、エージェントを使用して問題を解決します。コードを手動で記述する代わりに、言語スコープのデベロッパー サブエージェントにリファクタリングを委任できます。これにより、コードを書き換えてベスト プラクティスに準拠させることができます。
これにはさまざまな方法があります。
- 言語ごとにエージェントを生成し、すべてのエージェントがすべての問題を一度に解決できるようにします。この方法でうまくいくこともありますが、同時に追跡して確認するには多すぎるかもしれません。
- 一度に 1 つの言語に対して 1 つのエージェントを生成し、その言語の問題を処理させることができます。管理しやすくなりますが、複数のファイルに対して複数の変更を行うエージェントを信頼できる必要があります。
- この方法では、1 つの変更を 1 人のエージェントが処理し、結果を確認してから次の変更に進むことができます。より慎重なアプローチですが、各変更について常に最新情報を把握できます。
次のプロンプトを使用して、より保守的なアプローチ 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.
数秒後、選択した言語で最優先事項に取り組んで修正するエージェントが表示されます。
最終的に、エージェントが変更した内容を示す Walkthrough アーティファクトを取得することもできます。

省略可: この時点で、エージェントに実装の変更を依頼できます。変更に満足している場合は、エージェントに新しい単体テストを追加して変更をカバーするよう依頼できます。
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.
テストランナー サブエージェントがスピンアップしてテストを実行し、監査 サブエージェントが監査レポートを更新します。最終的に、監査レポートが最新のステータスで更新されます。

1 つの問題が解決しました。今度は、エージェントがより多くの作業を行ってから審査を行うという、より保守的でないアプローチを使用して、残りの問題に対処できます。
9. 完了
おめでとうございます!Antigravity を使用して、複雑な多言語コードレビューと自動修復ワークフローを完了しました。
Antigravity のマルチエージェント アーキテクチャを活用することで、静的チェックを自動化しただけでなく、自動化された品質保証チームを編成しました。言語固有の問題に特化した言語エージェントが同時に取り組む一方で、コーディネーター エージェントは一元化された計画とレポートをまとめ、その後、対象を絞ったコードのリファクタリングを管理しました。
重要ポイント
- オーケストレートされた並列処理: 監査とテストを、並列で実行される言語固有の独立したサブエージェントに分散し、線形レビューのボトルネックを回避する方法を学びました。
- Human-in-the-Loop: 生成された監査計画を実行前に確認してアノテーションを付けることで、自律的なオペレーションを監督しました。
- 自動修復と検証: AI エージェントは、コード品質の不一致を診断するだけでなく、コードをリファクタリングし、ローカル テストスイートに対して独自の変更を検証することもできます。