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
210
まだ間に合う!Strands Agents SDKの入門からちょっと応用気味なところまで
JAWS-UG 栃木 オフライン #3 での登壇資料です
RTA部分(デモ)はTwitterに載せてます
Har1101
July 26, 2025
Tweet
Share
More Decks by Har1101
See All by Har1101
「OutputOps」なエージェントを作りたかった…~エージェント開発Tipsを添えて~
har1101
3
120
Strands Agents SDKのAgent Graphへ入門してみよう!
har1101
5
250
Bedrock AgentCoreを使って簡単なチャットアプリを作ってみた!
har1101
8
810
私たちはなぜAWS Summitに参加するのか?
har1101
1
450
Bedrockのプロンプト管理どうしてる?
har1101
6
1k
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.8k
Ambient Agent on AWS!
har1101
3
660
Bedrockエージェントにおける MCP利用ケースについて考えてみる
har1101
4
650
AWS上でMCPを安全に使いたい ~Mastraを添えて~
har1101
7
1.9k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Rails Girls Zürich Keynote
gr2m
95
14k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
How to Think Like a Performance Engineer
csswizardry
27
2k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Faster Mobile Websites
deanohume
310
31k
A better future with KSS
kneath
239
17k
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エージェントシステムを作っていきましょう〜〜〜! まとめ