
AWS re:Invent 2025「Agentic AI ft. Dynatrace(GameDay)」に参加してきた:Amazon Bedrock AgentCoreとMCPで構築するAIエージェントの実践
はじめに
AWS re:Invent 2025で開催されたAgentic AI ft. Dynatrace(GameDay形式)に参加してきました。
本記事では、実際に取り組んだ2つのミッションを例に、Amazon Bedrock AgentCoreを使ってAIエージェントを構築し、Model Context Protocol (MCP) で外部ツールと連携させる方法を紹介します。
- ミッション1: MCPを使わないシンプルなエージェント(Hello World)
- ミッション2: MCPを使った高度なエージェント(AWS Documentation検索)
使用する主要技術
- Amazon Bedrock: Claude Sonnet 4など、最新のLLMを使用
- Amazon Bedrock AgentCore: AIエージェントのサーバーレスホスティング
- Strands Agents Framework: Pythonベースのエージェント構築フレームワーク
- Model Context Protocol (MCP): AIエージェントとツールの標準化されたインターフェース
- AWS Labs MCP Servers: AWS公式のMCPサーバー実装
プロジェクト構成
まず、用意するフォルダー構成は以下の通りです。
agent_lab/
├── requirements.txt # 共通の依存パッケージ
├── hello_world_agent/ # ミッション1用:シンプルなエージェント
│ ├── hello_world_agent.py # MCPを使わない基本実装
│ └── requirements.txt # 依存パッケージ
└── aws_docs_agent/ # ミッション2用:MCPエージェント
├── aws_docs_agent.py # MCP統合エージェント
└── requirements.txt # 依存パッケージ
環境セットアップ
必要なパッケージのインストール
cd /home/ubuntu/environment/GameDay/agent_lab/
# 仮想環境の作成
python3 -m venv venv
source venv/bin/activate
# 依存パッケージのインストール
pip3 install -r requirements.txt
requirements.txtの内容
requests
boto3
strands-agents
strands-agents-tools
bedrock-agentcore
uv
bedrock-agentcore-starter-toolkit
ミッション1: MCPを使わないシンプルなエージェント
最初のミッションは、基本的なAIエージェントをデプロイして、シンプルな会話に応答させるタスクでした。
ミッション1の要件
- Amazon Bedrock AgentCoreにエージェントをデプロイ
- 基本的な質問に応答できること
エージェントの実装
hello_world_agent/hello_world_agent.pyを作成します。
from strands import Agent
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from strands.models import BedrockModel
app = BedrockAgentCoreApp()
@app.entrypoint
def strands_agent_bedrock(payload):
"""
Invoke the agent with a payload
"""
user_input = payload.get("prompt")
print("User input:", user_input)
# Claude Sonnet 4を使用
model_id = "us.anthropic.claude-sonnet-4-20250514-v1:0"
model = BedrockModel(model_id=model_id)
SYSTEM_PROMPT = """
You are an expert AWS Certified Solutions Architect.
You can answer questions about AWS.
"""
agent = Agent(model=model, system_prompt=SYSTEM_PROMPT)
response = agent(user_input)
print("Response:")
print(response.message["content"][0]["text"])
return response.message["content"][0]["text"]
if __name__ == "__main__":
app.run()
コードの解説
このコードは非常にシンプルな構成です。
- BedrockAgentCoreAppの初期化 - AgentCoreとの連携を設定
- モデルの選択 - Claude Sonnet 4を使用
- システムプロンプトの定義 - エージェントの役割を指定
- エージェントの作成 - Strandsフレームワークでエージェントを構築
- レスポンス返却 - ユーザーの質問に対する回答を返す
デプロイ手順
cd hello_world_agent
# AgentCoreの設定
agentcore configure -e hello_world_agent.py
# エージェントのデプロイ(約3分かかります)
agentcore launch
デプロイが完了すると、AgentCoreコンソールでRuntime IDが確認できます。
エージェントのテスト
# エージェントをテスト
agentcore invoke '{"prompt": "Hello world"}'
ミッション1の結果
シンプルな実装でしたが、Amazon Bedrock AgentCoreの基本的な使い方を理解できました。デプロイも簡単で、サーバーレスでエージェントがホスティングされるため、インフラ管理が不要なのが大きなメリットでした。
ミッション2: MCPを使った高度なエージェント
次のミッションは、MCPサーバーを統合してAWS Documentationを検索できるエージェントを構築するタスクでした。
ミッション2の要件
- MCPサーバーを使ってAWS公式ドキュメントを検索
- AWSサービスに関する質問に正確に回答
- MCPツールの使用状況をレスポンスに含める
Model Context Protocol (MCP) とは?
MCPは、AIエージェントと外部ツールの間の標準化されたインターフェースです。これにより、エージェントは以下のような専門的なツールにアクセスできます。
- AWS Documentation検索
- 図表生成
- データベース操作
- その他の専門的なタスク
こちらに、AWS SDK のMCPラッパー実装集があるので活用しました。
使用したMCPサーバー
今回はAWS Documentation MCP Serverを選択しました。
このMCPサーバーは、AWS公式ドキュメントを検索できる機能を提供します。
エージェントの実装
aws_docs_agent/aws_docs_agent.pyを作成します。
import logging
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from mcp import StdioServerParameters, stdio_client
from strands import Agent
from strands.models import BedrockModel
from strands.tools.mcp import MCPClient
# ロギングの設定
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
app = BedrockAgentCoreApp()
# Bedrock モデルの設定
bedrock_model = BedrockModel(
model_id="us.anthropic.claude-sonnet-4-20250514-v1:0",
temperature=0.7,
)
SYSTEM_PROMPT = """
You are an expert AWS Certified Solutions Architect.
You can query the AWS Documentation to help customers
understand best practices on building on AWS.
"""
@app.entrypoint
def strands_agent_bedrock(payload):
try:
user_input = payload.get("prompt")
logger.info(f"User input: {user_input}")
# MCPクライアントの作成
aws_docs_client = MCPClient(
lambda: stdio_client(
StdioServerParameters(
command="uvx",
args=["awslabs.aws-documentation-mcp-server@latest"]
)
)
)
# エージェントの初期化
with aws_docs_client:
all_tools = aws_docs_client.list_tools_sync()
agent = Agent(
tools=all_tools,
model=bedrock_model,
system_prompt=SYSTEM_PROMPT
)
# レスポンスの取得
response = agent(user_input)
print("Response:")
print(response.message["content"][0]["text"])
return response.message["content"][0]["text"]
except Exception as e:
logger.error(f"Error processing request: {e}", exc_info=True)
raise
if __name__ == "__main__":
app.run()
コードの解説
ミッション1のコードと比較すると、以下の追加要素があります。
- MCPクライアントの作成 - AWS Documentation MCP Serverに接続
- MCPツールの取得 -
list_tools_sync()で利用可能なツールを取得 - エージェントへのツール統合 -
tools=all_toolsでエージェントにツールを渡す
これにより、エージェントはAWS公式ドキュメントを検索して回答できるようになります。
デプロイ手順(重要な注意点)
MCPエージェントは必ずContainerモードでデプロイする必要があります。
cd aws_docs_agent
# AgentCoreの設定
agentcore configure -e aws_docs_agent.py
# デプロイ
agentcore launch
デプロイタイプの選択時、必ずオプション2(Container)を選択
Deployment Configuration
Select deployment type:
1. Direct Code Deploy (recommended) - Python only, no Docker required
2. Container - For custom runtimes or complex dependencies
Choice [1]: 2
エージェントのテスト
# AWS関連の質問でテスト
agentcore invoke '{"prompt": "What is Amazon S3?"}'
このコマンドを実行すると、エージェントはMCPサーバーを使ってAWS公式ドキュメントを検索し、正確な情報を回答してくれます。
ミッション2の結果
MCPサーバーを統合することで、エージェントの能力が大幅に向上しました。単なるLLMの知識だけでなく、最新のAWS公式ドキュメントを参照して回答できるため、より正確で信頼性の高い情報を提供できます。
2つのミッションから学んだこと
ミッション1(MCPなし)で学んだこと
- Amazon Bedrock AgentCoreの基本的な使い方
- Strandsフレームワークでのエージェント構築
- サーバーレスでのエージェントホスティングの便利さ
- デプロイから動作確認までの流れ
ミッション2(MCPあり)で学んだこと
- MCPサーバーの統合方法
- Containerモードでのデプロイの重要性
- 外部ツールと連携することでエージェントの能力が拡張できること
- システムプロンプトでツールの使用方法を指示する重要性
取り組む際に気を付けたこと
# デプロイ前のチェックリスト
□ MCPサーバーが正しく設定されているか確認
□ システムプロンプトがミッションに適しているか確認
□ Containerモード(オプション2)を選択することを忘れない(MCPの場合)
Amazon Bedrock AgentCoreの特徴
実際に使ってみて感じたAgentCoreの特徴をまとめます。
サーバーレスアーキテクチャ
AgentCoreは完全なサーバーレスプラットフォームで、以下の利点があります。
- 自動スケーリング - トラフィックに応じて自動的にスケール
- コスト効率 - 使用した分だけ課金
- 運用不要 - インフラ管理が不要
- 高可用性 - AWSのインフラで高い可用性を実現
AWS Labs MCP repositoryで利用可能なMCPサーバー
今回はAWS Documentation MCP Serverを使いましたが、他にも様々なMCPサーバーが用意されています。
他にも確認したい場合はこちらを参考にしてみてください。
まとめ
AWS re:Invent 2025の「Agentic AI ft. Dynatrace(GameDay)」で2つのミッションに挑戦し、Amazon Bedrock AgentCoreとModel Context Protocolを使って実践的なAIエージェントを構築しました。
今後の展開
今回学んだ技術は、以下のような実用的なユースケースに応用できそうです。
- 社内ドキュメント検索システム
- カスタマーサポートの自動化
- コード生成アシスタント
- 技術的な質問に答えるチャットボット
GameDay形式で楽しみながら、実践的なスキルを身につけることができました。Amazon Bedrock AgentCoreとMCPは、今後のAIエージェント開発の標準になりそうな予感がしました。









