Strands Agents SDK デプロイ — OpenTelemetry でエージェントのトレースを可視化する
Strands Agents SDK に組み込まれた OpenTelemetry サポートを有効化し、エージェントの推論・ツール呼び出しをトレースとして Jaeger で可視化する。エージェントコードの変更は 2 行だけ。
「strands-agents」タグが付いたコンテンツ一覧
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 認証の問題など、実際に遭遇したハマりポイントも共有する。
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 との違いも比較する。
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 の出力を型安全なオブジェクトに変換する。ツールとの併用やバリデーション自動リトライの仕組みをコードとメトリクスで確認する。
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上コンテナビルドの実践知見を共有する。
Strands Agents SDKの評価フレームワーク Strands Evals の主要機能を実際に動かして検証した。決定的評価からLLM判定、マルチターンシミュレーション、テストケース自動生成まで網羅する。
AG-UIプロトコルをBedrock AgentCore Runtimeにデプロイし、SSEイベントストリームでリアルタイムにエージェント応答を配信する手順を検証。agentcore CLIによるDirect Code Deployの実体験を共有する。
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 の agent() はブロッキング呼び出しなので、FastAPI の async def エンドポイント内で呼ぶとイベントループがブロックされてリクエストがハングする。def に変えれば解決する。
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 にツールとして表示される。デバッグ時に見慣れないツール名が出たらこれが原因。
Strands SDK の A2A サーバーはデフォルトでカードの url に http://0.0.0.0:9000/ を設定する。Helm values で a2a.http_url にサービス FQDN を指定して解決。
A2A 接続先 URL を修正しても、S3 に保存された古い会話履歴から LLM が旧 URL を学習して使い続ける。セッションクリアで解決。