こんにちは!SCSKの松浦です。
前編では、Googleが提供する自律型AIエージェント開発環境「Antigravity 2.0」の概要や特徴、Agent DesignerやGoogle ADK(Agent Development Kit)との違いについてご紹介しました。
Antigravity 2.0について調べる中で特に印象的だったのは、AIが単に質問へ回答するだけでなく、開発者のペアプログラミングパートナーとしてコード生成やテスト、修正案の提案などを通じて開発作業を支援してくれる点でした。
そこで後編となる本記事では、Antigravity 2.0を実際に利用して、Google Places APIと連携した「周辺スポット案内エージェント」を作成する実践ハンズオンをお届けします!
自然言語で要件を伝え、AIエージェントがどのように計画やコードを作成し、テストやトラブルシューティングを進めていくのか、その一部始終を追っていきます。
本記事では、主に以下の内容をご紹介します。
- 今回作成するエージェントの概要
- Google Places APIを利用するための事前準備とセキュリティ対策
- Antigravity 2.0への指示と自律開発の流れ
- テスト実行時に発生した不備とAIによる自己修復(トラブルシューティング)
- 完成したエージェントの動作確認(A2UIカードウィジェット)
- 実際に作成してみた感想・まとめ
それでは、実際に周辺スポット案内エージェントを作成していきます。
今回作成するエージェント
今回作成するのは、Google Places APIと連携した「周辺スポット案内エージェント」です。
利用者が探したい場所や条件(例:「品川 ラーメン」「名古屋駅 カフェ」など)を入力すると、Google Places APIから最新の施設情報を取得し、店舗名、★評価、口コミ件数、営業時間、Googleマップリンクがひと目で分かるリッチなカード形式(A2UI)で案内してくれるエージェントを目指します。
エージェントの大まかな処理の流れは以下のとおりです。
- 利用者が場所や探したい施設の条件を入力する
- AIエージェントが入力内容を理解し、必要なツール(
search_places)を呼び出す - Google Places APIから最新の施設情報(評価・営業時間・位置情報など)を取得する
- 取得した情報をA2UIのカードウィジェット形式に整形して画面へ表示する
- 利用者はカード内のボタンから直接Googleマップを開いて詳細を確認できる
今回はチャットの文字返答だけでなく、利用者が直感的に確認・操作できるウィジェット画面(A2UI)として完成させることを目標としました。
完成イメージ
Google Places APIとは
Google Places APIは、Google Maps Platformで提供されているWeb APIの一つです。世界中の店舗や施設に関する位置情報、営業時間、ユーザー評価、写真などをアプリケーションから取得することができます。
このAPIとAIエージェントを組み合わせることで、
- LLM単体では把握できない「最新のリアルタイム営業時間(営業中/準備中)」が取得できる
- Googleマップ上の「最新の★評価や口コミ件数」をもとに案内できる
- 取得した店舗の公式GoogleマップURLを自動生成して案内できる
といった、実用性の高いエージェントを実現できます。
事前準備(Google Cloud設定とセキュリティ対策)
エージェントの作成を始める前に、Google Places APIを利用するための環境準備と、安全に利用するためのセキュリティ設定を行います。
1. Google Places API (New) の有効化
Google Cloud コンソールを開き、使用するプロジェクトを選択します。
APIライブラリから「Places API (New)」を検索し、有効化を設定しました。
Google Places APIの有効化画面
2. APIキーの発行とセキュリティ制限
続いて認証情報画面からAPIキーを発行します。
ここでAPIキーが不正利用されたり漏洩したりしないよう、以下のセキュリティベストプラクティスを適用しました。
- API制限の設定:発行したAPIキーの制限設定で「キーを制限」を選択し、「Places API (New)」のみにアクセス権限を絞り込みました(万が一キーが流出しても他の高額APIへの悪用を遮断)。
- アプリケーション制限(HTTPリファラー制限):Web画面で動かす場合、許可したローカルURL(
http://localhost:*/*など)からのみAPIを呼び出せるように制限をかけました。 - 環境変数(.env)での分離管理:ソースコード内にAPIキーを直書きせず、プロジェクト直下の
.envファイルに保存してプログラムから読み込む構成にしました。また、誤ってGitリポジトリへアップロードされないよう.gitignoreにも追加しました。
Antigravity 2.0に作成を依頼する
事前準備が完了したら、Antigravity 2.0の開発画面を開き、作成したいエージェントの内容を伝えます。
今回は、自然言語で以下のようなプロンプトを入力して依頼しました。
細かいPythonの関数定義やUIのHTML/CSS設計などは指定せず、やりたい要件だけを伝えてAIエージェントに設計・実装を任せてみました。
AIエージェントによる実装支援と承認プロセス
プロンプトを送信すると、AIエージェントがいきなり勝手にコードを書き換えるのではなく、まずは実装計画(Implementation Plan)を整理して提示してくれました。
「どのような設計方針で進めるか」「どのファイルをどう作成するか」を事前に確認し、人間が承認することで初めて実際の実装作業に移るため、AIが暴走して意図しないコード改変を行う心配がありません。
Antigravity 2.0が自律的に進めた主な開発作業は以下のとおりです。
- ツールの作成:
tools/search_places.pyを生成し、Places APIへのリクエスト処理を実装 - エージェントの定義:Google ADKの
Agentクラスを用いてagent.pyにプロンプトとツール連携を定義 - A2UIウィジェットの作成:カード型UIを描画するためのUI定義ファイルを生成
- 単体テストの実行:生成したツールが正しくPlaces APIと通信できるかを自動テスト
安全性を確保する「承認(Confirm)」の仕組み
Antigravity 2.0では、ファイルの書き換えやコマンド実行(テスト実行やサーバー起動など)を行う際に、人間に許可を求める承認画面(Confirm)が表示されます。
内容を確認して承認ボタンを押すだけで、AIエージェントが必要な作業を次々と進めてくれました。
開発時のトラブルシューティング(AIの自己修復を体験!)
実装完了後、ローカルサーバー(adk web)を立ち上げて動作確認を行ったところ、2つのトラブルに遭遇しました。
しかし、ここでのAIエージェントによる「自己修復(Self-healing)」の対応力に大変驚かされました。
トラブル1:検索ボタンを押しても結果が変わらない
最初に生成されたA2UIウィジェットの入力欄にキーワードを入力して検索ボタンを押したものの、画面上の店舗カードが更新されない現象が発生しました。
チャットで「検索ボタンを押しても結果が更新されません。APIと正しく連携して再描画されるよう修正してください」と伝えたところ、AIが即座にフロントとバックエンドの連携の不備を特定。コード修正から単体テストの再実行まで一貫して行い、自律的に修復してくれました。
トラブル2:機能追加による不具合 ➡️ 安定版へのスマートなロールバック
続いて調子に乗って「徒歩所要時間や距離の条件(徒歩○分以内など)も自動計算してほしい」と追加依頼をしたところ、距離計算や駅名座標の判定処理が複雑化し、意図通りに検索結果が絞り込めない状態に陥ってしまいました。
そこで「うまく動いていないので、さっきまでの安定した状態に戻して」と日本語で伝えたところ、AIエージェントが追加した複雑なロジックを安全に取り除き、直前の安定バージョンへと自動で巻き戻し(ロールバック)。単体テスト(全件PASS)まで自律して実行し、すぐに安定稼働状態に復旧させてくれました。
このように、「不具合や変更があっても、自然言語で伝えるだけでAIが原因特定・修正・ロールバックまでこなしてくれる」という体験は、開発経験の少ない私にとって非常に心強いサポートでした。
トラブル修正・ロールバック時の画面
完成したエージェントを動かしてみる
修正が完了し、完成した周辺スポット案内エージェントをADK Playground(adk web)上で動かしてみました!
ウィジェットの入力欄に「品川 ラーメン」や「名古屋駅 カフェ」と入力して検索ボタンを押します。
エージェントの検索結果画面
画像のように、以下の情報が美しく整理されたカード形式で出力されました。
- 店舗名・住所
- ★ユーザー評価(例: ⭐4.3)
- 口コミ件数(例: 1,670件)
- リアルタイムの営業状態(例: 🟢営業中)
- 「Google マップで開く ↗」ボタン(クリックすると別タブでマップが開く)
従来のエージェントは長文テキストで回答することが多く、一覧で見るときに読みづらい課題がありました。
しかし、Google ADKが提唱するA2UI(Agent-to-UI)を活用することで、エージェントの出力をWebコンポーネント(カードやボタン)として動的に描画でき、直感的で使いやすいUI/UXを実現できる点が非常に魅力的でした。
実際に作成してみた感想
今回、Antigravity 2.0を利用してGoogle Places API連携エージェントを作成してみて、従来の開発スタイルとはまったく異なる新しい体験を得ることができました。
特に印象に残ったのは以下の点です。
- プロコード開発のハードルが劇的に下がる:Google ADKのフレームワーク構築や外部API通信コードを一から手書きしなくても、プロンプト指示だけで高品質なコードが組み上がったこと。
- エラー時の自己修復力:動かない部分があっても、状況を日本語で伝えるだけでAIが原因を突き止めて修正やロールバックまで対応してくれたこと。
- 人間の役割は「要件定義と確認」になる:人間は「何を作りたいか」を考え、AIが作ってくれた成果物の安全性や動作を最終確認するディレクターのような立ち位置で進められること。
もちろん、APIキーの権限管理や、取得したデータが正しいかどうかの最終チェックなど、人間による確認とセキュリティ意識は欠かせません。
しかし、AIエージェントがここまで強力に伴走してくれるのであれば、新しい技術や複雑なシステム連携にも自信を持って挑戦できると感じました。
最後に
今回は前編・後編の2回にわたり、Googleの次世代AI開発環境「Antigravity 2.0」の特徴と、Google Places APIと連携したエージェントの実践ハンズオンについてご紹介しました。
Agent Designerのようなノーコードの良さを理解した上で、Antigravity 2.0による「自律コーディング・外部連携・専用UI」の可能性に触れることができ、エージェント開発の幅広さと面白さを強く実感しました。
今後は、社内システム(Microsoft 365など)との連携や、完成したエージェントを社内基盤(Gemini Enterprise Agent Platform)へデプロイして共有することにも挑戦してみたいと思います。
本記事が、Antigravity 2.0や外部サービス連携エージェントの開発に興味を持つ方々の参考になれば幸いです。
最後までお読みいただき、ありがとうございました!




