継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

AWS 謹製 AI エージェント構築 SDK `Strands Agents` を触ったメモ✍

タダです.

X をみていたら以下のブログ記事を見つけました.AWS 謹製の AI エージェント構築 SDK Strands Agent が発表されたので触ってみたメモを書きます.

aws.amazon.com

Strands Agent の概要

Strands Agent は2025年5月18日時点ではパブリックプレビュー状態です.

Strands Agents is currently available in public preview. During this preview period, we welcome your feedback and contributions to help improve the SDK. APIs may change as we refine the SDK based on user experiences.

Strands Agent はブログ記事によると3つのコアコンポーネントで構成されていそうです.Strands Agent はプロンプトによって提供されたタスクを完了するまでモデルおよびツールとループしてやりとりする動きを取り,最終結果をユーザーに返します.

  • Model: Bedrock/Claude/Llama/Ollama/OpenAI などさまざまなモデルプロバイダーを提供する
  • Tools: MCP サーバーを利用したツールやファイル操作,APIリクエスト,AWS APIとの連携など20以上の事前構築されたツールを提供する
  • Prompt: ユーザーからの質問への回答などエージェントのタスクを定義する自然言語プロンプトを提供

開発環境構築

ドキュメントを参考に開発環境を作ってみました.仮想環境を作って,SDK をインストールだけしました.

$ python3 -m venv venv
$ pip install strands-agents

サンプルコードの実行

Strands Agent 実行環境を作った後これもドキュメントに則ってコードを実行してみます.

from strands import Agent

agent = Agent()

agent("AWS謹製のAIエージェント構築SDK Strands Agentを解説してください")

事前にオハイオリージョンの Bedrock Claude 3.7 Sonnet のモデルアクセスを有効化して認証情報をターミナルで与えておいたうえで, python -u agnet.py を実行してみると以下の結果が返ってきました.

$ python -u agent.py
# AWS Strands Agentの解説

## 概要
AWS Strands Agentは、AWSが20244月に発表した、AIエージェント構築のためのオープンソースSDKです。このフレームワークは、エージェントの構築プロセスを標準化・簡素化し、開発者がAIエージェントアプリケーションを効率的に開発できるよう設計されています。

## Strands Agentの主な特徴

### 1. マルチモダリティのサポート
- テキスト、画像、音声などの複数の入力モダリティを処理できます
- 様々なタイプのユーザー入力に対応するエージェントを構築可能

### 2. 拡張性のある設計
- モジュール式のアーキテクチャにより、カスタムコンポーネントの追加が容易
- 様々なLLMとの連携が可能(Amazon Bedrock、Claude、LLaMa、Anthropicなど)

### 3. ReActフレームワークの実装
- Reasoning and Acting(ReAct)パターンを採用
- エージェントが推論と行動を交互に行うことで、複雑なタスクをステップごとに解決

### 4. ツールの統合
- 外部APIやサービスを「ツール」として簡単に統合できる機能
- データベース、検索エンジン、社内システムなどとの連携が可能

## 主要コンポーネント

### 1. Agent Core
エージェントの中核ロジックを担い、入力処理から出力生成までを制御します。

### 2. Tool Registry
エージェントが使用できるツールを登録・管理するシステムです。

### 3. Memory System
会話の文脈や状態を保持し、一貫性のある対話を実現します。

### 4. Prompt Engine
LLMへの指示や入力を最適化するコンポーネントです。

## 利点

- **開発の標準化**: エージェント開発のためのベストプラクティスを組み込んだ設計
- **迅速な開発**: 複雑なエージェントロジックを少ないコードで実装可能
- **AWSサービスとの連携**: Amazon Bedrockなど他のAWSサービスとスムーズに統合
- **カスタマイズ性**: 様々なユースケースに合わせてエージェントをカスタマイズ可能

Strands AgentはまだAWSのAIエコシステムの中では新しいコンポーネントであり、今後さらなる機能強化が期待されています。オープンソースという性質上、コミュニティからのフィードバックや貢献によって進化していくでしょう。 

ブログ記事を参考に MCP サーバーへの問い合わせもできることを確認しました.

まとめ

Strands Agents をサクッと触ってみたのでメモをまとめました.Lambda/Fargate/EC2 へのデプロイもできるようなので,次はローカルで書いたコードをデプロイしてみようと思います.