土曜日, 5月 17, 2025
ホームニューステックニュースAWSが発表したAIエージェント構築SDK「Strands Agents」を5分だけ触ってみよう! #bedrock - Qiita

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



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

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

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

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

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

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

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

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

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

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

agent.py

from strands import Agent

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

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

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

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

最初に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)

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

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

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は?")

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

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

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

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

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

やさしいMCP入門.png





Source link

Views: 1

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -

インモビ転職