本番環境に対応した AI システムを構築するには、単純なプロンプトから構造化されたオーケストレーションへの移行が必要です. と Google エージェント開発キット (ADK) そして パイソン複雑な推論と状態管理を処理する堅牢なエージェントを作成できます。.

この投稿では, ADK の中核となる概念について説明します。: 最初のエージェントの定義から、FastAPI を使用した運用対応 API としての展開まで.

写真[1]-[チュートリアル] エージェントからAPIへ: Google ADK を使用して本番環境に対応した AI システムを構築する & Windows 7、8、10、11 用 FastAPI-Winpcsoft.com
このチュートリアルの技術スタック.

AIエージェントとは?

プロンプトに基づいてテキストを単純に生成する標準の LLM とは異なります。, AI エージェントには以下が含まれます 推論と意思決定のロジック. ユーザーのリクエストを解釈できる, どのような行動をとるかを決める, ツールや他のコンポーネントと対話してタスクを完了します.
実際に, エージェントはできる:

  • 理由: ユーザーの意図を解釈し、リクエストの制約を理解する.
  • 活動: 外部ツールを呼び出す, API, または情報を取得したり操作を実行したりする機能.
  • 協力する: 他の専門エージェントと協力して、より複雑なタスクを解決します.

これにより、エージェントは建設に特に役立ちます 構造化された, 多段階 AI アプリケーション.

私たちのユースケース

写真[2]-[チュートリアル] エージェントからAPIへ: Google ADK を使用して本番環境に対応した AI システムを構築する & Windows 7、8、10、11 用 FastAPI-Winpcsoft.com
このサンプルプロジェクトの使用例.

この例では、 旅行企画代理店 旅行や目的地に関するユーザーの質問に応答できる. エージェントはユーザーのリクエストを処理します, 関連する旅行の提案を生成し、対応を適切に組み立てます.

他のアプリケーションからシステムにアクセスできるようにするには, エージェントを介して公開します FastAPI で構築された REST APIWeb アプリケーションとの統合が可能になります, チャットインターフェイスとその他のサービス.

ステップ 0: 環境をセットアップする

参加するには, Pythonが必要になります 3.10+ pipx や uv などのパッケージ マネージャー (これは標準の Pip よりも大幅に高速です).

まだUVをお持ちでない方は, 簡単なcurlコマンドでインストールできます:

# UVをインストールする
カール-LsSf [https://アストラル.sh/uv/install.sh](https://アストラル.sh/uv/install.sh) | しー

プロジェクトの構造

このプロジェクトでは、次のようなプロジェクト構造が想定されます。:

写真[3]-[チュートリアル] エージェントからAPIへ: Google ADK を使用して本番環境に対応した AI システムを構築する & Windows 7、8、10、11 用 FastAPI-Winpcsoft.com
このプロジェクトで想定されるプロジェクト構造.

プロジェクトを初期化する

UVがインストールされたら, リポジトリのルートから, エージェント層と API 層の両方に関連するライブラリをインストールし、仮想環境を有効にする:

# Google ADKをインストールする, ファストAPI, そしてユビコーン (ASGIサーバー)
uv 追加 google-adk fastapi uvicorn
# 依存関係を同期し、環境をアクティブ化する
UV同期
ソース .venv/bin/activate

次のステップでは、ADK CLI を使用してエージェントを初期化します。, これにより、エージェントのロジックに必要なディレクトリ構造が作成されます。.

# 新しいエージェント プロジェクトを作成する
adk create my_travel_planner

.env 構成

API キーの安全な取り扱いは最も重要です. my_travel_planner ディレクトリに .env ファイルを作成する必要があります。 (または、上記の手順で作成した既存の .env テンプレート ファイルに入力します。) 資格情報を管理するため.

このファイルをバージョン管理下に置かないことが重要です. これを必ず追加してください .gitignoreファイル (まだ存在しない場合).

  • オプション 1 (Google AIスタジオ): 標準の Gemini API キーを使用する場合、 Google AIスタジオGOOGLE_GENAI_USE_VERTEXAI=False に設定してキーを追加します.
  • オプション 2 (頂点AI): Google Cloud を使用している場合, GOOGLE_GENAI_USE_VERTEXAI=True を設定し、アプリケーションの認証情報を参照します. これに従うことができます リンク 正確な文書化のために.
# .環境テンプレート
GOOGLE_API_KEY=your_gemini_api_key_here
GOOGLE_GENAI_USE_VERTEXAI=False
# Vertex AI のオプション:
# GOOGLE_APPLICATION_CREDENTIALS=あなたの/credentials.json へのパス

ステップ 1: エージェントを定義する

システムの「頭脳」は my_travel_planner/agent.py で定義されます. ここでエージェントに名前を付けます, 特定のモデル (gemini-2.5-フラッシュのような) 彼のペルソナについての明確な指示.

google.adk.agents からエージェントをインポート
def get_root_agent():
# ルートエージェント (The "Brain")
travel_planner = エージェント(
name="travel_planner",
model="gemini-2.5-flash",
description="A comprehensive travel planning assistant.",
instruction="""You are a world-class travel planner.
Recommend places to visit based on the user's query.""",
)
トラベルプランナーに戻る
root_agent = get_root_agent()

ステップ 2: セッションとランナーを使用してストレージを管理する

ステートレス LLM はリクエストが終了するとすぐにコンテキストを忘れます. 実稼働システムにはエージェントが必要です メモリ. ADK はこれを次の方法で管理します。 会議 そして ランナー.

  • セッション: エージェントの会話履歴を保存する, ユーザー情報, と中間ステータス.
  • ランナー: インタラクション全体を調整し、入力を受け取ります, それを脳に伝える, そして状態を維持する.

このパイプラインを非同期で実行する方法は次のとおりです. リポジトリのルート内, このように run.py を作成します:

google.adk.sessions から InMemorySessionService をインポート
google.adk.agents.llm_agent からエージェントをインポート
google.adk.runners からランナーをインポート
google.genai インポート タイプから # メッセージ内容・部品作成用
非同期をインポートする
pathlibインポートパスから
from dotenv import load_dotenv
ロード_dotenv(パス(__ファイル__).親 / "my_travel_planner" / ".env") # .env ファイルから環境変数をロードする
my_travel_planner.agent から get_root_agent をインポート
APP_NAME = "travel-planner_app"
USER_ID = "user_1"
SESSION_ID = "session_001"
非同期デフォルト setup_session_and_runner(ルートエージェント: エージェント = なし, セッションID: str = セッションID):
# 実行用にランナーをセットアップする
session_service = InMemorySessionService()
session = await session_service.create_session(app_name=APP_NAME, user_id=USER_ID, セッションID=セッションID)
ランナー=ランナー(エージェント=root_agent, app_name=APP_NAME, セッションサービス=セッションサービス)
リターンセッション, ランナー
非同期デフォルト call_agent_async(クエリ: str, ルートエージェント: エージェント = なし, セッションID: str = セッションID) -> str:
コンテンツ = タイプ.コンテンツ(role='user', パーツ=[タイプ.パーツ(テキスト=クエリ)])
セッション, ランナー = setup_session_and_runner を待ちます(root_agent=ルートエージェント, セッションID=セッションID)
イベント = ランナー.run_async(user_id=USER_ID, セッションID=セッションID, new_message=コンテンツ)
final_response_text = "No response received."
イベント内のイベントの非同期:
# 主要なコンセプト: is_final_response() ターンの最後のメッセージをマークします.
ifevent.is_final_response():
イベント.コンテンツとイベント.コンテンツ.パーツの場合:
Final_response_text = イベント.コンテンツ.パーツ[0].文章
elifのevent.actionsとevent.actions.escalate:
final_response_text = f"Agent escalated: {event.error_message or 'No specific message.'}"
壊す
印刷する(f"<<< エージェントの応答: {最終応答テキスト}")
最終応答テキストを返す
非同期デフォルト run_agent_pipeline(クエリ: str) -> str:
root_agent = get_root_agent()
return await call_agent_async(クエリ=クエリ, root_agent=ルートエージェント, session_id=SESSION_ID)
if __name__ == "__main__":
ユーザークエリ = ("I'm planning a trip to Paris in the spring. 必見の観光スポットや地元のイベントは何ですか "
"during that time?")
asyncio.run(run_agent_pipeline(クエリ=ユーザークエリ))

ステップ 3: エージェントを API に変える

エージェントを現実世界で役立つようにするには, API として公開する必要があります. ファストAPI これは強力であるため、これに対する現代の標準です, 検証に型ヒントを使用する, Swagger ドキュメントを自動生成します.

ADK パイプラインを POST エンドポイントにラップすることによって, エージェントをフロントエンドに接続できます, モバイルアプリ, または他のマイクロサービス.

リポジトリのルート内, api.pyを作成します, ここでは単純な /ask エンドポイントを定義します:

fastapi から FastAPI をインポート
pydanticインポートBaseModelから
pathlibインポートパスから
from dotenv import load_dotenv
ロード_dotenv(パス(__ファイル__).親 / "my_travel_planner" / ".env")
from run import run_agent_pipeline
アプリ = FastAPI(title="Travel Planner AI", description="Powered by Google ADK + Gemini")
クラスQueryRequest(彼らはモデルです):
クエリ: str
クラスQueryResponse(彼らはモデルです):
クエリ: str
応答: str
@app.post("/ask", response_model=クエリレスポンス)
非同期デフォルト ask_agent(リクエスト: クエリリクエスト):
応答 = run_agent_pipeline を待ちます(クエリ=リクエスト.クエリ)
クエリ応答を返す(クエリ=リクエスト.クエリ, レスポンス=応答)

サーバーを実行するには: uv 実行 uvicorn API:アプリ –リロード
サーバーの開始時刻は、 http://ローカルホスト:8000 インタラクティブなドキュメント (Swagger UI): http://ローカルホスト:8000/ドキュメント

写真[4]-[チュートリアル] エージェントからAPIへ: Google ADK を使用して本番環境に対応した AI システムを構築する & Windows 7、8、10、11 用 FastAPI-Winpcsoft.com
http://ローカルホスト:8000/ドキュメント このようなものをレンダリングする必要があります!

最終的な考え: 生産への道

ローカルスクリプトは良いスタートです, ただし、本番環境にするにはさらにいくつかの手順が必要です:

  1. チェック: 単体テストを作成して、エージェント ロジックがエッジ ケースを処理することを確認する.
  2. コンテナ化: Docker を使用して、「コンピューター上で動作する」が「サーバー上で動作する」に変換されることを確認します。.
  3. 入れる: コンテナを Google Cloud などのクラウド プロバイダに発送します (クラウドラン) またはAWS.

構築する準備ができました? からコードを取得します。 GitHub リポジトリ 独自の専門エージェント ワークフローの構築を今すぐ始めましょう!

感謝しています Google AI/ML 開発者プログラム Google Cloud クレジット サポート チーム.

ソースコードはGitHubでアクセスできます ここ.

記事が気に入ったら, お願いします 購読する 私の最近のことへ.
連絡するには, まで連絡してください
リンクトイン または約 ashmibanerjee.com.

GenAIの使用状況の開示: GenAI モデルは、ブログの文法的矛盾をチェックし、テキストを明確にするために調整されました。. このブログで紹介されている内容については著者が全責任を負います.

blank


[チュートリアル] エージェントからAPIへ: Google ADK を使用して本番環境に対応した AI システムを構築する & FastAPI はもともと Google Developer Experts on Medium で公開されました, 人々がこのストーリーを強調し、それに応答することで議論を続けている場所.