メモリと MCP を使用した ADK エージェント パターン

1. 学習内容

ADK マスタークラス - マルチエージェント システムへのジャーニーへようこそ

AI エージェントの魅力的な世界に足を踏み入れようとしています。質問に答えるだけの単純な chatbot は忘れてください。Agent Development Kit (ADK) を深く掘り下げ、推論、計画、ツールを使用して複雑なタスクを達成できる洗練された自律システムを構築しています。

、

このチュートリアルを修了すると、次のことができるようになります。

  • 初めての AI エージェントを構築する: ユーザーのニーズを理解し、Google 検索などのツールを使用して、詳細で役立つ回答を生成できる、完全に機能するエージェントをゼロから構築します。
  • マルチエージェント システムの構築: エージェントが他の専門エージェントにタスクを委任し、連携して動作する AI エキスパートのチームを作成する革新的なコンセプトである「エージェントをツールとして使用する」パターンについて学習します。
  • 複雑なワークフローをオーケストレートする: 単純な委任を超えて、ルーターシーケンシャル チェーンループ並列実行などの高度なパターンを習得し、ほぼすべてのリクエストを処理できる堅牢で効率的かつインテリジェントなアプリケーションを構築します。
  • エージェントにメモリを付与する: 会話メモリの重要な役割を理解し、エージェントが追加の質問に対応したり、フィードバックから学習したり、複数のステップからなるタスクをシームレスに管理したりできるようにします。
  • Connect with MCP: MCP ツールボックスに接続します。

では始めましょう。🚀

2. GCP と Gemini API キーを設定する

GCP プロジェクトと Gemini API キーを設定する

AI エージェントを強化するには、基盤となる Google Cloud プロジェクトと、Google の強力なモデルにアクセスするための Gemini API キーの 2 つが必要です。

ステップ 1: 請求先アカウントを有効にする

  • デプロイに必要な 5 ドルのクレジットで請求先アカウントを請求します。Gmail アカウントであることを確認します。

ステップ 2: 新しい GCP プロジェクトを作成する

  • Google Cloud コンソールに移動し、新しいプロジェクトを作成します。

新しい GCP アカウントを作成する

  • Google Cloud コンソールに移動し、新しいプロジェクトを作成します。
  • 左側のパネルを開き、Billing をクリックして、請求先アカウントがこの gcp アカウントにリンクされているかどうかを確認します。

請求先アカウントを GCP アカウントにリンクする

このページが表示されたら、manage billing account を確認し、Google Cloud Trial One を選択してリンクします。

ステップ 3: Google Cloud プロジェクト ID を確認する

👉Google Cloud コンソールの最上部にある [Cloud Shell をアクティブにする] をクリックします(Cloud Shell ペインの上部にあるターミナル型のアイコンです)。cloud-shell.png

👉[エディタを開く] ボタン(鉛筆のアイコンが付いた開いたフォルダのアイコン)をクリックします。ウィンドウに Cloud Shell コードエディタが開きます。左側にファイル エクスプローラが表示されます。open-editor.png

👉Google Cloud プロジェクト ID を確認します。

  • Google Cloud コンソールを開きます: リンク
  • ページの上部にあるプロジェクト プルダウンから、このワークショップで使用するプロジェクトを選択します。
  • プロジェクト ID は、ダッシュボードの [プロジェクト情報] カードに表示されます。

03-04-project-id.png

👉💻 ターミナルで、次のコマンドを使用して、認証が完了しており、プロジェクトがプロジェクト ID に設定されていることを確認します。

gcloud auth list

👉💻 GitHub からブートストラップ プロジェクトのクローンを作成します。

git clone https://github.com/cuppibla/adk_tutorial.git

👉💻 初期化スクリプトを実行します。このスクリプトを実行すると、Google Cloud プロジェクト ID の入力を求めるプロンプトが表示されます。setup_venv.sh スクリプトのプロンプトが表示されたら、前の手順で確認した Google Cloud プロジェクト ID を入力します。

cd ~/adk_tutorial
./setup_venv.sh

gcloud services enable  compute.googleapis.com \
                        artifactregistry.googleapis.com \
                        run.googleapis.com \
                        iam.googleapis.com \
                        aiplatform.googleapis.com \
                        cloudresourcemanager.googleapis.com

3. セッション 1: ADK Web での初めてのエージェント

次のコマンドを実行して ADK Web を開きます。

cd ~/adk_tutorial
source .adk_env/bin/activate
adk web

