「Amazon Bedrock AgentCoreを使ってみよう!〜各種機能のポイントを解説〜」というタイトルでDevelopersIO 2025 Osakaに登壇しました! #devio2025

「Amazon Bedrock AgentCoreを使ってみよう!〜各種機能のポイントを解説〜」というタイトルでDevelopersIO 2025 Osakaに登壇しました! #devio2025

2025.09.06

こんにちは、コンサルティング部の神野です!

2025年9月3日(水)に開催されたDevelopersIO 2025 Osakaに「Amazon Bedrock AgentCoreを使ってみよう! 〜各種機能のポイントを解説〜」というタイトルで登壇しました!

今回の発表では、2025年7月にパブリックプレビューとしてリリースされたAmazon Bedrock AgentCoreの魅力的な機能について、実際に触ってみた経験を踏まえてご紹介しました。

ありがたいことに結構な人数の方が聞いてくださって緊張しつつもAgentCoreの魅力を少しでも伝えられたら何よりだと思っています!

登壇資料

熱量が故に勢い余って、20分の登壇に対してスライドを81枚も作ってしまいました。

CleanShot 2025-09-05 at 19.56.38@2x

発表内容のポイント

Amazon Bedrock AgentCoreとは

Amazon Bedrock AgentCoreは、AIエージェントを展開・運用するために最適なマネージドサービスです。

CleanShot 2025-09-05 at 19.57.52@2x

多種多様なマネージド機能が存在しており、下記がその機能の種類です

CleanShot 2025-09-05 at 19.58.47@2x

  • Runtime
    • ホスティング機能
  • Identity
    • 認証機能
  • Gateway
    • 外部処理のTool化機能
  • Memory
    • 記憶機能
  • Built in tools
    • Code Interpreter:コード実行環境
    • Browser:ブラウザ実行環境

機能大盛りですね・・・!!これらの機能をどのように連携して使うのかというとざっくりと下記のように連携可能です。

CleanShot 2025-09-05 at 20.00.27@2x

ここから1つずつのサービスを確認していきます。

Runtime

RuntimeはAIエージェントをホスティングするためのマネージドサービスとなります。

CleanShot 2025-09-05 at 20.03.05@2x

ホスティング環境ですので、エージェントフレームワーク・LLMは下記のように自由に選択可能です。
ベンダーロックインされないのは嬉しいポイントですよね。

CleanShot 2025-09-05 at 20.03.43@2x

デプロイ

agentcore configureコマンドを実行することでIAMやECRの設定などをどうするか聞かれ、自動作成も可能です。簡単で良いですね。

CleanShot 2025-09-05 at 20.04.47@2x

agentcore configureコマンドを実行後は、agentcore launchでデプロイできます。簡単!

CleanShot 2025-09-05 at 20.06.15@2x

簡単な一方でどういったプロセスでデプロイされるのかも見てみます。
configureコマンドで作成したファイルを使ってコンテナイメージをビルドして、ECRにプッシュして、AgentCore RuntimeはそのイメージをPullする形となります。

CleanShot 2025-09-05 at 20.07.53@2x

呼び出しもシンプルで、agentcore invokeで作成したエージェントを呼び出せます。

CleanShot 2025-09-05 at 20.08.51@2x

呼び出すと結果は下記のように返却されます。responseにAIエージェントのメッセージが記載されていますね!

呼び出し例
agentcore invoke '{"prompt": "Hello"}'                        
Payload:
{
  "prompt": "Hello"
}
Invoking BedrockAgentCore agent 'agent' via cloud endpoint
Session ID: c4dbea7b-7c51-471c-b631-330f991d5893

Response:
{
  "ResponseMetadata": {
    "RequestId": "c796b751-caf4-4d44-a450-dbde138546dd",
    "HTTPStatusCode": 200,
    "HTTPHeaders": {
      "date": "Fri, 05 Sep 2025 22:47:24 GMT",
      "content-type": "application/json",
      "transfer-encoding": "chunked",
      "connection": "keep-alive",
      "x-amzn-requestid": "c796b751-caf4-4d44-a450-dbde138546dd",
      "baggage":
"Self=1-68bb6874-5e56d29a3edd9d1103a57630,session.id=c4dbea7b-7c51-471c-b631-330f991d5893",
      "x-amzn-bedrock-agentcore-runtime-session-id": "c4dbea7b-7c51-471c-b631-330f991d5893",
      "x-amzn-trace-id":
"Root=1-68bb6874-56784cc51d5370ab108fd780;Self=1-68bb6874-5e56d29a3edd9d1103a57630"
    },
    "RetryAttempts": 0
  },
  "runtimeSessionId": "c4dbea7b-7c51-471c-b631-330f991d5893",
  "traceId":
"Root=1-68bb6874-56784cc51d5370ab108fd780;Self=1-68bb6874-5e56d29a3edd9d1103a57630",
  "baggage":
"Self=1-68bb6874-5e56d29a3edd9d1103a57630,session.id=c4dbea7b-7c51-471c-b631-330f991d5893",
  "contentType": "application/json",
  "statusCode": 200,
  "response": [
    "b'{\"role\": \"assistant\", \"content\": [{\"text\": \"Hi there! How are you doing today?
Is there anything I can help you with?\"}]}'"
  ]
}

