Strands Agents SDK デプロイ — OpenTelemetry でエージェントのトレースを可視化する
Strands Agents SDK に組み込まれた OpenTelemetry サポートを有効化し、エージェントの推論・ツール呼び出しをトレースとして Jaeger で可視化する。エージェントコードの変更は 2 行だけ。
「bedrock」タグが付いたコンテンツ一覧
Strands Agents SDK に組み込まれた OpenTelemetry サポートを有効化し、エージェントの推論・ツール呼び出しをトレースとして Jaeger で可視化する。エージェントコードの変更は 2 行だけ。
AgentCore CLI(Node.js)を使い、agentcore create + deploy の 2 コマンドで Strands エージェントを Bedrock AgentCore にデプロイする。セッション分離による会話継続も検証する。
Strands Agents SDK の公式 Lambda Layer を使い、ハンドラー関数を書くだけでサーバーレスエージェントをデプロイする。コールドスタートとウォームスタートの実測値も共有する。
Strands Agents SDK のエージェントを FastAPI でラップして HTTP API 化し、Docker コンテナとしてパッケージングする。async def のハングや SSO 認証の問題など、実際に遭遇したハマりポイントも共有する。
DynamoDB連携の家計簿MCPサーバーでStateful MCPの3機能を検証。Elicitationのdecline/cancel時のデータ整合性とSampling失敗時のフォールバック挙動を実測し、実戦投入に必要な判断材料を示す。
Strands Agents SDK の Agents as Tools・Swarm・Graph の 3 パターンで同じタスクを実行し、構造的な違いをメトリクスで比較する。ユースケースに応じたパターン選択の基準を整理する。
Strands Agents SDK で Swarm を Graph のノードとして埋め込み、自律協調と構造化ワークフローを組み合わせる。ネスト構成の実行結果とマルチエージェント Hooks によるノード監視をコードで確認する。
Strands Agents SDK の Graph パターンで決定論的なワークフローを構築する。GraphBuilder で逐次・並列・条件分岐・フィードバックループを実際に動かし、Graph の全体像をコードと実行結果で確認する。
Strands Agents SDK の Swarm パターンを実際に動かし、エージェント同士が自律的にハンドオフしながらタスクを遂行する仕組みをコードと実行結果で確認する。Agents as Tools との違いも比較する。
Agent Registry のレジストリ作成からレコード登録・承認・検索までを CLI で検証。セマンティック検索の精度、日本語クエリと英語クエリの差、MCP エンドポイント経由の検索を実測データで評価する。
Strands Agents SDK の result.metrics を深掘りし、サイクル数・トークン量・ツール実行時間を分析する。ツール設計の違いがパフォーマンスに与える影響をメトリクスで比較し、エージェントの最適化ポイントを特定する。
Strands Agents SDK に Bedrock Guardrails を適用し、エージェントの入出力を自動フィルタリングする。ガードレール発動時の挙動と、Hooks を使ったシャドーモード(監視のみ)の実装をコードで確認する。
Strands Agents SDK の Hooks でエージェントループに処理を差し込む。ツール呼び出しのログ記録、回数制限、結果の加工を実際のコードで確認し、エージェントの動作をリアルタイムで制御する方法を学ぶ。
Strands Agents SDK の FileSessionManager で会話をファイルに永続化し、プロセス再起動後も復元できることを確認する。保存されるデータ構造と S3 への切り替え方法もコードで解説する。
Strands Agents SDK の Structured Output を実際に動かし、Pydantic モデルで LLM の出力を型安全なオブジェクトに変換する。ツールとの併用やバリデーション自動リトライの仕組みをコードとメトリクスで確認する。
SAMデプロイのハマりポイント、LocalDurableTestRunnerによるローカルテスト、実行履歴の追跡方法を実体験ベースで整理。修飾付きARN必須の罠が最初の関門。
冪等性・DurableExecutionName・並行コールバック・タイムアウト設定を実機検証。「リプレイされる前提で設計する」が全BPの共通原則だと分かった。
AWS公式の不正検知デモをデプロイし、リスクスコア別の3分岐とサスペンド動作を実機検証。チェックポイント&リプレイでwait中の課金ゼロを確認した。
AWS Security Blogの金融サービス向けエージェント型AIセキュリティ記事を解説。7つの設計原則を「権限」「追跡」「制御」の3軸で整理し、Bedrock AgentCoreによる実装アプローチを示す。
AWS ブログで紹介された AI 駆動 A/B テストエンジンの核心 — Bedrock Converse API の tool use を活用したモデルによる意思決定 — を実装・検証。プロンプトに含める文脈情報の有無でバリアント選択が逆転する現象を確認し、tool use でモデルに意思決定させる際の設計指針を整理した。
AgentCore Runtimeに追加されたマネージドセッションストレージを検証。停止・再開後のファイル復元、pip/gitワークスペースの永続化、セッション間隔離、グレースフルシャットダウンの挙動を実測データとともに共有する。
AgentCore CLI の Runtime・Memory・Gateway・Evaluations を1つのプロジェクトに統合し、ユーザーの専門分野を記憶して最新技術トレンドをパーソナライズ検索する技術トレンドアドバイザーを構築。シリーズの総集編として主要機能の統合手順と動作を検証する。
AgentCore CLI の Evaluations 機能を検証。LLM-as-a-Judge でカスタム評価器を定義し、エージェントの応答品質を on-demand で計測する手順と、リージョン制約やトレース反映のタイミングなど実運用で知っておくべきポイントを共有する。
AgentCore CLI の Gateway 機能を検証。外部 MCP サーバーをターゲットとして登録し、エージェントから Gateway 経由でツールを呼び出す手順と、プロジェクト構成の順序やデプロイ時の接続検証など実運用で知っておくべきポイントを共有する。
AgentCore CLI の Memory 機能を検証。SEMANTIC・USER_PREFERENCE・SUMMARIZATION・EPISODIC の4戦略で会話の記憶をセッション横断で永続化する手順と、抽出の非同期性やセッション ID の制約など実運用で知っておくべきポイントを共有する。
AgentCore CLIを使ってStrands Agentsプロジェクトの作成からローカル開発、AWSデプロイ、動作確認までを検証。CDKの知識なしに約1分半でエージェントをデプロイできる開発者体験と、OpenTelemetryベースのログ基盤を共有する。
Travel AgentからWeather AgentへのA2A委譲をEKS上で検証。エージェントカードのURL問題とS3セッション履歴によるLLMコンテキスト汚染という2つのハマりどころを解説する。
AWS公式ワークショップ「Agentic AI on EKS」を検証。Strands Agents SDKとMCPによるツール自動発見の仕組みと、KanikoによるEKS上コンテナビルドの実践知見を共有する。
AgentCore Runtime に追加された WebRTC サポートを使い、Nova Sonic による双方向音声ストリーミングエージェントを構築・デプロイする。TURN only 設定の重要性を検証で確認した。
Strands Agents SDKの評価フレームワーク Strands Evals の主要機能を実際に動かして検証した。決定的評価からLLM判定、マルチターンシミュレーション、テストケース自動生成まで網羅する。
AgentCore Code InterpreterのS3インテグレーションとPUBLICモードを検証。pip install、S3 wheel経由のオフラインインストール、sys.path直接importの3手法とクロスセッション永続性の実挙動を共有する。
AgentCore Runtimeに追加されたシェルコマンド実行APIを検証。HTTP/2ストリーミング、セッション内ファイル永続化、セッション間microVM隔離、並行実行の実挙動を実際のテスト結果とともに共有する。
AG-UIプロトコルをBedrock AgentCore Runtimeにデプロイし、SSEイベントストリームでリアルタイムにエージェント応答を配信する手順を検証。agentcore CLIによるDirect Code Deployの実体験を共有する。
Bedrock AgentCore PolicyのGA発表を受け、CedarポリシーによるGatewayのツールアクセス制御と自然言語からのCedar生成を実際に検証。default denyや自動推論バリデーションの挙動を実体験ベースで共有する。
AgentCore Memory の新機能 Memory Record Streaming を検証。Kinesis Data Streams へのプッシュ配信、FULL_CONTENT / METADATA_ONLY の挙動差、非同期抽出イベントの実測結果を共有する。
AgentCore Runtimeに追加されたStateful MCP機能を検証。Elicitation(サーバー主導の入力取得)、Sampling(LLM生成要求)、Progress Notifications(進行状況通知)の実挙動をローカルとリモートの両方で確認した。
Strands Agents SDK の Agents as Tools パターンで複数エージェントを協調させる。要約エージェントと翻訳エージェントをオーケストレーターが連携させる実例をコードとメトリクスで確認する。
Strands Agents SDK のマルチターン会話と SlidingWindowConversationManager を実際に動かし、エージェントが会話を記憶する仕組みとコンテキストウィンドウの管理方法をコードで確認する。
Strands Agents SDK に MCP (Model Context Protocol) サーバーを接続し、外部ツールでエージェントを拡張する。AWS ドキュメント検索 MCP サーバーを実際に動かし、自作ツールとの併用パターンをコードとメトリクスで確認する。
Strands Agents SDK のカスタムツールを深掘りする。ツールの連鎖でマルチステップ動作を実現し、エラー時の LLM の挙動やシステムプロンプトによる出力制御を実際のコードとメトリクスで確認する。
Strands Agents SDK の Python Quickstart を実際に動かし、エージェントループ・カスタムツール・メトリクスの仕組みをコード付きで解説する。わずか数十行で動くエージェントの手軽さと設計思想が見えてくる。
Strands Agents SDK の Graph でサイクル(フィードバックループ)を含む場合、build() の自動エントリポイント検出が失敗して ValueError が発生する。set_entry_point で明示的に指定する必要がある。
Strands Agents SDK の Graph で result.execution_time が 0ms を返す。ノードごとの execution_time は正しく記録されるので、合計値を自分で計算する必要がある。
Strands Agents SDK の Swarm でハンドオフしたエージェントの result にテキストブロックがない。handoff_to_agent ツール呼び出しで終了するため。最終出力はハンドオフしなかったエージェントが生成する。
Strands Agents で Bedrock Guardrails がブロックすると、会話履歴のユーザー入力が [User input redacted.] に自動書き換えされる。会話履歴をデバッグしていて入力が消えていたらこれが原因。
structured_output_model に渡した Pydantic モデルがメトリクスの tool_usage にツールとして表示される。デバッグ時に見慣れないツール名が出たらこれが原因。
Bedrock Converse API の tool use で 3 種類・計 4 回のツール呼び出しが必要なシナリオで、モデルが 1 回のレスポンスですべてを同時に要求した。逐次呼び出しを想定していたが、並列対応が必要だった。
agentcore remove all --force はローカルの設定ファイルをリセットするだけで、AWS上のリソースは残る。実際の削除には追加で agentcore deploy が必要。
AgentCore Runtime が VPC 内に作成した ENI は destroy 後も数時間 in-use のまま残ることがある。サブネットや VPC の削除は ENI が available になってから再試行する。
Foundation Model の ARN は arn:aws:bedrock:region::foundation-model/... のようにアカウント ID が空。サンプルの ACCOUNT_ID プレースホルダーをそのまま置換すると権限が効かない。
bedrock-agentcore-control(作成・削除)と bedrock-agentcore(セッション操作・コード実行)を混同すると AttributeError になる。
create-agent-runtimeでコード構成を使う際、S3にPythonファイルを直接置くと「S3 object must be in .zip format」エラーになる。ZIPに固めてからアップロードする必要がある。
ドキュメントには「Stateless between commands」とあるが、実際にはファイルシステムは同一セッション内で共有される。引き継がれないのはシェルヒストリーや環境変数だけだった。
codeConfigurationのentryPointにスペースを含む値やドットで始まる値を指定すると「Invalid entrypoint value」エラーが出る。Pythonランタイムなら["main.py"]のようにファイル名だけを指定する。
agentcore deploy中に「X-Ray Delivery Destination is supported with CloudWatch Logs as a Trace Segment Destination」が出るが、メモリリソース作成時のみの問題でランタイムには影響しない。
agentcore configureでDirect Code Deployを選択すると「Direct Code Deploy deployment unavailable (uv not found)」エラーが出る。pip install uvで解決するが公式ドキュメントに記載がない。
Bedrock AgentCore PolicyでCedar permitにwhen句を付けずに作成するとCREATE_FAILEDになる。FAIL_ON_ANY_FINDINGSの自動推論が原因。
Bedrock AgentCore GatewayはハイフンのみでPolicy Engineはアンダースコアのみ。同じプレフィックスを使い回すとValidationExceptionになる。
batch-update-memory-records の timestamp 必須や、memory-strategies のキー名 semanticMemoryStrategy / namespaceTemplates など、ドキュメントと AWS CLI の差異をまとめた。