Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
まだ間に合う!Strands Agents SDKの入門からちょっと応用気味なところまで
Search
Har1101
July 26, 2025
2
350
まだ間に合う!Strands Agents SDKの入門からちょっと応用気味なところまで
JAWS-UG 栃木 オフライン #3 での登壇資料です
RTA部分(デモ)はTwitterに載せてます
Har1101
July 26, 2025
Tweet
Share
More Decks by Har1101
See All by Har1101
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
2
490
今日から始めるAmazon Bedrock AgentCore
har1101
4
460
My First Year as a Community Builder
har1101
3
260
EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント
har1101
7
320
AgentCoreとHuman in the Loop
har1101
5
320
スケジュール駆動なエージェントを作ろう!
har1101
4
830
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.8k
Now, go out
har1101
4
260
AWS re:Inventから考える、2026年のAIエージェント開発
har1101
2
690
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
710
Automating Front-end Workflow
addyosmani
1370
200k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
79
Code Review Best Practice
trishagee
74
20k
Fireside Chat
paigeccino
42
3.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
950
Everyday Curiosity
cassininazir
0
160
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
Designing for humans not robots
tammielis
254
26k
We Have a Design System, Now What?
morganepeng
55
8k
The Limits of Empathy - UXLibs8
cassininazir
1
260
Transcript
まだ間に合う! Strands Agents SDKの入門から ちょっと応用気味なところまで 2025/07/26 (土) JAWS-UG 栃木 オフライン
#3 福地開
Who am I ? 福地 開 (ふくち はるき) @har1101mony 所属:NECソリューションイノベータ株式会社
年次:3年目 業務:少しだけLLM触る人 選出:AWS Community Builders (AI Engineering) 2025 Japan AWS Jr.Champions 2025 Japan All AWS Certifications Engineers
今日話すこと ◆AWSでAIエージェントを構築する方法 • Amazon Bedrock Agents • Amazon Bedrock AgentCore
+ フレームワーク ◆Strands Agents SDK はじめの一歩 ◆Strands Agents SDK 応用編 ※資料中で「AI」と記載しているものは「生成AI」とりわけ「LLM」のことを指します ※所属組織とは一切関係ない、私個人の意見・考えとなります
AWSでAIエージェントを 構築する方法
方法1. Amazon Bedrock Agents ◆GUI上で、Bedrockを用いたAIエージェントを構築できる機能 • 基本的にはコーディング不要(アクショングループでは必要) • エージェントの挙動はある程度自動で決定 ◆エージェントを構築するサービス(SaaS)として提供されている
方法2. Amazon Bedrock AgentCore ◆任意のフレームワーク・モデルで構築されたAIエージェントを 安全にデプロイおよび運用できるプラットフォーム(PaaS) • フレームワーク: LangGraph, CrewAI,
Strands Agents • モデル: Bedrock, OpenAI, Gemini
方法2. Amazon Bedrock AgentCore ◆任意のフレームワーク・モデルで構築されたAIエージェントを 安全にデプロイおよび運用できるプラットフォーム(PaaS) • フレームワーク: LangGraph, CrewAI,
Strands Agents • モデル: Bedrock, OpenAI, Gemini ここが作れないと、 話が始まらない!
https://strandsagents.com/latest/
Strands Agents SDKを使って AIエージェントを作ってみよう! ~はじめの一歩編~
最短3行でエージェントが動く! ◆AIエージェント構築RTA、はーじまーるよー 1. uv init 2. uv venv 3. source
.venv/bin/activate 4. uv add strands-agents 5. 右ファイルを作成する 6. uv run agent.py
最短3行でエージェントが動く! ◆AIエージェント構築RTA、はーじまーるよー 1. uv init 2. uv venv 3. source
.venv/bin/activate 4. uv add strands-agents 5. 右ファイルを作成する 6. uv run agent.py • デフォルトモデルはオレゴンリージョンのBedrock Claude Sonnet 4 • Bedrock以外にOpenAI GPTシリーズやGeminiなども利用可能
Strands Agents SDKの中核:エージェントループ ◆エージェントが実行する以下のプロセスのこと 1. ユーザー入力とコンテキスト情報を受け取る 2. 受け取った情報を元に、 LLMが何をすべきか判断する 3.
最適なツールを選択し、実行する 4. ツール使用結果に基づいて推論を続ける 5. 応答を生成する
Strands Agents SDKの中核:エージェントループ ◆エージェントが実行する以下のプロセスのこと 1. ユーザー入力とコンテキスト情報を受け取る 2. 受け取った情報を元に、 LLMが何をすべきか判断する 3.
最適なツールを選択し、実行する 4. ツール使用結果に基づいて推論を続ける 5. 応答を生成する 1. 2. 3. 4. 5.
Strands Agents SDKの中核:エージェントループ ◆エージェントが実行する以下のプロセスのこと 1. ユーザー入力とコンテキスト情報を受け取る 2. 受け取った情報を元に、 LLMが何をすべきか判断する 3.
最適なツールを選択し、実行する 4. ツール使用結果に基づいて推論を続ける 5. 応答を生成する 1. 2. 3. 4. 5.
ツールを使ってみる ◆サンプルツールパッケージが存在する • python_repl: Pythonコードを実行 • http_request: API呼び出し、Webデータの取得 • slack:
APIアクセス、メッセージ送信を備えたSlack統合 • use_aws: AWSサービスと対話する
ツールを使ってみる ◆サンプルツールパッケージが存在する • python_repl: Pythonコードを実行 • http_request: API呼び出し、Webデータの取得 • slack:
APIアクセス、メッセージ送信を備えたSlack統合 • use_aws: AWSサービスと対話する ◆設定方法 • uv add strands-agents-tools で追加モジュールのインポート • 先ほど作成したエージェントに tools を定義するだけ
ツールを作ってみよう ◆もちろん自作ツールをエージェントに使わせることもできる • @tool というデコレータを追加すると、Python関数をツールに変換可能 • ツールの名前と説明はできるだけ明確に書くのが重要 →エージェントはツール名と説明を参考にしてどのツールを使うか判断する
ツールがあれば、エージェントの力は∞! ◆エージェントとツールがあれば立派なAIエージェント ◆自分でエージェントループを実装するとなると、情報の渡し方、 ツールの実行方法、会話の状態管理、エラー時のリトライ処理、 オブザーバビリティなど考えなければいけないことがたくさん
ツールがあれば、エージェントの力は∞! ◆エージェントとツールがあれば立派なAIエージェント ◆自分でエージェントループを実装するとなると、情報の渡し方、 ツールの実行方法、会話の状態管理、エラー時のリトライ処理、 オブザーバビリティなど考えなければいけないことがたくさん ◆Strands Agents SDKでは開発者が複雑なフローを実装しなくても、 最初からツール使用を前提としたエージェントフローが用意されて いる
◆エージェントの振る舞いや ツールの実装といった、 コア部分の実装に注力できるのがAWSらしいところ!
Strands Agents SDKを使って AIエージェントを作ってみよう! ~応用編~
MCPをつなげよう ◆Strands Agents自身がMCPクライアントになることができる • ローカルMCPサーバーとはstdio接続 • リモートMCPサーバーとはStreamable-HTTP接続(SSE接続は非推奨)
MCPをつなげよう ◆Strands Agents自身がMCPクライアントになることができる • ローカルMCPサーバーとはstdio接続 • リモートMCPサーバーとはStreamable-HTTP接続(SSE接続は非推奨) • MCPを使う場合は、MCPクライアントとMCPサーバーの接続がアクティブ でないといけない
• with文の中、すなわちMCPセッションがアクティブな時にのみエージェン トを実行できるような形にしてあげる必要がある
マルチエージェント構成にしてみよう ◆最も簡単:Agents as Tools方式を使用する • オーケストレーターエージェントとツールエージェントが協働する構成 • オーケストレーター:人間とのやり取りを元にツールエージェントを呼ぶ • ツール(専門家):ドメイン固有のタスクを実行
• 先程の @tool デコレーターを用いることで、ツールとしてのエージェント を定義することができる
責任あるAI(セキュリティ) ◆ツール実装のベストプラクティス • 最小権限: ツールには必要最小限の権限を与える • 入力検証: ツールへのすべての入力を徹底的に検証する • 明確なドキュメント:
ツールの目的、制限、期待される入力を文書化する • エラー処理: エッジケースや無効な入力を適切に処理する • 監査ログ: 機密性の高い操作をレビューのためにログに記録する ◆ガードレールを使用する • Bedrock GuardRailsと統合が可能 • ユーザーからの入力・ツールの入出力・LLMへの入力・ユーザーへの出力 と多層でのガードレールが必要 参考:https://speakerdeck.com/licux/owasp-top-10-for-llm-applicationskarakao-erubedrock-guardrailsnodao-ru
◆Strands Agents SDKの入門~ちょこっと応用のお話をしました! • エージェント構築をスピーディーかつ比較的簡単にできる! ◆最高のアップデートにして最高の新機能、 色んなAIエージェントシステムを作っていきましょう〜〜〜! まとめ