🤖

Agentic Commerce: Amazon Bedrock で UCP してみる

に公開
2026/02/13

UCP を Bedrock でも体験したいー!

以下の記事のちょい足しです。
https://zenn.dev/aws_japan/articles/b732e3b5d7e238

↑ は Gemini で動作するのですが、Amazon Bedrock でも動作するように変更してみました。今諸事情で github url を公開できてないので、一旦修正箇所だけ。

-> 公開しました! https://github.com/nakayukl-demo/ucp-samples.git

これで、AWS ユーザーも気軽に UCP を用いた Agentic Commerce を体験できます!

動作はこんな感じです。


Amazon Bedrock を使うために LiteLLM を使う

Google ADK は元々 Gemini がメインのフレームワークですが、LiteLLM を使うことで他の LLM プロバイダーもサポートできます。

LiteLLM は複数の LLM プロバイダー(OpenAI、Anthropic、AWS Bedrock等)を統一インターフェースで呼び出せるライブラリで、ADK は内部的にこれを使って外部モデルをサポートしています。

重要なのは、LiteLLM プロキシサーバーを立てる必要はないということです。ADK が自動的にLiteLLM ライブラリを使って Bedrock を呼び出します。

移行手順

1. 依存関係の更新

pyproject.toml に extensions オプションを追加し、boto3 を追加します:

pyproject.toml
 dependencies = [
     "pydantic[email]>=2.12.3",
-    "google-adk[a2a]>=1.22.0",
+    "google-adk[a2a,extensions]>=1.22.0",
     "uvicorn>=0.35.0",
     "httpx>=0.28.1",
     "ucp-sdk==0.1.0",
+    "boto3>=1.35.0",
 ]

extensions オプションにより、ADK が LiteLLM サポートを有効化します。

2. エージェント定義の変更

agent.py でモデルを変更します:

agent.py
 from google.adk.agents import Agent
 from google.adk.agents.callback_context import CallbackContext
+from google.adk.models.lite_llm import LiteLlm
 from google.adk.tools.base_tool import BaseTool
 
 root_agent = Agent(
     name="shopper_agent",
-    model="gemini-3-flash-preview",
+    model=LiteLlm(model="bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0"),
     description="Agent to help with shopping",
     # ... 以下省略
 )

ポイント:

  • LiteLlm クラスを明示的に import
  • モデルIDに bedrock/ プレフィックスを付ける
  • us. プレフィックスはcross-region inference profileで、on-demandスループットをサポート

3. 環境変数の変更

この辺りからはお好みです。

main.py で環境変数チェックを変更:

main.py
-    if not os.getenv("GOOGLE_API_KEY"):
-        logger.error("GOOGLE_API_KEY must be set")
+    if not os.getenv("AWS_REGION_NAME"):
+        logger.error("AWS_REGION_NAME must be set")
         exit(1)

env.example を更新:

env.example
-GOOGLE_API_KEY=<your gemini api key>
+AWS_REGION_NAME=us-east-1
+AWS_ACCESS_KEY_ID=<your aws access key>
+AWS_SECRET_ACCESS_KEY=<your aws secret key>

4. .gitignoreの更新

機密情報を含む .env ファイルをコミットしないよう追加:

.gitignore
 **/node_modules
+.env
アマゾン ウェブ サービス ジャパン (有志)

Discussion