コマンドを実行すると、ターミナルに ADK Web サーバーが起動したことを示す次のような出力が表示されます。

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://localhost:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

👉 次に、ブラウザから ADK 開発 UI にアクセスします。

Cloud Shell ツールバー(通常は右上)の [ウェブでプレビュー] アイコン(通常は目または矢印付きの四角形)から、[ポートを変更] を選択します。ポップアップ ウィンドウで、ポートを 8000 に設定し、[変更してプレビュー] をクリックします。Cloud Shell が新しいブラウザタブまたはウィンドウを開き、ADK 開発 UI を表示します。

webpreview

👉 召喚の儀式が完了し、エージェントが実行されています。ブラウザの ADK Dev UI は、Familiar への直接接続です。

並列ワークフロー エージェントを選択する: UI の上部にあるプルダウン メニューで、parallel_agent を選択します。

single_agent はこちらで選択できます: 単一のエージェントのトレース画像

トレースは 単一のエージェントのトレース画像 で確認できます。

👉 テスト プロンプト:

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art.

4. セッション 2: ワークフロー エージェント: シーケンシャル エージェント、パラレル エージェント、ループ エージェント

Parallel Agent

並列ワークフロー エージェントを選択する: UI の上部にあるプルダウン メニューで、parallel_agent を選択します。

👉 テスト プロンプト:

Plan my trip to San Francisco, I want to find some good concert, restaurant and museum.

parallel_agent はこちらで選択できます: 並列エージェントのトレース画像

トレースは 並列エージェントのトレース画像 で確認できます。

Sequential Agent

順次ワークフロー エージェントを選択する: UI の上部にあるプルダウン メニューで、sequential_agent を選択します。

👉 テスト プロンプト:

Find a good sushi near Standford and tell me how to get there.

sequential_agent はこちらで選択できます: シーケンシャル エージェントのトレース図

トレースは sequential_agent のトレース図 で確認できます。

Loop Agent

ループ ワークフロー エージェントを選択する: UI の上部にあるプルダウン メニューで、loop_agent を選択します。

👉 テスト プロンプト:

Plan a trip from Sunnyvale to San Francisco today.

loop_agent はこちらで選択できます: ループ エージェントのトレース図

トレースは ループ エージェントのトレース図 で確認できます。

5. セッション 3: カスタム エージェント

ADK ウェブ UI が開いたら、Custom_Agent エージェントを選択できます。

👉 テスト プロンプト:

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art. Make sure within budget of 100 dollars.

Custom_Agent はこちらで選択できます: Custom_Agent のトレース図

トレースは Custom_Agent のトレース図 で確認できます。

6. セッション 4: オーケストレーター パターン - ルーティング エージェント

ADK ウェブ UI が開いたら、routing_agent を選択します。

👉 テスト プロンプト:

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

routing_agent はこちらで選択できます: ルーティング エージェントのトレース図

トレースは ルーティング エージェントのトレース図 で確認できます。

7. セッション 5: ツールとしてのエージェント

ADK ウェブ UI が開いたら、Agent_as_tool エージェントを選択できます。

👉 テスト プロンプト:

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

agent_as_tool はこちらで選択できます: エージェントをツールとしてトレースする画像

トレースは ルーティング エージェントのトレース図 で確認できます。

8. セッション 6: 長期記憶を備えたエージェント

👉💻 フォルダに移動してランナーを使用してエージェントを強化し、長期記憶をテストします。

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 テスト プロンプト:

I like Art and Italian food.

次に、「crtl+C」を押してセッションを終了します。セッションを再起動します。

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 テスト プロンプト:

Plan a trip to San Francisco based on my preference.

9. セッション 7: MCP でエージェントを強化する

ステップ 1: ローカル データベースを準備する

👉💻 ターミナルで次のコマンドを実行します。

cd ~/adk_tutorial
source .adk_env/bin/activate
chmod +x setup_trip_database.py
./setup_trip_database.py

ステップ 2: MCP ツールボックス サーバーをインストールして実行する

👉💻 ターミナルで次のコマンドを実行します。

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox

ダウンロードが完了したら、実行します。

chmod +x toolbox

ステップ 3

1 つのターミナルで次のコマンドを実行します。

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/mcp_tool_box
./toolbox --tools-file "trip_tools.yaml" --port 7001

別のターミナルで次のコマンドを実行します。

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/g_agents_mcp
python main.py