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

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



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

完全に便乗投稿です。

こちらを先にお読みください。

簡単にエージェントが作れます。間違いないです。
追加で、いくつか試してみたのでよければ御覧ください

Bedrockのモデルやリージョンをカスタマイズする

デフォルトでは、オレゴン(us-west-2)リージョンのClaude 3.7 Sonnetが使われるのですが、リージョンやモデルをカスタマイズしたい場合はこんな指定をします。

Bedrock以外のモデルを使用する

Bedrock以外のモデルを使用する方法も用意されています。

  • Anthropic
  • LiteLLM
  • Ollama
  • Llama API

LiteLLMを使えばかなりたくさんのモデルを使用できますし、Ollamaを使うとローカルモデルが使えます。

例として、LiteLLM経由でOpenAIのo4-miniを使用する場合はこのような手順となります。

  1. ライブラリーをインストールする

    uv add strands-agents[litellm]
    
  2. .envにAPIキーを準備する

  3. Pythonのコードを実装する

    from dotenv import load_dotenv
    from strands import Agent
    from strands.models.litellm import LiteLLMModel
    
    load_dotenv()
    
    litellm_model = LiteLLMModel(model_id="openai/o4-mini")
    
    agent = Agent(model=litellm_model)
    agent("Strandsってどういう意味?")
    
    

ツールが沢山用意されている

エージェントを作る際に必須なエージェントですが、様々なエージェントが用意されています。

ドキュメントでは、「Example Built-in Tools」という表現なので、「あくまでサンプルですよ」という位置づけなのかもしれません。ただ、GitHubのリポジトリでは「サンプルだよ」のノリは感じられないので、「オープンソースなので無保証だけど自由に使ってね」のスタンスなのかもしれません。

GitHubに記載のある機能の画面キャプチャです。
もう、ワクワクが止まりません。

image.png

やってみた1:file_writeツールとhttp_requestを使ってみる。

ツールは別ライブラリーとして用意されているのでインストールします。

uv add strands-agents-tools

コードはこんな感じです。難しくないですね。

import boto3
from strands import Agent
from strands.models import BedrockModel
from strands_tools import file_write, http_request

session = boto3.Session(
    region_name="us-east-1",
)

bedrock_model = BedrockModel(
    model_id="us.amazon.nova-premier-v1:0", boto_session=session
)

agent = Agent(model=bedrock_model, tools=[file_write, http_request])
agent("http://www.yahoo.co.jpにアクセスして、今日の主要ニュースを「News.md」としてファイルに保存して")

実行します。標準出力に途中経過が出力されます。

動作で特徴的なのが、ファイル書き込みツールを使用するタイミングで、ユーザーに許可を求めます。
(黄色い文字のDo you want to proceed with the file write?でユーザーの入力待ちになります)

image.png

「Y」で回答すると、後続処理が行われ、ファイルへの出力が行われました。

image.png

やってみた:use_awsツールとcurrent_timeを使ってみる。

最後にAWSツールを使ってみました。

import boto3
from strands import Agent
from strands.models import BedrockModel
from strands_tools import current_time, use_aws

session = boto3.Session(
    region_name="us-east-1",
)

bedrock_model = BedrockModel(
    model_id="us.amazon.nova-premier-v1:0", boto_session=session
)

agent = Agent(model=bedrock_model, tools=[use_aws, current_time])
agent("今月作成したLambdaの名称を取得して一覧で出力してください。")

出力をお見せするのは恥ずかしいので割愛しますが、ちゃんと動いたことだけお伝えします。

Strands Agentsがあれば、オレオレQ Developer CLIとか作れそうだな。。

おまけ

とか思ったところなんですが、 Strands CLI がすでに提供されていました!
(リポジトリ名と名前が食い違ってるので、ちょっと気持ち悪いですが。)

デフォルト動作でいい場合は以下で起動

uvx --from strands-agents-builder strands

これはもう、、Q Developer CLIですな。

image.png





Source link

Views: 2

RELATED ARTICLES

返事を書く

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

- Advertisment -

インモビ転職