最近、AWSが発表したAIエージェント構築SDK「Strands Agents」に興味を持ち、実際に触ってみました。AIエージェントに興味を持っている方々に向けて、セットアップから基本的な実装、そして躓きポイントとその解決策までをまとめてみました。
Strands Agentsとは
AWS Strands Agentsは、AWSが提供するAIエージェント構築のためのPythonベースのSDKです。BedrockのLLMモデルを活用して、対話型のインテリジェントなAIエージェントを簡単に構築できます。計算機能やウェブリクエストなどの様々なツールを統合できるのが特徴です。
以下の記事を読んでちょっと触ってみようと思いました。
環境セットアップ
まず、必要なライブラリをインストールします。
pip install strands-agents
pip install strands-agents-tools strands-agents-builder
AWS 認証情報を設定します。
~/.aws/credentials
に適切なプロファイルを設定するか、環境変数で認証情報を設定してください。
実装
参考にした記事に書いてあったコードをそのまま書いて実行してみます。
from strands import Agent
agent = Agent()
agent("Strandsってどういう意味?")
しかし、このコードを実行すると「指定したモデルIDにアクセスできない」というエラーが発生しました。
An error occurred (AccessDeniedException) when calling the ConverseStream operation: You don't have access to the model with the specified model ID.
どうやらデフォルトだとオレゴンリージョンのClaude 3.7が使われるようですが、オレゴンリージョンでは利用できるようにモデルアクセスの設定などしていないのでモデルの設定を追加します。
# Create a BedrockModel
bedrock_model = BedrockModel(
model_id="us.anthropic.claude-3-7-sonnet-20250219-v1:0",
region_name='us-east-1',
temperature=0.3,
)
agent = Agent(
model=bedrock_model,
)
これでも同じエラーが出てしまいつまづきましたが以下の設定で解決しました。
# Create a BedrockModel
bedrock_model = BedrockModel(
model_id=model_id,
temperature=temperature,
boto_session=boto3.Session(profile_name="default", region_name="us-east-1"),
)
agent = Agent(
model=bedrock_model,
)
問題の原因は.aws/config
にregion = ap-northeast-1
が設定されていたため、接続先のリージョンを設定する必要がありました。
機能の活用例
calculatorツールの使用例
Strands Agentsには様々なツールが組み込まれています。
例えば、計算機能を使うには、
agent = Agent(
model=bedrock_model,
tools=[
calculator,
],
)
response = agent("2 x 9 + 2 は?")
print(response)
http_requestツールの使用例
さらに、Webページの内容を取得するためのhttp_requestツールも試してみました。
agent = Agent(
model=bedrock_model,
tools=[
calculator,
http_request,
],
)
response = agent("https://qiita.com/minorun365/items/dd05a3e4938482ac6055 の内容を教えて")
print(response)
それぞれ、どのようなレスポンスが返ってくるのか実際に試してみてください。
作業履歴はzennのスクラップにもあります
まとめ
AWS Strands Agentsを使えば、比較的シンプルなコードでインテリジェントなAIエージェントを構築できます。今回は組み込みのツールを使ってみただけでしたが自分でツールを作るのも試してみたいと思っています。
皆さんもぜひ、AWS Strands Agentsを使って、独自のAIエージェントを構築してみてください。
コメント