Strands Agentsとは?AWS製OSSエージェントSDKの使い方・特徴を解説【読み方も・2026年時点】
Strands Agents(ストランズ・エージェンツ)は、AWSが2025年5月16日に公開したオープンソースのAIエージェント開発SDKです。実行フローを人手で細かく組み上げる代わりに、計画・ツール選択・振り返りをLLM自身に任せる「モデル駆動(model-driven)」の設計を採っており、システムプロンプトと使えるツールの一覧を渡すだけで、数行のコードから動くエージェントを構築できます。ライセンスはApache-2.0で、Python版に加えてTypeScript版も提供されています(2026年7月時点の最新はPython版1.48系)。この記事では、読み方と名前の由来、エージェンティックループの仕組み、インストール手順、対応モデルの切り替え、ツール追加とMCP連携、マルチエージェント構成、LangChainやLangGraphとの違い、そして本番運用と採用判断までを実際の仕様に沿って解説します。
まとめ:Strands Agentsの要点
- 正体:AWS製のオープンソースAIエージェントSDK。2025年5月16日公開、Apache-2.0。PythonとTypeScriptに対応し、2026年7月時点でPython版は1.48系、TypeScript版は1.x系。
- 設計思想:モデル駆動。オーケストレーションを固定的に記述せず、LLMの計画・ツール呼び出し・振り返りでタスクを進める「エージェンティックループ」が中核。
- 名前の由来:DNAの二重らせん。モデルとツールという2本の鎖を束ねる比喩で、独自の処理単位を指す用語ではない。
- 導入:
pip install strands-agents strands-agents-tools。Agent(system_prompt=..., tools=...)を定義して呼び出すだけ。 - 対応モデル:Amazon Bedrockが既定。Anthropic API、Llama API、Ollama(ローカル)、LiteLLM経由でOpenAIなど多数、独自プロバイダーも可。
- ツールとマルチ化:
@toolデコレーター・MCPサーバー・20種以上(継続的に追加)の組込ツールに対応。Agents as Tools/Swarm/Graph/Workflowでマルチエージェントを構成できる。 - 実績と本番:Amazon Q Developer、AWS Glue、VPC Reachability AnalyzerなどAWS社内の本番で採用。Python版の累計ダウンロードは2500万超(2026年時点の公表値)。本番デプロイの受け皿にはAmazon Bedrock AgentCoreがある。
先に押さえるべき軸は「モデル駆動」という一点です。分岐やループを厳密に固定したい用途はLangGraphなどのグラフ定義型、少ないコードで立ち上げてモデルに判断を委ねたい用途はStrandsと整理しておくと、後半の比較と採用判断が読みやすくなります。
Strands Agentsの読み方・意味とDNA由来の名前が示す設計思想
読み方は「ストランズ・エージェンツ」で、日本語では「ストランズエージェント」と表記されることも多いです。英単語のstrandは「より糸」「(ロープや繊維の)一本の筋」を意味し、複数形のstrandsはその筋が複数集まったイメージを指します(DNA文脈では「鎖」と訳されます)。Strands Agentsではこの語を、DNAの二重らせんになぞらえて使っています。
DNAが2本の鎖(strand)で1つの構造を作るように、Strandsはエージェントの2つの中核要素であるモデルとツールを結び付ける、という命名です。旧来の解説で見かける「Strandという単位で状態とアクションの連鎖を定義する」という説明は公式の定義ではなく、モデル駆動という設計思想とも合致しないため注意してください。実際にコードで扱う中心オブジェクトはAgentであり、Strandという名前のクラスや処理単位を明示的に書くわけではありません。
モデル駆動の設計思想とエージェンティックループが処理を進める仕組み
Strandsの動作の核は「エージェンティックループ」です。ユーザーの入力を受け取ると、SDKはプロンプトとこれまでの文脈、そして利用可能なツールの説明をまとめてLLMに渡します。LLMはそれをもとに、ユーザーへの自然言語応答を返すか、次に実行すべき手順を計画し、過去の手順を振り返り、必要なツールを選びます。ツールが選ばれた場合はStrandsが実際にそのツールを実行し、結果を再びLLMへ返す流れです。この「LLMが考える→ツールを実行する→結果を踏まえて再び考える」というサイクルを、タスクが完了するまで繰り返します。
この方式のねらいは、分岐やループといった制御ロジックを開発者が手で書き込む量を減らし、モデルの計画・思考連鎖(chain-of-thought)・ツール呼び出し・自己反省の能力に判断を委ねる点にあります。フローをグラフとして厳密に固定する設計とは対照的に、モデルの推論性能が上がるほどエージェントの挙動も改善しやすいのが特徴です。裏を返すと、実行のたびに手順が完全に一致する保証はないため、決定的な処理順序が必須の業務にそのまま当てはめない判断も必要になります(後述の採用判断で線引きします)。
Python環境でのインストール手順と数行で動く最小コード例
PythonのSDKはpipで導入します。本体のstrands-agentsと、組込ツール群を含むstrands-agents-toolsを入れるのが基本構成です。リリースは高頻度で続いており、2026年7月時点のPyPI最新版は本体が1.48系、ツール集が0.8系です。
pip install strands-agents strands-agents-tools
最小のエージェントは、システムプロンプトと使わせたいツールを渡してAgentを作り、そのまま関数のように呼び出すだけで動きます。
from strands import Agent
from strands_tools import calculator
agent = Agent(
system_prompt="あなたは計算を手伝うアシスタントです。",
tools=[calculator],
)
result = agent("128 * 512 はいくつ?")
print(result)
既定ではAmazon Bedrockのモデルを利用するため、AWS認証情報とBedrockのモデルアクセス設定が必要です。ローカルや他社モデルで動かしたい場合は、次章のモデルプロバイダー設定を差し替えます。
対応モデルプロバイダーの種類とOpenAI・Ollamaへの切り替え方法
Strandsは特定のモデルに縛られません。既定はAmazon Bedrockですが、モデルプロバイダーを差し替えることで各社モデルへ切り替えられます。主な選択肢は次の通りです。
| プロバイダー | 位置づけ |
|---|---|
| Amazon Bedrock | 既定。Claude・Llama等に対応 |
| Anthropic API | Claudeモデルを直接利用 |
| Llama API | Llamaモデルを利用 |
| Ollama | ローカル開発・検証向け |
| LiteLLM | OpenAI等を横断的に利用 |
Bedrock経由ではツール利用とストリーミングを含めて各モデルを実行できます。「Strandsでは公式のOpenAIモデルは使えないのか」という質問がよくありますが、LiteLLM経由でOpenAIのモデルを指定でき、独自のカスタムプロバイダーを実装することも可能です。プロバイダーを切り替えても、エージェント本体のコードやツール定義はそのまま流用できるのが利点です。
@toolデコレーター・組込ツール・MCP連携によるツール追加の方法
エージェントに機能を持たせる方法は3つあります。1つ目は、任意のPython関数に@toolデコレーターを付けてツール化する方法です。関数のドキュメント文字列がツールの説明としてLLMに渡されるため、何をするツールかを日本語で書いておくだけで呼び分けが機能します。
from strands import tool
@tool
def get_weather(city: str) -> str:
"""指定した都市の天気を返す。"""
return f"{city}の天気は晴れです"
2つ目は、strands-agents-toolsに含まれるファイル操作・API呼び出し・AWS操作など20種以上(提供ツールは継続的に追加されています)の組込ツールを使う方法です。3つ目は、Model Context Protocol(MCP)サーバーをツールとして接続する方法で、公開されている多数のMCPサーバーをそのまま呼び出せる仕組みです。MCPという規格そのものの役割はMCPとは?AIと外部ツールをつなぐ標準規格の解説記事で、PythonでのMCPサーバー実装はFastMCPの解説記事で詳しく取り上げています。加えて、エージェントの実行前後やツール呼び出しの前後に処理を差し込むフック(hooks)機構も用意されており、ロギングや入出力の検証を挟み込めます。
Agents as Tools・Swarm・Graphで組むマルチエージェント構成
Strandsは単体エージェントだけでなく、複数のエージェントを協調させる構成も標準で扱えます。代表的なパターンは次の4つです。
- Agents as Tools:あるエージェントを別のエージェントのツールとして呼び出し、役割ごとに専門エージェントへ委譲する。
- Swarm:複数エージェントが自律的に協調し、担当を引き継ぎながらタスクを進める。
- Graph:ノードとエッジで処理経路を定義し、エージェント間の流れを明示的に制御する。
- Workflow:あらかじめ決めた手順どおりに複数エージェント・ツールを順序実行する。
用途に応じて、モデルに委ねる自律型(Swarm)と経路を固定する制御型(Graph・Workflow)を使い分けられます。さらに、エージェント同士を相互運用するAgent-to-Agent(A2A)プロトコルにも対応しており、異なる実装のエージェントを連携させる構成にも広がっている状況です。A2Aがどんな課題を解く規格なのかはAgent2Agent(A2A)の解説記事で整理しています。
LangChain・LangGraph・Mastraとの違いとフレームワーク選定基準
Strandsの立ち位置は、既存のエージェントフレームワークと比べると分かりやすくなります。要点は「制御フローを人が書くか、モデルに委ねるか」です。
| フレームワーク | 主言語 | 設計の軸 |
|---|---|---|
| Strands Agents | Python/TypeScript | モデル駆動でループを進める |
| LangChain | Python/JS | チェーンで処理を連結 |
| LangGraph | Python/JS | 状態グラフを明示的に定義 |
| Mastra | TypeScript | TS前提の統合エージェント基盤 |
LangChainはチェーン(LCEL)で処理を連結する方式で、RAGや前処理の定型パイプラインに向きます。LangGraphは状態機械としてグラフを明示定義するため、分岐・ループ・人手介在を厳密に制御する複雑な用途に強い設計です。複雑な分岐やヒューマン・イン・ザ・ループを厳密に制御したいならLangGraph、まず少ないコードでエージェントを立ち上げてモデルの推論に判断を任せたいならStrandsが手早い選択になります。TypeScript中心で構築したい場合は、StrandsのほかMastraやLangChain.jsも選択肢になります。
本番運用の構成と採用判断:AgentCoreへのデプロイと見送り場面
Strandsは実験向けのSDKに留まらず、Amazon Q Developer、AWS Glue、VPC Reachability AnalyzerといったAWS自身のサービスの本番環境で使われています。Python版の累計ダウンロードは2500万回超と公表されており(2026年時点)、モデル駆動型のエージェントSDKとしては採用実績が厚い部類に入ります。
本番運用で問題になるのは、エージェントの実行環境・セッション管理・認証・監視をどう用意するかです。AWSはこの受け皿としてAmazon Bedrock AgentCoreを提供しており、Strandsで書いたエージェントをコードの大枠を変えずにマネージド環境へ載せられます。実行基盤側の構成要素とデプロイの流れはAmazon Bedrock AgentCoreの解説記事で説明しています。開発をStrands、実行と運用をAgentCoreという分担が、AWS上での標準的な組み合わせです。
採用の線引きははっきりしています。Bedrockを軸にPoCから本番まで短いコードで進めたい、ツール呼び出し中心の対話型・調査型エージェントを作りたい、という条件ならStrandsを採用します。逆に、承認フローや処理順序を1ステップずつ固定する必要がある基幹業務の自動化は、実行のたびに手順が揺れうるモデル駆動をそのまま使わず、GraphやWorkflow、あるいはLangGraphでの明示的な制御を選ぶほうが安全です。単発のLLM呼び出しで足りる要件にエージェントSDKを持ち込むのは過剰で、この場合はBedrockやAnthropic APIを直接叩けば済みます。
エージェント基盤の立ち上げには、Bedrockのモデルアクセス設定、IAM設計、実行環境やログ監視の整備といったAWS側の足回りが伴います。一創ではAWSを含むクラウドインフラの構築支援を提供しており、エージェント導入に必要なアカウント設計からセキュリティ・本番環境の整備までを相談できます。
よくある質問
Strands Agentsについて検索で聞かれることが多い質問と回答をまとめました。
Strands Agentsの読み方は?
「ストランズ・エージェンツ」と読みます。日本語表記では「ストランズエージェント」と書かれることもあります。名前はDNAの鎖(strand)に由来し、モデルとツールという2本の要素を束ねる設計思想を表した命名です。
Strands Agentsは無料で使えますか?
SDK自体はApache-2.0ライセンスのオープンソースで無料です。ただし、実行するLLM(Amazon BedrockやOpenAIなど)の利用料は別途かかります。ローカルで完結させたい場合はOllamaプロバイダーを使えば、モデル実行のAPI課金なしで検証できます。
OpenAIのモデルは使えますか?
使えます。既定のAmazon Bedrockに加えて、LiteLLM経由でOpenAIのモデルを指定できる仕様です。Anthropic API・Llama API・Ollama・独自プロバイダーにも対応しており、プロバイダーを替えてもエージェント本体のコードは流用できます。
TypeScriptでも使えますか?
使えます。もともとPython向けに公開されましたが、TypeScript版のv1.0が2026年4月30日に公開され、2026年7月時点では1.x系が最新です。Node.jsやブラウザでもエージェントを動かせるため、フロントエンドと同じ言語で統一した開発もできます。
LangGraphとどちらを選ぶべきですか?
分岐・ループ・人手承認などフローを厳密に制御したい大規模用途はLangGraph、少ないコードでモデルにフローを委ねたい用途はStrandsが向きます。既存のLangChain資産と組み合わせて使う構成も一般的です。
関連記事
- Mastraとは何か?AIエージェント構築における基本概念の解説:TypeScript前提のエージェント基盤としてStrandsと比較できます
- LangChain.jsとは?その概要と特徴を詳しく解説:JS/TSでエージェントを組む際のもう1つの選択肢です
- GitHub MCPサーバーの基本的な仕組みとその利用目的を解説:Strandsから接続できるMCPサーバーの具体例です
- FastMCPとは|PythonでMCPサーバーを最速構築するフレームワークの使い方【2026年版】:自作ツールをMCPサーバー化する実装編です
- AIエージェントとは?基本概念とその役割を徹底解説:エージェントそのものの定義から確認したい方向けの基礎記事です