google-antigravity/antigravity-sdk-python
A Python library for building AI agents that leverage the full power of Google Antigravity.
Google Antigravity SDK (Python)
何であるか – GoogleのGeminiモデル(またはローカルのGemma-4モデル)を活用して「エージェント型」AIアプリケーションを構築できるPythonライブラリ。SDKはエージェントループの低レベルな処理(ネットワーク通信、ツール実行、状態管理)を隠蔽し、エージェントに実行させたいタスクに集中できるようにします。
インストール
pip install google-antigravity # プラットフォーム固有のバイナリウェHEELを取得
バイナリランタイムが必要です。リポジトリをクローンするだけでは動作しません。
使い始め
import asyncio
from google.antigravity import Agent, LocalAgentConfig
async def main():
cfg = LocalAgentConfig(system_instructions="You are a helpful assistant.")
async with Agent(cfg) as agent:
resp = await agent.chat("List the files in the current directory.")
print(await resp.text())
asyncio.run(main())
GEMINI_API_KEY(またはVertex AI認証情報)を設定した後、examples/内の例スクリプトを実行してください。
主要なコンセプト
| コンセプト | 機能 |
|---|---|
| Agent | 高レベルのエントリーポイント;バイナリの検出、ツールの接続、ポリシー管理、ストリーミング応答を管理。 |
| Conversation | 状態保持セッションで、ステップ履歴を保持。送受信の細かい制御が必要な場合に有用。 |
| LocalAgentConfig / LiteRTAgentConfig | クラウド(Gemini/Vertex)またはオフライン(LiteRT-LM経由のGemma-4)モデル用の設定オブジェクト。 |
| Tools | エージェントがチャット中に呼び出せる通常のPython関数を登録。 |
| Hooks & Policies | ツールの実行可否や条件を制御する宣言的ルール(allow, deny, ask_user, enforce)。 |
| Triggers | バックグラウンドの非同期タスクで、エージェントにメッセージを送信可能(例:定期的なステータスチェック)。 |
| MCP Integration | 外部Model Context Protocolサーバーに接続し、追加のツールを公開。 |
主な機能
- クラウドとローカルの統合実行 – Vertex AI(APIキーまたはADC)経由でGeminiを使用、またはLiteRT-LM経由でオフラインでGemma-4 26Bを実行。
- ストリーミング出力 –
ChatResponse(またはそのthoughts/tool_calls)をイテレートすることで、追加のネットワークコストなしにトークン単位の更新を取得。 - マルチモーダル入力 –
Image、from_fileなどのコンテンツクラスを使って、画像、PDF、動画などを直接添付可能。 - カスタムツール登録 – 任意のPythonコール可能な関数をエージェントが呼び出せるツールに変換。
- ポリシーエンジン – 細かいセキュリティ制御(すべてのツールをブロック、特定ツールのみ許可、危険な操作前にユーザーに確認)。
- バックグラウンドトリガー – 定期的またはイベント駆動のタスクでエージェントにメッセージを送信可能。
- 三層アーキテクチャ – シンプルな
AgentAPI、セッションレベルのConversation層、トランスポートに依存しないアダプタ層。
一般的なワークフロー
- パッケージをインストール(ローカル実行の場合は
litert-lmも必要)。 - 設定を選択:
- クラウド:
LocalAgentConfig(vertex=True, api_key=…)または ADCに依存。 - ローカル:
LiteRTAgentConfig(model_path=…)。
- クラウド:
- オプションでツール、ポリシー、トリガーを登録。
async withブロック内でAgent(またはConversation)を作成。agent.chat(prompt)を呼び出す – プロンプトは文字列またはテキストとコンテンツオブジェクトの混合リストが可能。await resp.text()で応答を取得、またはasync for token in respでストリーミングトークンを消費。
アーキテクチャのスナップショット
| レイヤー | 責務 | コアクラス |
|---|---|---|
| 簡略化 | 多くの用途におけるワンラインエントリーポイント | Agent |
| セッション | 履歴を維持、chat()を提供、ストリーミングオブジェクトを公開 |
Conversation, ChatResponse, Step, ToolCall, AgentConfig, HookRunner, ToolRunner, TriggerRunner |
| アダプタ | トランスポート(クラウド、ローカルバイナリ、MCP)を抽象化 | Connection, ConnectionStrategy, LocalConnection |
ライセンス – Apache License 2.0。
上記のすべての詳細は、リポジトリのREADMEから直接引用されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト