公開日:

森田 嶺

【Antigravity連載⑭】サブエージェントの使い方を徹底解説

【Antigravity連載⑭】サブエージェントの使い方を徹底解説サムネイル画像

Antigravityでアプリの改修を依頼するとき、「既存コードを調べる」「修正する」「テストする」という複数の仕事を、ひとつのエージェントにまとめて任せていませんか。小さな変更なら問題ありませんが、対象が広がると調査と実装が入り交じり、何が終わっていて、何を確認すべきか分かりにくくなります。

こうした作業を分担する仕組みが、サブエージェントです。今回は、独立したデスクトップアプリであるAntigravity 2.0に対象を絞り、サブエージェントの概要、使い方、専用の役割を作る設定方法を解説します。

※本記事はAntigravity2.0のデスクトップアプリで利用可能なサブエージェントを扱っています。

サブエージェントとは何か

サブエージェントは、メインのエージェントから仕事の一部を任され、別の会話で作業するエージェントです。例えば、ログイン機能の改修を依頼した場合、メインのエージェントが全体の仕事を進めながら、既存コードの調査をサブエージェントに任せる、といった使い方ができます。複数のサブエージェントを並行して動かすことも可能です。

サブエージェントの活用には仕事の切り分けが重要

イメージとしては、メインのエージェントが担当者、サブエージェントが特定の仕事を引き受ける協力者です。ただし、人間のチームと同じように、仕事を分ければ必ずよい結果になるわけではありません。「何を調べるのか」「ファイルを変更してよいのか」「どのような結果を返すのか」が曖昧なままでは、作業結果を確認しづらくなります。サブエージェントを活用するうえで、最初に考えるべきことは仕事の切り分け方です。

サブエージェントには、それぞれ独立した会話が用意されます。メインのエージェントがそれまでに交わした会話履歴を丸ごと引き継ぐわけではないため、依頼時には必要な前提や目的を伝える必要があります。作業が終わると、その結果がメインのエージェントへ返されます。

サブエージェントのステータス

サブエージェントの状態は、Antigravity 2.0のサブエージェントパネルから確認できます。主なステータスは、次の3種類です。

ステータス

状態

利用者ができること

Running

サブエージェントが調査、ファイル操作、ツールの実行、回答の作成などを進めている状態

会話を開いて進捗を確認する。不要になった場合は「Stop Subagent」で停止する

Idle

依頼された仕事を完了し、結果をメインエージェントへ返して待機している状態

追加のメッセージを送り、それまでの会話内容を引き継いだまま作業を再開させる

Killed

サブエージェントが停止され、再開できなくなった状態

過去の会話記録を開き、停止前の作業内容を確認する

「Idle」は、処理が完全に終了した状態ではありません。関連する追加調査がある場合は、新しいサブエージェントを起動せず、待機中のサブエージェントへ続けて依頼できます。一方、「Killed」になったサブエージェントは再開できません。サブエージェント用に一時的なGit worktreeが作られていた場合は、自動的に削除されます。

複数のサブエージェントを並行して動かす場合は、ステータスを確認することで、どの作業が進行中で、どの作業が完了しているのかを把握しやすくなります。

Antigravity 2.0で使い始める方法

まずはプロジェクトを作成する

Antigravity 2.0では、エージェントは「プロジェクト」の中で作業します。まだプロジェクトを作っていない場合は、左側のサイドバーにあるフォルダーと「+」のアイコンを選び、「New Project」から新しいプロジェクトを作成します。続いて「Add Folder」で対象のフォルダーやGitリポジトリを追加し、「Create」を選択します。プロジェクトに追加したフォルダーは、エージェントが扱う作業範囲の基礎になります。

プロジェクトを用意したら、チャットの入力欄から作業を依頼します。Antigravity 2.0では、エージェントを開始する際に、現在のフォルダーで作業する「Local Mode」と、独立したGit worktreeで作業する「New Worktree Mode」を選べます。これはメインのエージェントの作業場所を決める画面です。サブエージェントをどの作業場所で動かすかという設定とは、区別して理解してください。

組み込みサブエージェントの利用

Antigravityには標準で利用可能な組み込みサブエージェントが存在します。

サブエージェント

