- 公開日
- 最終更新日
【Bedrock AgentCore】Strands AgentをBedrock AgentCoreにデプロイ
この記事を共有する
目次
はじめに
皆さんこんにちは!パーソル&サーバーワークスの小泉です。
本記事では、Strands AgentをAmazon Bedrock AgentCore(以下、Bedrock AgentCore)にデプロイする方法について記載します。
前提
- OS:Amazon Linux2023
- BedrockのモデルアクセスからClaude 3.7 Sonetを有効化
- aws configureでdefaultプロファイルを作成
- Python3.10,uvをインストール済み
- リージョン:us-east-1
環境構築
ファイルの作成
- .env
- main.py
.env
AWS_PROFILE=default
main.py
from dotenv import load_dotenv from strands import Agent from strands.models import BedrockModel from strands.tools.mcp import MCPClient from mcp import stdio_client, StdioServerParameters from bedrock_agentcore.runtime import BedrockAgentCoreApp load_dotenv() bedrock_model = BedrockModel( region_name="us-east-1", model_id="us.anthropic.claude-3-7-sonnet-20250219-v1:0", ) mcp = MCPClient(lambda: stdio_client( StdioServerParameters( command="uvx", args=["awslabs.aws-documentation-mcp-server@latest"] ) )) app = BedrockAgentCoreApp() @app.entrypoint def invoke(payload): """ユーザー入力を処理して、エージェントの応答を返す""" user_message = payload.get("prompt", "Hello") try: with mcp: tools = mcp.list_tools_sync() agent = Agent( model=bedrock_model, system_prompt="AWSの公式ドキュメントから回答して、わからないことは「わかりません」と答えてください。", tools=tools ) response = agent(user_message) return {"result": response.message} except Exception as e: return {"error": str(e)} # ===== アプリ起動 ===== if __name__ == "__main__": app.run()
コマンド実行
uv venv source .venv/bin/activate uv init uv add strands-agents bedrock-agentcore bedrock-agentcore-starter-toolkit agentcore configure --entrypoint main.py --name awsmcp #すべて空Enter agentcore launch
デプロイ確認
Bedrock AgentCoreにデプロイされていることを確認できました
テスト
実際に応答を返すことを確認できました
まとめ
今回はStrands AgentをBedrock AgentCoreにデプロイしてみました。
やってみる前は「結構難しそうだな...」と思っていましたが、実際は必要なファイルを用意してコマンドを数回実行するだけでサクッと動かせました。
次は、他のMCPサーバーなど追加して、もっと便利なエージェントに育てていきたいなと思います。
この記事は私が書きました
小泉 和貴
記事一覧全国を旅行することを目標に、仕事を頑張っています。
