64
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSが発表したAIエージェント構築SDK「Strands Agents」を5分だけ触ってみよう!

Last updated at Posted at 2025-05-17

何かすごそうなのが来ました!

Strandsは日本人に馴染みの薄い単語ですが、DNAのように複数の糸がからまって幹をなす鎖を表すようですね。(LLMとツールの暗喩のようです)

いわゆる「組み紐」ですね。タキクゥーン!

世はAIエージェントSDK戦国時代!

この分野ではLangChainシリーズのLangGraphがずっと人気ですし、

最近はTypeScriptで書けるMastraも注目です。

また、OpenAIやGoogleなどのモデルベンダーもSDKをオープンソース公開する流れになっています。

そこにAWSも参入!というわけです。

3秒でAIエージェントが書ける!

ユーザーガイドを見てみましょう。

pip install strands-agents したら、なんと以下だけでAIエージェントが動きます!

agent.py
from strands import Agent

agent = Agent()
agent("Strandsってどういう意味?")

これを実行すると、デフォルトではAWSオレゴンリージョンのAmazon BedrockでClaude 3.7 Sonnetが推論に使われます。

※事前にAWS CLIの認証を通しておく必要があります。

実際にAIエージェントを作ってみよう

公式クイックスタートを少しアレンジしたものを使います。

最初にPythonのパッケージマネージャーuvで、プロジェクトディレクトリを作りましょう。

ターミナル
brew install uv
uv init strands-agents-handson

VS CodeなどのIDEでディレクトリを開き、Pythonの仮想環境を有効化しましょう。

ターミナル
cd strands-agents-handson
uv venv
source .venv/bin/activate

必要なライブラリを追加します。uvを使えば、pipよりも爆速ですね。

ターミナル
uv add strands-agents strands-agents-tools strands-agents-builder

事前にAWSアカウントを用意して、オレゴンリージョンでBedrockのClaude Sonnet 3.7を有効化しておきましょう。

また、作業PC上でAWS CLIの認証設定を済ませておき、ターミナルに環境変数(AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY)をセットしましょう。

その後、以下のメインコードを作成します。

agent.py
from strands import Agent, tool
from strands_tools import current_time, python_repl

@tool
def letter_counter(word: str, letter: str) -> int:
    return word.lower().count(letter.lower())

agent = Agent(tools=[current_time, python_repl, letter_counter])

message = """
いくつか質問があります。

1. いま日本は何時?
2. その時刻表示の中に「1」はいくつある?
3. ここまで話した内容をPyhtonコードにして。テストしたあとにコード内容を表示して。
"""

agent(message)

書けたら実行してみましょう。

ターミナル
uv run agent.py

結果はやってみてのお楽しみ!

話題のMCPにもばっちり対応

Model Context Protocol標準に従って、他の人が作った便利なツールをStrandsから実行してみましょう。

以下のコードを書いてみます。

mcp-agent.py
from strands import Agent
from strands.tools.mcp import MCPClient
from mcp import stdio_client, StdioServerParameters

# ローカルMCPサーバーを定義
stdio_mcp_client = MCPClient(lambda: stdio_client(
    StdioServerParameters(
        command="uvx",
        args=["awslabs.aws-documentation-mcp-server@latest"]
    )
))

# 利用可能なツールを読み込んでエージェントに設定
with stdio_mcp_client:
    agent = Agent(
        tools=stdio_mcp_client.list_tools_sync()
    )
    agent("BedrockのClaude 3.7 SonnetのモデルIDは?")

書けたら実行してみましょう。

ターミナル
uv run mcp-agent.py

結果はやってみてのお楽しみ!
もちろん、Streamable HTTPを含むリモートMCPサーバーの利用にもばっちり対応しています。

AIエージェント構築用のSDKは、グラフ構造が独特なLangGraph以外はどれも使用感が似ていますね。
(かくいうLangGraphも、シンプルなFunctional APIをリリースしています)

AWS & Bedrockユーザーとしては、このStrands Agentsも流行ってほしいところです!

おまけ

MCPの入門書を出版することになりました! すでに予約可能です。

やさしいMCP入門.png

64
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?