説明

research

コードベースの調査、ファイルナビゲーション、構造探索に最適化されたサブエージェント

self

呼び出し元のエージェントの直接のクローンであり、同一のシステム命令とツールセットを共有したサブエージェント

browser

サンドボックス化されたウェブブラウザを操作して、対話型のブラウザテストを実行できるサブエージェント

サブエージェントを最初に試すなら、手間なくすぐに利用できるという観点で、これら組み込みサブエージェントを利用することをおすすめします。

本当にそのようなサブエージェントが存在するのか疑わしい場合は、AntigravityでConversationを立ち上げて、サブエージェントの仕様を確認してみましょう。例として、researchエージェントについて確認すると、以下のようにエージェントの仕様について丁寧に教えてくれます。

メインのエージェントに対して、組み込みサブエージェント「research」を活用する依頼を行う場合は、以下のプロンプトを送信します。

独自実装しているAPIに関連する情報を調べてください。調査は research サブエージェントに任せ、ファイルは変更せず、処理の流れと修正時に影響しそうな箇所を日本語でまとめてください。

サブエージェントの進捗を確認する

サブエージェントはバックグラウンドで動きます。前述のプロンプトを実行すると、以下の通り、Conversationの入力欄の上部にサブエージェントのステータスを確認するためのパネルが出現します。

赤枠のパネルをクリックすると、サブエージェントの進捗状況を確認することができます。

サブエージェントの作業が終了すると、結果がメインエージェントに戻ってきます。メインエージェントはサブエージェントの実行結果を以下のように出力します。

以上がメインエージェントとサブエージェントの連携プロセスです。

サブエージェントのアウトプットをレビューする

前述した通り、Antigravity 2.0では、サブエージェントのパネルから各エージェントの会話を開き、進捗を確認できます。作業中は Running、結果を返して待機している状態は Idle、終了させた状態は Killed というステータスになります。実行中の作業を止めたい場合は、パネルにある停止操作を使えます。

ここで確認したいのは、単に「動いているか」だけではありません。依頼した範囲の作業をしているか、ファイルを変更していないか、結果に根拠となるファイル名や確認内容が含まれているかを見ます。サブエージェントが返した結果は、メインのエージェントの次の判断に使われるため、重要な作業ほど途中経過と最終結果の両方を確認する必要があります。

仕事を終えて待機中のサブエージェントには、追加の指示を送って作業を再開させることもできます。例えば、ログイン処理の調査後に「エラー処理に関係する箇所も確認して」と続ける場合です。一度調べた内容を踏まえて、同じサブエージェントに追加調査を任せられます。

サブエージェントと分担すると効果的な作業は?

使い始めは、ひとつの大きな開発作業を、結果を確認しやすい単位に分けることをおすすめします。例えば、新しい画面を作るなら、既存画面の構造調査、共通部品の確認、関連テストの確認という分け方です。いずれも目的が明確で、結果を受け取ったメインのエージェントが次の作業を判断できます。

一方で、「アプリ全体を改善して」とだけ伝えると、どの機能を優先するのか、どこまで変更してよいのかが分かりません。サブエージェントに渡す依頼は、専門的な言葉を並べるよりも、「対象」「してほしい作業」「変更の可否」「完了時に返すもの」を具体的にするほうが重要です。

例えば、コードレビュー用のサブエージェントには「変更されたファイルだけを確認し、不具合につながる箇所を、発生条件とともに報告する」と伝えます。調査用なら「関連ファイルを探し、処理の流れを説明する。変更はしない」と伝えます。このように担当範囲を明確にすると、メインのエージェントも結果を取りまとめやすくなります。

専用のサブエージェントを設定する方法

同じ仕事を繰り返し任せるなら、専用のサブエージェントを作成できます。設定はMarkdownファイルに記述します。ファイルの先頭には名前や説明などの設定項目を置き、その下に仕事の進め方を書きます。先頭の設定部分を「YAMLフロントマター」と呼びますが、初めて使う段階では「役割の基本情報を書く場所」と考えれば十分です。