ブログ

実際に試されたブログもありますのでこちらもご参照ください!

https://dev.classmethod.jp/articles/bedrock-agentcore-openai-gpt41/

Identity

AIエージェントの認証機能を実現するマネージドサービスです。Inbound AuthとOutbound Authの2つ種類が存在します。

CleanShot 2025-09-05 at 20.10.25@2x

Inbound AuthはAIエージェント自体に対する認証機能です。CognitoなどのIdPと連携して認証を実現可能です。

CleanShot 2025-09-05 at 20.12.53@2x

Outbound AuthはAIエージェントが外部サービスを呼び出すための認証機能です。APIキーやOAuth認証情報をマネージドに管理して、自動で取得可能になります。

例えばAPI Keyの場合でしたら下記のようなフローで取得可能ですし、取得ロジックもデコレータを付与するだけで取得できるので良きですね。

CleanShot 2025-09-05 at 20.14.26@2x

@requires_api_key(
    provider_name="azure-openai-key"
)
async def need_api_key(*, api_key: str):

ブログ

詳細は下記ブログにもまとめているのでこちらもご参照ください!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-identity-cognito-azure-openai/

Memory

MemoryはAIエージェントに「記憶」を持たせるためのマネージドサービスとなります。Short-term MemoryとLong-term Memoryの2種類の記憶が存在します。

CleanShot 2025-09-05 at 20.18.08@2x

Short-term Memoryはセッション中の会話履歴を保持する仕組みです。会話履歴をマネージドなサービスで保持できるのは嬉しいですよね。記憶保持や取得ロジックもそれほど難しくなく、実装可能です。

CleanShot 2025-09-05 at 20.19.22@2x

データ構造はユーザー毎にactor_id、セッション毎にsession_idといったビルトインの属性で管理することが可能で難しいことを考える必要がありません。ChatGPTやClaudeなどの会話履歴タブがイメージしやすいかと思います。

CleanShot 2025-09-05 at 20.20.51@2x

CleanShot 2025-09-05 at 20.21.02@2x

一方でLong-term MemoryはShort-term Memoryから自動的に重要な情報を抽出・統合する機能です。
抽出されたデータはベクトルとして保存され、セマンティック検索で関連性の高い記憶を抽出可能にしています。

CleanShot 2025-09-05 at 20.22.28@2x

Short-term MemoryからLong-term Memoryへの設定はどのように行うのか気になりますが、
Strategyといった設定を行い、抽出可能にします。ビルトインで3つStrategyがございます。用途に分けてどういった抽出を選択するのかを考える感じですね。

CleanShot 2025-09-05 at 20.24.17@2x

ブログ

詳細は下記ブログにもまとめているのでこちらもご参照ください!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-memory-sample-agent/

Gateway

GatewayはAPI、Lambda関数、各種サービスをMCP(Model Context Protocol)互換のツールに変換して、AIエージェントから簡単に呼び出せるようにしてくれるサービスです。
AIエージェントがAPIやLambda関数をToolとして扱いたいなどのケースで便利そうですね。
今回はLambda関数のTool化について確認していきます。

CleanShot 2025-09-05 at 20.25.03@2x

GatewayがLambda関数をMCPプロトコル対応ツールとして、エージェントから呼び出し可能するための準備を行います。具体的にはGatewayにLambda関数を呼び出せる権限を付与したり、Tool SchemaでLambda関数とToolのマッピングを登録する形となります。

CleanShot 2025-09-05 at 20.27.04@2x

# ツールスキーマの定義
tool_schemas = [
    {
        "name": "get_order_tool",
        "description": "注文情報を取得します",
        "inputSchema": {
            "type": "object",
            "properties": {
                "orderId": {
                    "type": "string",
                    "description": "注文ID"
                }
            },
            "required": ["orderId"]
        }
    },
    {
        "name": "update_order_tool",
        "description": "注文情報を更新します",
        "inputSchema": {
            "type": "object",
            "properties": {
                "orderId": {
                    "type": "string",
                    "description": "注文ID"
                }
            },
            "required": ["orderId"]
        }
    }
]

# ターゲット設定
target_config = {
    "mcp": {
        "lambda": {
            "lambdaArn": lambda_arn,
            "toolSchema": {
                "inlinePayload": tool_schemas
            }
        }
    }
}

