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
360
2
Share
まだ間に合う!Strands Agents SDKの入門からちょっと応用気味なところまで
JAWS-UG 栃木 オフライン #3 での登壇資料です
RTA部分(デモ)はTwitterに載せてます
Har1101
July 26, 2025
More Decks by Har1101
See All by Har1101
AgentCore RuntimeからS3 Filesをマウントしてみる
har1101
3
400
AgentCore Session Storageで激安RAG作るためのあれやこれや
har1101
3
240
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
2
530
今日から始めるAmazon Bedrock AgentCore
har1101
4
500
My First Year as a Community Builder
har1101
3
300
EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント
har1101
7
340
AgentCoreとHuman in the Loop
har1101
5
350
スケジュール駆動なエージェントを作ろう!
har1101
4
880
AIエージェントの設計で注意するべきポイント6選
har1101
7
4k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Speed Design
sergeychernyshev
33
1.6k
The Language of Interfaces
destraynor
162
26k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
Six Lessons from altMBA
skipperchong
29
4.2k
Site-Speed That Sticks
csswizardry
13
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Faster Mobile Websites
deanohume
310
31k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
180
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エージェントシステムを作っていきましょう〜〜〜! まとめ