プロジェクト内だけで使う場合は、対象となるフォルダーのルートに .agents/agents/ というフォルダーを作り、そこへMarkdownファイルを置きます。例えば、変更箇所を確認する役割なら、.agents/agents/code-reviewer.md とします。この場所に置いた設定は、そのワークスペース向けのカスタムサブエージェントとして検出されます。

例えば、コードレビュー用のサブエージェントを作成したい場合は、以下のように書きます。

---

name: code-reviewer

description: 変更されたコードを確認し、不具合につながる箇所を報告する。

subagent: true

mainAgent: false

model: inherit

---

 

# 役割

変更されたコードを確認し、不具合につながる箇所を調べてください。

 

# 作業方針

- ファイルは変更しないでください。

- 指摘には、対象ファイルと問題が起きる条件を含めてください。

- 確認できた事実と推測を分けて報告してください。

name は役割の識別名です。description は、メインのエージェントがどんな仕事を任せるべきか判断するための説明に使われます。subagent: true はサブエージェントとして呼び出せるようにする設定、mainAgent: false は通常の会話で選ぶメインのエージェントとしては使わない設定です。model: inherit は、呼び出し元のモデル設定を引き継ぐ指定です。いくつか項目がありますが、name と description は必須項目です。

設定したら、メインのエージェントに「変更内容を code-reviewer サブエージェントに確認させ、指摘をまとめてください」と依頼します。実際に起動したか、結果がどのように返ってきたかは、サブエージェントのパネルで確認します。

企業で使う場合に注意したいこと

企業利用で最も注意したいのは、サブエージェントもメインエージェントの権限を引き継ぐ点です。複数起動すれば、その分だけファイル変更やコマンド実行が並行するため、誤操作を見落としやすくなります。

対策として、権限プリセットは「Default」を使用し、プロジェクトには作業対象のリポジトリだけを登録します。「Turbo」はファイルシステム全体へのアクセスや制限のないコマンド実行を許可するため、通常業務では避けたほうがよいでしょう。Defaultでは、コマンドは原則としてサンドボックス内で実行され、外部ネットワークやホスト環境へのアクセスには承認が必要です。

本番用の認証情報、顧客データ、SSH鍵などはプロジェクト内に置かず、必要ならread_fileとwrite_fileのDenyルールで対象パスを明示的に遮断します。sudo、破壊的な削除、未確認の外部通信もDenyまたはAskに設定してください。コードを変更させる場合は、サブエージェントごとにGit worktreeを分け、完了後に差分を確認してから反映します。承認画面では、コマンド全文、アクセス先、許可範囲を確認し、対象を不用意に上位フォルダへ広げないことも重要です。

まとめ

Antigravity 2.0のサブエージェントは、メインのエージェントが仕事の一部を別のエージェントへ任せる仕組みです。最初は組み込みの research に小さな調査を任せ、パネルで作業と結果を確認するところから始めると、動きがつかめます。繰り返し任せたい仕事が見えてきたら、Markdownファイルで専用の役割を設定できます。

使いこなすうえで重要なのは、何人のエージェントを動かすかより、誰に何を任せるかです。対象、変更の可否、期待する報告内容を明確にする。その基本を押さえることが、サブエージェントを実務で活用する第一歩になると考えます。

森田 嶺
森田 嶺
大学卒業後、 AWS や Google Cloud 等、主にクラウドを基盤とした新規サービス開発の経験を経て、YOSHIDUMIに入社。Google ドライブ拡張サービス「Cmosy Pocket」「共有ドライブマネージャー」等、 Google Cloud を活用した自社サービスの開発に従事。現在、 Google 等が提供する生成AIを活用したサービスを開発中。https://x.com/r__morita
Geminiの各機能、どう活かす?日常業務を加速する活用術と全社展開へのステップセミナー

14:00-15:00 オンライン

Geminiの各機能、どう活かす?日常業務を加速する活用術と全社展開へのステップセミナー

詳細はこちら

Microsoft 365からGoogle Workspaceへ成功に導く移行ロードマップと、その先の運用・ガバナンス設計セミナー

15:00-16:00 オンライン

Microsoft 365からGoogle Workspaceへ成功に導く移行ロードマップと、その先の運用・ガバナンス設計セミナー

詳細はこちら

オンラインセミナー開催中

お申込みはこちらをCheck!