話題のAIエージェント開発ツール『Google Antigravity SDK』を試してみた

Antigravity SDK入門 AI

最近、AIの新しいトレンドとして「AIエージェント」という言葉をよく耳にするようになりました。
私自身、この分野に関してはまだまだ初心者なのですが、「一体これまでのAIチャットと何が違うのか?」「どうやって作るのか?」が気になり、Googleの最新開発ツールである「Google Antigravity SDK」について色々と調べてみました。

今回は、調べた内容と、初心者目線での簡単な導入ステップ、そして気になる「セキュリティ対策(高額請求リスク)」についてまとめました。

1. 「AIエージェント」と「AIチャット」の違い

これまで使っていたGeminiやChatGPTなどの「AIチャット」は、こちらが質問したことに対してその場で答えてくれる仕組みでした。

それに対し、「AIエージェント」は、「目的(ゴール)だけを伝えると、必要な手順をAI自身が自分で考え、必要なツールを自分で使って、自律的に最後まで仕事を終わらせてくれる仕組み」のことです。

機能普通のAIチャットAIエージェント
役割その場で答えてくれる自分で考えて手配してくれる
行動質問 ➔ 回答で終了目的の提示 ➔ ネット検索やツール操作をして結果を出す
自律性1回の会話で完結目的達成まで自律的に思考と実行を繰り返す

2. Google Antigravity SDK とは?

Google Antigravityは、こうした「自律型AIエージェント」を開発・管理するためのGoogleの最新プラットフォームです。
その中でも「SDK」は、Pythonなどのプログラムコードを使ってオリジナルのエージェントを動かすための開発キットです。

中身を調べてみると、簡単なコードを書くだけで、Geminiを頭脳とした自作エージェントが動き出すとのことでした。

3. 動かすための準備とインストール手順

エージェントを自作するための準備は、パソコン1台があれば簡単に始められます。
実行環境はmacOSです。

1パッケージのインストール

ターミナルを開き、以下のコマンドを実行してライブラリをインストールします。

pip install google-antigravity python-dotenv

google-antigravity がAIエージェントのコアとなるライブラリです。python-dotenv は、後述するAPIキーを安全に管理するために一緒に導入します。

2【推奨】仮想環境 (venv) を使おう

Pythonで開発する際は、パソコン全体の環境を汚さないために「仮想環境」を作成してその中でインストールするのがお勧めです。

# 1. 仮想環境(.venvフォルダ)の作成
python3 -m venv .venv

# 2. 仮想環境に入る(有効化)
source .venv/bin/activate

# 3. 仮想環境の中にインストール
pip install google-antigravity python-dotenv

仮想環境に入ると、ターミナルの左端に (.venv) と表示され、この中だけで安全に作業ができます。終わったら deactivate と入力するだけで元の環境に戻れます。

4. 【重要】APIキーを管理する方法

AIの開発(Gemini APIなどの利用)を始める際、避けて通れないのが「APIキー」の管理です。
APIキーは「あなたのアカウントの合鍵」のようなもので、もしGitHubなどの公開サイトに誤ってアップロードして流出してしまうと、悪意ある第三者に悪用され、後から多額の利用請求が届くリスクがあります。

これを防ぐ方法を調べました。

環境変数の利用

コードの中に直接 API_KEY = "xxxx..." と書いてはいけません。

  1. .env ファイルに切り離す:
    パスワードなどの機密情報だけを書き込むテキストファイル(.env)を別途作成し、そこにAPIキーを保存します。
  2. .gitignore で除外する:
    プログラムのバージョン管理(Git)を行う際、.gitignore という設定ファイルに .env と記述し、ネット上に絶対にアップロードされないようにブロックします。
  3. プログラム内で読み込む:
    コード側では os.environ などの機能を使って、実行時にだけそのキーを読み込むようにします。

これ以外にもGoogle CloudのSecret ManagerでAPIキーを管理する方法などがあります。
APIキー流出などくれぐれもご注意ください。

5. 実際に動かすためのコード(Python例)

APIキーを安全に環境変数から読み込む前提で、エージェントを動かすプログラムの書き方を調べました。

import os
import sys
import asyncio

# .env ファイルから環境変数を自動で読み込むライブラリ
try:
    from dotenv import load_dotenv
    load_dotenv()
except ImportError:
    pass

try:
    from google.antigravity import Agent, LocalAgentConfig
except ImportError:
    print("エラー: google-antigravity がインストールされていません。", file=sys.stderr)
    sys.exit(1)

# エージェントに持たせる「ツール(自作関数)」を定義
def get_weather(city: str) -> str:
    """都市の現在の天気を取得します。

    Args:
        city: 都市名 (例: "東京")
    """
    # テスト用に固定値を返します
    return f"{city}の天気は『晴れ(気温26度)』です。"

