AWS Strands Agents SDK 完全ガイド:個人開発者は Strands・LangGraph・CrewAI のどれを選ぶべきか?
GitHub を開くと、また新しい AI agent フレームワークが目に入ります。今回は AWS 製です。最初の印象は「AWS のものは複雑で、AWS エコシステムにロックインされるに違いない」かもしれません。しかし Strands Agents の意外な点は、主要な agent SDK の中でもっとも立ち上がりが速いこと、そして Apache 2.0 オープンソースで、Anthropic Claude、OpenAI、ローカルの Ollama まで接続でき、AWS のコードを一行も書く必要がないことです。
本記事では、個人開発者の視点から Strands が実際に何を解決するのか、LangGraph や CrewAI との本質的な違いは何か、そして次の agent プロジェクトではどれを選ぶべきかを解説します。
TL;DR
- 一言で表すと:Strands は現時点で「アイデア」から「動く AI agent」までの距離がもっとも短いフレームワークです。大企業向けではなく、素早くアイデアを検証したい個人開発者に最適です
- AWS がオープンソース化した agent SDK で、Apache 2.0 ライセンス、複数の LLM プロバイダーに対応し、AWS ロックインなし
- コア設計:model-driven(エンジニアがフロー図を事前定義するのではなく、AI モデル自身が実行ステップを計画・実行する)。graph も crew も不要で、モデルにツールを渡して使い方を任せます
- MCP をファーストクラスでサポートし、数千の既存 MCP server をツールとして直接接続可能
- Python SDK は安定版(Amazon 社内の本番環境で使用中)、TypeScript SDK はまだ preview
- 向いている場面:アイデアの素早い検証、MCP ツール連携が多いプロジェクト、AWS にデプロイ済みの個人開発者
- 向いていない場面:精密なワークフロー制御が必要、ビジュアルデバッグ重視、TypeScript ファーストのプロジェクト
Strands に対する第一印象は、おそらく間違っています
「AWS 製 = クローズドソース = AWS エコシステムにロックイン」という直感は、Strands には全く当てはまりません。
Strands は Apache 2.0 ライセンスを採用しています。自由に使用、修正、商用利用でき、AWS に何も還元する必要はありません。実際にローカル環境で Anthropic Claude API(claude-sonnet-4-20250514)と MCP GitHub ツールを使った agent をテストしましたが、AWS サービスには一切触れていません。一つハマったポイントがあります。初めて MCP GitHub server を実行した際、GITHUB_TOKEN 環境変数を設定していなかったため 401 auth error が発生しました。トークンを設定したら問題なく動作しました。全体として、pip install strands-agents と Anthropic API キーの設定だけで始められます。
さらに重要なのが、マルチプロバイダー設計です。Strands のモデルプロバイダーシステムは Amazon Bedrock、Anthropic Claude API、OpenAI、Ollama、LiteLLM に加え、Cohere、xAI、Fireworks などのコミュニティ提供プロバイダーにも対応しています。今日は Bedrock の Claude を使い、明日は直接 Anthropic API に切り替えるといったことが、コード1行の変更で可能です。
Strands Agents とは?2025年5月のリリースから1,400万ダウンロードまで
Strands Agents SDK は、2025年5月16日に AWS Labs からオープンソースとして公開されました。ポジショニングは明確で、model-driven の AI agent フレームワークとして、LangGraph の workflow-driven や CrewAI の role-based 設計と対比されます。
2026年4月時点の採用データ:
- GitHub Stars:6,200以上
- PyPI ダウンロード:累計1,400万以上、月平均約535万回(PyPI Stats より)
- Amazon 社内での利用:Q Developer、AWS Glue、VPC Reachability Analyzer が本番環境で Strands を使用
- パートナー:Anthropic、Meta(Llama)、Langfuse、mem0.ai、Tavily
ダウンロード数に関する正直な注記:PyPI の月平均535万以上のダウンロード数には大量の CI/CD パイプラインによる重複ダウンロードが含まれており、実際のユニークユーザー数はこれよりかなり少ないです。より参考になる指標は GitHub Stars とコントリビューターの多様性です。Accenture、Anthropic、Meta、PwC などからコントリビューターが参加しています。
2026年2月には、AWS が Strands Labs を立ち上げました。本番 SDK にまだ入っていないプロジェクト(Robots、Robots Sim、AI Functions)を収容する実験的な GitHub Organization です。Strands Labs を観察することで、AWS が agentic AI の未来にどこに賭けているかが見えてきます。
Strands の技術アーキテクチャ:「model-driven」は手抜きではない
Strands を理解するには、まず agent ループを理解する必要があります:
- モデルを呼び出す:ユーザー入力と利用可能なツールのリストを LLM に送信
- レスポンスを確認:モデルが返したのは最終回答か、それとも tool call か?
- ツールを実行:tool call の場合、対応するツールを実行し、結果を持ち帰る
- 繰り返し:ツールの結果を持ってモデルを再度呼び出し、モデルが「回答が得られた」と判断するまで続ける
これは LangGraph との根本的な違いです。LangGraph ではステートマシンを定義する必要があり、すべてのノード、すべてのエッジ、すべての条件分岐をエンジニアが設定します。Strands の哲学は、2025年以降のフロンティアモデル(Claude、GPT-4 クラス)はプランニングに十分な知性を持っており、フレームワークの役割は「モデルの代わりに経路を計画する」ことではなく「モデルの邪魔をしない」ことだという考え方です。
MCP ファーストクラス対応
Strands は MCP(Model Context Protocol) をファーストクラスでサポートしています。カスタムラッパーを書くことなく、任意の MCP server を agent のツールとして接続できます:
from strands import Agent
from strands.tools.mcp import MCPClient
mcp_client = MCPClient("npx -y @modelcontextprotocol/server-github")
agent = Agent(tools=[mcp_client])
agent("最近の GitHub PR を一覧表示して")
注意:AWS 公式ドキュメントの MCP GitHub サンプルは Amazon Bedrock(Claude 3.7 Sonnet on Bedrock)を使用しており、AWS の認証情報が必要です。ただし Strands フレームワーク自体は Anthropic API や他のプロバイダーの直接使用に対応しています。上記のコードは
AnthropicModelと組み合わせても動作し、AWS アカウントは不要です。
これは個人開発者にとって大きな意味があります。API ラッパーを一つずつ書く代わりに、GitHub、Slack、データベース、検索エンジンなどの既存 MCP server にそのまま接続できます。
マルチエージェントパターン
Strands は3つのマルチエージェントパターンに対応しています:
- Graph:明確な分岐ロジックがあるシナリオ向けの構造化ルーティング
- Swarm:独立して並列実行できるタスク向けのパラレル実行
- Workflow:ステップが固定されたプロセス向けのシーケンシャルパイプライン
A2A(Agent-to-Agent)によるフレームワーク間連携も開発中です。
オブザーバビリティ
OpenTelemetry のインスツルメンテーションが組み込まれており、Langfuse などのオブザーバビリティプラットフォームに直接接続できます。AWS の公式技術ドキュメントによると、agent ループの各イテレーションでモデル呼び出し、ツール実行、トークン使用量を含むトレーススパンが生成されます。
3大フレームワーク比較:Strands vs LangGraph vs CrewAI
以下の比較は公式ドキュメントと実際のテストに基づいており、2026年4月時点の情報です:
| 項目 | Strands Agents | LangGraph | CrewAI |
|---|---|---|---|
| 設計思想 | Model-driven(LLM が判断) | Graph ステートマシン(エンジニアが判断) | Role-based crew(役割分担) |
| 学習コスト | 最低(3-5行で開始) | 最高(graph 思考の理解が必要) | 中程度(ロール設定は直感的だがパターンあり) |
| MCP 対応 | ファーストクラス | アダプター経由 | 限定的 |
| TypeScript | Preview(機能不完全) | フルサポート | フルサポート |
| デバッグツール | OpenTelemetry traces(ネイティブ可視化なし) | LangGraph Studio(ビジュアル) | CrewAI Studio + リプレイ |
| 適した場面 | 素早い検証、MCP 多用、AWS デプロイ | 複雑なワークフロー、精密な制御 | ロール明確なチームシミュレーション |
| 本番環境の成熟度 | Amazon 社内で使用中(Python) | もっとも成熟、月4,700万以上ダウンロード(自己申告) | エンタープライズ管理画面あり |
| ライセンス | Apache 2.0 | MIT | MIT |
| モデルロックイン | なし(マルチプロバイダー) | なし(LangChain 経由) | なし(マルチプロバイダー) |
これは「どれが優れているか」ではなく、「自分の状況にどれが合うか」の問題です。
個人開発者のための選択ガイド:結局どれを選ぶべきか?
Strands を選ぶべき場合
- 初めて agent を作る、最速で動かしたい:Strands の model-driven 設計は graph の概念を学んだり role schema を定義したりする必要がありません。Python 5行で最初の agent が動きます
- 外部ツールを多数接続する必要がある:MCP エコシステムは省力化の武器です。GitHub、Slack、データベース、検索エンジンなど、すぐに使える MCP server が揃っています
- すでに AWS に他のサービスをデプロイしている:Bedrock + Lambda + AgentCore で完全なデプロイパスが提供されます
- LLM の自律的な判断が許容される場面:agent に厳密なステップ制御が必要ない場合
LangGraph を選ぶべき場合
- 決定論的なワークフローが必要:各ステップが順序通りに実行され、ロールバック可能で、明確なエラーハンドリングがある
- ビジュアルデバッグが欲しい:LangGraph Studio はフローチャートを見るように agent の挙動をデバッグできます。これは Strands の現時点で最も明確な弱点です。Strands には OpenTelemetry のトレース出力のみで、ネイティブのビジュアルデバッグインターフェースがありません
- チームに LangChain の経験がある:学習コストが大幅に下がります
- 本番環境の安定性が最優先:LangGraph はコミュニティでもっとも成熟したソリューションです
CrewAI を選ぶべき場合
- マルチロール協調:agent のロジックが「リサーチャーがデータ収集、アナリストが整理、ライターが出力」というパターンに自然と合う場合
- ノーコード/ローコードで素早く反復したい:CrewAI Studio がグラフィカルインターフェースを提供
- ビルトインのリプレイ機能が重要:異なる実行結果のリプレイと比較がデバッグワークフローに重要な場合
LangGraph からの移行は価値があるか?
すでに LangGraph 上で本番 agent を動かしている場合、Strands への移行コストは agent の複雑さに依存します:
- シンプルな agent(単一ツールチェーン、複雑な分岐なし):移行コストは低く、1-2日程度。Strands の model-driven 設計はシンプルなリニア graph を直接置き換えでき、コード量は通常60-70%削減できます
- 中程度の複雑さ(条件分岐、エラーハンドリングあり):3-5日必要です。graph のエッジにハードコードされていたロジックをツールの説明に変換し、モデルに判断を委ねる必要があります。リスクとして、model-driven の動作は graph ほど決定論的ではないため、十分なテストが必要です
- 高い複雑さ(ネストされたサブグラフ、カスタムステート管理):移行は推奨しません。Strands にも Graph/Swarm/Workflow の3つのマルチエージェントパターンがありますが、LangGraph のステートマシンエコシステムほどの成熟度はありません
実践的なアドバイス:LangGraph に具体的な課題がない限り(例:MCP 統合が面倒、graph 定義が肥大化している)、動作中の LangGraph agent をフレームワーク変更のためだけに移行する価値はありません。Strands は次の新しいプロジェクトに取っておきましょう。
30分で最初の Strands Agent を動かしてみましょう
以下のステップは公式ドキュメントで検証済みで、AWS アカウントは不要です。基本的な Python agent(ステップ1-3)は約10分で完了します。MCP ツール連携と環境のトラブルシューティングを含めると、全体で約30分です。
前提条件
始める前に、以下のツールが環境にあることを確認してください:
- Python 3.10以上:Strands SDK の最低要件
- pip:Python パッケージマネージャー
- LLM API キー:Anthropic API キー、AWS Bedrock 設定、またはローカルの Ollama のいずれか
- Node.js v18以上(ステップ4で必要):MCP server は
npxで実行するため、Node.js 環境が必要 - GITHUB_TOKEN(ステップ4で必要):MCP GitHub server の認証用 GitHub Personal Access Token
ステップ1:インストール
pip install strands-agents strands-agents-tools
ステップ2:LLM プロバイダーの設定
Anthropic Claude API を使用する場合(AWS 不要):
import os
os.environ["ANTHROPIC_API_KEY"] = "your-key-here"
from strands.models.anthropic import AnthropicModel
model = AnthropicModel(model_id="claude-sonnet-4-20250514")
ローカルの Ollama を使用する場合:
from strands.models.ollama import OllamaModel
model = OllamaModel(host="http://localhost:11434", model_id="llama3")
ステップ3:最小構成の Agent
from strands import Agent
agent = Agent(model=model)
response = agent("MCP とは何か、一文で説明して")
print(response)
ステップ4:ツールの追加(MCP)
前提条件:このステップでは MCP GitHub server を使用します。
npxコマンドは Node.js に含まれるため、Node.js(v18以上推奨)のインストールが必要です。また、GitHub MCP server は API アクセスに認証が必要で、設定しないと401 auth errorが発生します。先に環境変数を設定してください:export GITHUB_TOKEN="ghp_your_personal_access_token"トークンは GitHub Settings > Developer settings > Personal access tokens で生成できます。
repo権限を選択してください。
from strands.tools.mcp import MCPClient
github_tools = MCPClient("npx -y @modelcontextprotocol/server-github")
agent = Agent(model=model, tools=[github_tools])
agent("strands-agents/sdk-python の最新5件の PR を表示して")
ステップ5:デプロイ(オプション)
AWS Lambda や AgentCore へのデプロイには公式のリファレンスアーキテクチャがありますが、agent を任意の Python サービスとしてパッケージして Railway、Fly.io、または自前の VPS にデプロイすることもできます。重要なポイント:Strands SDK は AWS 環境を必要としません。
実際のコスト計算:本番 agent の運用にいくらかかるか?
Strands SDK 自体は無料で、AgentCore のハーネスも追加料金はありません。実際に支払うのはモデルの推論とコンピューティングリソースのコストです。
コスト試算(Claude 3.5 Haiku via Bedrock の場合)
AWS Bedrock の料金ページによると、Claude 3.5 Haiku の料金は:
- 入力:$0.80 / 100万トークン
- 出力:$4.00 / 100万トークン
中程度の複雑さの agent(リクエストあたり約3,000入力トークン + 1,000出力トークン)で、1日100リクエスト処理する場合:
- 入力コスト:100 x 3,000 / 1,000,000 x $0.80 = $0.24/日
- 出力コスト:100 x 1,000 / 1,000,000 x $4.00 = $0.40/日
- 月間合計:約$19.20(Lambda や Fargate のコンピューティング費用は除く)
Claude Sonnet 4(入力 $3 / 出力 $15 per million token)の場合、同じシナリオで月間コストは約 $54 です。
Bedrock vs Anthropic API 直接利用:AWS の料金設定によると、Bedrock 上の Claude モデルは Anthropic の直接 API と同じトークン単価で、Bedrock の追加料金はありません。Bedrock の利点はクロスリージョン推論と他の AWS サービスとの統合です。
コスト最適化
Bedrock はプロンプトキャッシングに対応しており、AWS の公式説明によるとキャッシュされたトークンは90%割引になります。agent のシステムプロンプトやコンテキストに大量の繰り返しがある場合、キャッシングを有効にすることで入力コストを大幅に削減できます。
リスク開示
Strands を選択する前に、知っておくべき制限事項があります:
- TypeScript SDK が不完全:2026年4月時点ではまだ preview で、multi-agent 機能が欠けています。スタックが純粋な TypeScript/Node.js の場合、待つ必要があるかもしれません
- Model-driven の予測不可能性:LLM に判断を委ねるということは、各ステップを正確に制御できないということです。決定論的なワークフローが必要なシナリオ(金融取引、法的文書処理など)では、LangGraph のステートマシンの方が適しています
- AWS の長期的なコミットメントは不明:Apache 2.0 ライセンスによりコードが消えることはありませんが、AWS のオープンソース戦略は過去に変更されたことがあります(Elasticsearch から OpenSearch への経緯を参照)。良い点として、Apache 2.0 自体はもっとも寛容なライセンスの一つです
- コミュニティ規模が比較的小さい:LangGraph は月間4,700万以上のダウンロード、Strands は約535万(CI/CD 重複を含む)です。問題に遭遇した際、Stack Overflow やコミュニティフォーラムのリソースが少なくなります
まとめ
Strands は「モデルを信頼する」という設計思想を体現しています。フロンティアモデルがますます賢くなる2026年において、ステートマシンのハードコーディングはオーバーエンジニアリングになりつつあるかもしれません。
個人開発者にとって、Strands の最大の価値は「最強」であることではなく、「アイデアから動く agent までの最短距離」であることです。MCP エコシステムのレバレッジ効果により、一人でも多くのツールを統合でき、Apache 2.0 ライセンスによってロックインの心配もありません。
初めて agent を作る方へ:上記のクイックスタートから始めてみましょう。30分で最初の agent を動かし、model-driven 設計を体感してください。Strands の低い敷居により、「フレームワークの設定方法」ではなく「agent でどんな問題を解決するか」に集中できます。
すでに LangGraph を使っている方へ:急いで移行する必要はありません。まずは Strands を MCP ツール統合のソリューションとして試してみてください。小さなサイドプロジェクトを Strands で作り、2つの設計思想の違いを実感しましょう。LangGraph の agent が安定して動作しているなら、そのまま続けてください。Strands は次に素早い検証が必要な新しいアイデアのために取っておきましょう。
FAQ
Strands Agents は AWS のクローズドソースサービスですか?ベンダーロックインされますか?
いいえ。Strands は Apache 2.0 オープンソースであり、任意の LLM プロバイダー(Anthropic Claude、OpenAI、Ollama など)と連携できます。AWS 以外の環境でもデプロイ可能で、ローカル環境だけで完結でき、AWS アカウントも不要です。
Strands と Amazon Bedrock AgentCore は同じものですか?
異なります。Strands はオープンソースのフレームワーク(SDK)で、AgentCore は AWS のマネージドホスティングプラットフォームです。Strands で構築した agent を AgentCore にデプロイできますが、Lambda、Fargate、自前のサーバーにもデプロイできます。
Strands の TypeScript SDK は本番環境で使えますか?
2026年4月時点ではまだ preview 段階で、multi-agent 機能が不足しています。本番環境では Python SDK の使用を推奨します。Amazon 社内の Q Developer や AWS Glue なども Python 版を使用しています。
Strands の MCP 対応は Claude Desktop の MCP と同じですか?
レイヤーが異なります。Strands は MCP クライアント側の統合で、任意の MCP server を agent のツールとして接続できます。Claude Desktop も MCP クライアントです。両者とも同じ MCP プロトコルに準拠しており、MCP server を共有できます。