# 認証情報プロバイダー(Lambda呼び出しにはGatewayのIAMロールを使用)
credential_config = [
    {
        "credentialProviderType": "GATEWAY_IAM_ROLE"
    }
]

こういった準備を踏まえてLambda関数をToolとして呼び出すと下記のように使用できます。
エージェントがTool化したLambdaの取得結果を使ってユーザーに返却するようなことも可能です。

CleanShot 2025-09-05 at 20.27.59@2x

ブログ

詳細は下記ブログにもまとめているのでこちらもご参照ください!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-gateway-lambda-tool/

Observability

ObservabilityはAIエージェントの各種メトリクス、トレース、ログを可視化することが可能なマネージドサービスです。

CleanShot 2025-09-05 at 20.42.44@2x

事前に行う作業があります。エージェントの実行フローを可視化できるトランザクション検索機能があり、アカウントごとに1回だけ有効化すれば使えるようになります。

CleanShot 2025-09-05 at 20.43.25@2x

後はaws-opentelemetry-distroが依存関係に含まれている必要があります。ただAgentCoreのstarter toolkitを使ってデプロイする場合は自動的にDockerfileに含まれて有効化されます。嬉しいポイントですね。

CleanShot 2025-09-05 at 20.44.32@2x

統合ダッシュボード

CloudWatchでGenAI Observabilityという統合ダッシュボードが提供されていて、エージェントの挙動を一目で確認できます。
セッション数、エラー率、トークン使用量などが可視化されていて、パフォーマンスの監視や問題の早期発見に役立ちそうです。

CleanShot 2025-09-05 at 20.45.04@2x

タイムライン上でAIエージェントの動きを確認できる点は良いなと思いました。どのツールをいつ使ったか、どこがボトルネックになっているかが視覚的に分かるのはデバッグに非常に便利だと思いました。

CleanShot 2025-09-06 at 08.00.49@2x

CleanShot 2025-09-05 at 20.45.42@2x

トレース、スパンやセッションなどの言葉が出てきましたが、関係性は下記のような形となります。

CleanShot 2025-09-05 at 20.45.53@2x

CleanShot 2025-09-05 at 20.46.56@2x

ブログ

詳細は下記ブログにもまとめているのでこちらもご参照ください!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-observability-genai-observability/

Built-in Tools

Built-in ToolsはCode InterpreterとBrowserという2つの便利な機能を提供しています。

CleanShot 2025-09-05 at 20.48.25@2x

どちらもマネージドで提供されているため、セキュリティや環境構築を気にせず使えるのは良い点ですね。

Code Interpreter

Code Interpreterは生成AIが作成したコードを外部の安全な環境で実行するための機能です。

CleanShot 2025-09-05 at 20.48.59@2x

完全に隔離されたサンドボックス環境でコード実行されるため、エージェント本体の環境に影響を与えることなく、安全にコードを実行できます。Python、JavaScript、TypeScriptに対応していて、pandas、numpy、matplotlibなどのデータサイエンス系ライブラリも利用可能です。

CleanShot 2025-09-05 at 20.49.11@2x

ブログ

詳細は下記ブログにもまとめているのでこちらもご参照ください!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-code-interpreter-act-simple-code/

Browser

Browserは生成AIがブラウザを操作するための実行環境を提供するサービスです。

CleanShot 2025-09-05 at 20.49.47@2x

PlaywrightやBrowser-useなどを活用して、実際のWebブラウザを操作できます。情報収集や画面操作の自動化などに活用できそうですね。

ただし、検索エンジンを使うとCAPTCHAに引っかかる可能性があるという注意点もあります。公式ドキュメントでは、一般的な検索にはブラウザ以外のMCPツール(Tavilyなど)の利用が推奨されていました。

https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/built-in-tools-troubleshooting.html

ブログ

詳細は下記ブログにもまとめているのでこちらもご参照ください!

https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-agentcore-browser-sample/

まとめ

AgentCoreはAIエージェント開発に必要な機能が揃ったマネージドサービスです。必要な機能を組み合わせてAIエージェントを構築してみましょう!!

CleanShot 2025-09-05 at 20.51.54@2x

おわりに

以上が「Amazon Bedrock AgentCoreを使ってみよう! 〜各種機能のポイントを解説〜」の登壇ブログでした!

プレビュー期間中は無料で使えるということもあり、ぜひ皆さんにも触っていただきたいサービスです。私も今後さらに深く触っていき、実践的な使い方やTipsをブログで共有していければと思っています!
ぜひ少しでも興味を持ってもらって触っていただけると嬉しいです!ガンガン便利なAIエージェントを作っていきましょうー!!

CleanShot 2025-09-05 at 20.53.18@2x

最後までご覧いただきありがとうございました!

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.