async def main():
    # .env からAPIキーを取得
    api_key = os.environ.get("GEMINI_API_KEY")
    if not api_key:
        raise ValueError("エラー: APIキーが設定されていません。")

    # エージェントの構成(使用するツールを指定)
    config = LocalAgentConfig(
        tools=[get_weather],
        system_instructions="あなたはユーザーのサポートを行う優秀な執事です。日本語で応答してください。"
    )

    # 非同期コンテキスト内でエージェントを動かす
    async with Agent(config) as agent:
        response = await agent.chat("東京の天気を調べて、何を着ていくべきか提案して。")
        
        # ストリーミングで回答を出力
        async for chunk in response:
            print(chunk, end="", flush=True)

if __name__ == "__main__":
    asyncio.run(main())

このコードを実行すると、AIは「天気を調べる必要がある」と自動で判断し、定義した get_weather を勝手に呼び出して(ツール実行)、天気に合わせた服装の提案までを自動で行ってくれます。

実行結果:

% python3 test_agent.py
AIエージェントを初期化中...
指示の送信: 「東京の天気を調べて、何を着ていくべきか提案して。」
エージェントが思考・ツール実行を開始します...

================== エージェントの回答 ==================
旦那様、東京の現在の天気をお調べいたしました。

現在の東京は**晴れ**、気温は**26度**でございます。

### おすすめの服装のご提案

現在の気温(26度)は、半袖や薄手のシャツ一枚で快適にお過ごしいただける大変心地よい気候でございます。
しかしながら、これからの夕方から夜の時間帯にかけて、また室内の冷房対策として、以下のような装いをお勧めいたします。

*   **トップス**: 半袖のカットソーや、サラッとした素材のシャツ
*   **羽織りもの(推奨)**: 薄手のカーディガンやリネンシャツ、あるいは軽いジャケットを1枚お持ちいただくと、夜風が冷たく感じられた際にも安心でございます。
*   **ボトムス**: 通気性の良いスラックスやチノパン、あるいは快適なスカートなど

お出かけの準備は整いましたでしょうか。どうぞ、素敵な時間をお過ごしくださいませ。
========================================================

💡 コードのポイント解説

このコードの重要なポイントを5つに分けて解説します。

  1. APIキーの安全な自動読み込み:
    dotenv という仕組みを使い、プログラムが起動した瞬間に .env ファイルからAPIキーを自動で読み込みます。これにより、コードの中に直接キー(パスワード)を書き込まなくて済むため、安全性が保たれます。
  2. AIに「道具(ツール)」を持たせる:
    get_weather という「天気を調べる関数」を作り、エージェント作成時に tools=[get_weather] としてAIに渡しています。関数のすぐ下にある """都市の現在の天気を取得します。""" という説明文(docstring)をAI自身が読み取って、「この道具はいつ・どうやって使うべきか」を自分で判断します。
  3. 自律的な実行と結果の統合:
    エージェントに「東京の天気を調べて服装を提案して」と送るだけで、AIは自動でツールを使って情報を集め、その結果(晴れ・26度)を考慮した回答を組み立ててくれます。
  4. なぜ非同期(async / await)で動かすの?(待ち時間のフリーズ防止):
    AIが考えたり、インターネット経由で天気を調べたりする間には、必ず「待ち時間(タイムラグ)」が発生します。通常のプログラム(同期処理)だと、この待ち時間の間、プログラム全体が完全にフリーズ(硬直)してしまい、他の作業を一切受け付けなくなります。そこで、待ち時間を有効活用してシステム全体の動きをスムーズに保つために、非同期処理(asyncawait)という仕組みを使っています。
  5. なぜストリーミング(async for chunk in response)で出力するの?(待ちストレスの解消):
    AIの長い回答がすべて完成するのを待ってから一回で表示しようとすると、最初の1文字目が表示されるまでに数秒〜数十秒の「沈黙」が発生し、ユーザーは「動いているのかな?」と不安になります。ストリーミング出力を使うと、AIが言葉を思いつく先から、リアルタイムに1文字ずつ画面にパラパラと表示されます。これにより、待たされている感覚(ストレス)を減らすことができます。

6. まとめと感想

今回、話題の「Google Antigravity SDK」について調べてみましたが、思っていたよりも少ないコードでAIエージェントが作れることに驚きました。

同時に、APIキーの管理など、最初につまずきやすく、かつ危険を伴うセキュリティ対策の重要性もよく分かりました。

私自身も、まずは安全な環境づくりから一歩ずつ試していきたいと思います!

コメント

タイトルとURLをコピーしました