AIエージェントフレームワーク選定が2026年の開発生産性を左右する
2026年、AIエージェントは「LLMに質問する」段階を超え、コードを書き、テストを実行し、デプロイまで完了するレベルに到達した。GitHub上には数十のエージェントフレームワークが乱立し、どれを選ぶべきかの判断が難しくなっている。
この記事では、2026年4月時点で実用レベルに達している主要9フレームワークを、GitHub Star数・アーキテクチャ設計・実装コード・ユースケースの4軸で徹底比較する。
比較対象フレームワーク一覧
| フレームワーク | GitHub Stars | 言語 | ライセンス | 最新バージョン |
|---|---|---|---|---|
| Dify | 137K | Python/TS | Apache 2.0(修正版) | v1.5+ |
| OpenHands | 70.7K | Python/TS | MIT | v1.6 |
| CrewAI | 48.2K | Python | MIT | v1.10+ |
| LangGraph | 28.6K | Python | MIT | v1.1+ |
| Mastra | 22.8K | TypeScript | Apache 2.0 | v1.16+ |
| Google ADK | 18.8K | Python/Go/TS/Java | Apache 2.0 | v1.28+ |
| PydanticAI | 16.2K | Python | MIT | v1.77+ |
| MS Agent Framework | 9.1K | Python/.NET | MIT | v1.0 |
| Claude Agent SDK | 6.2K | TypeScript/Python | MIT | v0.1+ |
注意: AutoGen(40K+ Star)は2026年にメンテナンスモードへ移行。後継のMicrosoft Agent Framework(AutoGen + Semantic Kernel統合)が正式リリースされた。
グラフベース制御"] CA["Claude Agent SDK 6.2K
ツールループ"] PA["PydanticAI 16.2K
型安全エージェント"] MA["Mastra 22.8K
TypeScriptファースト"] end subgraph Declarative["宣言的定義"] CR["CrewAI 48.2K
ロールベース"] MF["MS Agent Framework 9.1K
AutoGen後継"] GA["Google ADK 18.8K
マルチ言語"] end subgraph Platform["プラットフォーム"] DI["Dify 137K
ノーコードUI"] OH["OpenHands 70.7K
自律コーディング"] end style LG fill:#4A90D9,color:#fff style CA fill:#D4A574,color:#000 style CR fill:#50C878,color:#fff style MF fill:#FF6B6B,color:#fff style OH fill:#9B59B6,color:#fff style DI fill:#F39C12,color:#fff style PA fill:#1ABC9C,color:#fff style MA fill:#E74C3C,color:#fff style GA fill:#3498DB,color:#fff
LangGraph:グラフベースで複雑なワークフローを精密制御する
LangGraphはLangChainチームが開発したステートマシン+グラフベースのエージェントフレームワークだ。ノードが処理ステップ、エッジが遷移条件を表し、条件分岐・ループ・人間の承認ステップを細かく制御できる。
基本アーキテクチャ
from langgraph.graph import StateGraph, START, END
from langgraph.prebuilt import ToolNode
from langchain_anthropic import ChatAnthropic
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
# ステート定義
class AgentState(TypedDict):
messages: Annotated[list, add_messages]
# LLMとツール準備
model = ChatAnthropic(model="claude-sonnet-4-20250514")
tools = [search_tool, calculator_tool]
model_with_tools = model.bind_tools(tools)
# グラフ構築
graph = StateGraph(AgentState)
# ノード定義
def call_model(state: AgentState):
response = model_with_tools.invoke(state["messages"])
return {"messages": [response]}
def should_continue(state: AgentState):
last_message = state["messages"][-1]
if last_message.tool_calls:
return "tools"
return END
# グラフ組み立て
graph.add_node("agent", call_model)
graph.add_node("tools", ToolNode(tools))
graph.add_edge(START, "agent")
graph.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END})
graph.add_edge("tools", "agent")
# コンパイル・実行
app = graph.compile()
result = app.invoke({"messages": [("user", "東京の天気を調べて")]})
LangGraphの強み
| 特徴 | 詳細 |
|---|---|
| 状態永続化 | チェックポイントで中断・再開が可能 |
| ヒューマンインザループ | 承認ステップを挟める |
| ストリーミング | トークン単位でリアルタイム出力 |
| LangSmith連携 | 実行トレースの可視化・デバッグ |
| サブグラフ | グラフを入れ子にして複雑なワークフローを構成 |
LangGraphの弱み
- 学習曲線が急。グラフ定義・ステート管理・条件分岐の設計に慣れが必要
- LangChainエコシステムへの依存が強い
- 単純なタスクにはオーバースペック

CrewAI:ロール定義でマルチエージェントを直感的に構成する
CrewAIは「役割(Role)」と「タスク(Task)」を定義するだけでマルチエージェントシステムを構築できるフレームワークだ。「リサーチャー」「ライター」「エディター」のようにチームメンバーを定義し、協調させる。
基本的なCrew構成
from crewai import Agent, Task, Crew, LLM
# LLM設定
llm = LLM(model="claude-sonnet-4-20250514")
# エージェント定義(役割ベース)
researcher = Agent(
role="シニアリサーチャー",
goal="AI業界の最新トレンドを網羅的に調査する",
backstory="10年以上のテクノロジー調査経験を持つアナリスト",
tools=[search_tool, web_scraper],
llm=llm,
verbose=True,
)
writer = Agent(
role="テクニカルライター",
goal="調査結果を分かりやすい日本語記事にまとめる",
backstory="技術ブログの編集経験が豊富なライター",
llm=llm,
)
# タスク定義
research_task = Task(
description="2026年のAIエージェント市場について調査し、主要プレイヤー・トレンド・課題をまとめる",
expected_output="箇条書きの調査レポート(最低10項目)",
agent=researcher,
)
writing_task = Task(
description="調査レポートを元に、3000文字の日本語ブログ記事を執筆する",
expected_output="Markdown形式のブログ記事",
agent=writer,
context=[research_task], # リサーチ結果を入力として受け取る
)
# Crew実行
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=True,
)
result = crew.kickoff()
print(result)
YAML定義(crewai CLI)
CrewAI v0.80以降は、CLIツールでプロジェクトを生成し、YAMLで宣言的にエージェントとタスクを定義できる。
# プロジェクト生成
crewai create crew my-research-crew
cd my-research-crew
# config/agents.yaml
researcher:
role: "シニアリサーチャー"
goal: "AI業界の最新トレンドを正確に調査する"
backstory: "10年以上のテクノロジー調査経験"
writer:
role: "テクニカルライター"
goal: "調査結果を読みやすい記事にまとめる"
backstory: "技術メディアの編集経験が豊富"
# config/tasks.yaml
research_task:
description: "2026年のAIエージェント市場を調査"
expected_output: "調査レポート(箇条書き)"
agent: researcher
writing_task:
description: "調査結果を3000文字の記事にする"
expected_output: "Markdown記事"
agent: writer
context:
- research_task
Microsoft Agent Framework:AutoGen後継のエンタープライズ向けフレームワーク
Microsoft Research発のAutoGen(40K+ Star)は2026年にメンテナンスモードへ移行し、AutoGenとSemantic Kernelを統合した「Microsoft Agent Framework」が正式後継としてリリースされた。グラフベースのワークフロー定義、ストリーミング、チェックポイント、ヒューマンインザループを備えるエンタープライズ向けフレームワークだ。
基本構成
# Microsoft Agent Framework (旧AutoGen後継)
from agent_framework import Agent, Team, GraphWorkflow
from agent_framework.models import AnthropicClient
# モデルクライアント
model_client = AnthropicClient(model="claude-sonnet-4-20250514")
# エージェント定義
coder = Agent(
name="coder",
model_client=model_client,
system_message="Pythonコードを書くエンジニア。コードブロックで回答する。",
)
reviewer = Agent(
name="reviewer",
model_client=model_client,
system_message="コードをレビューする。問題がなければ'APPROVE'と発言する。",
)
# グラフワークフロー定義
workflow = GraphWorkflow()
workflow.add_node("code", coder)
workflow.add_node("review", reviewer)
workflow.add_edge("code", "review")
workflow.add_conditional_edge("review", lambda r: "end" if "APPROVE" in r else "code")
# チーム実行
team = Team(workflow=workflow)
import asyncio
async def main():
result = await team.run(task="フィボナッチ数列を計算する関数を書いて")
for msg in result.messages:
print(f"[{msg.source}]: {msg.content[:200]}")
asyncio.run(main())
MS Agent Frameworkの特徴
| 機能 | 詳細 |
|---|---|
| ワークフロー | グラフベース(AutoGen会話パターン + Semantic Kernelプランナー統合) |
| コード実行 | Docker/ローカルでPythonコードを安全に実行 |
| DevUI | Webベースの対話的開発UI |
| ミドルウェア | リクエスト/レスポンス処理パイプライン |
| .NET SDK | C#からも利用可能。エンタープライズ.NET環境に最適 |
| OpenTelemetry | オブザバビリティ組み込み |
Mastra:TypeScriptファーストのAIエージェントフレームワーク
Gatsby開発チームが立ち上げたMastraは、TypeScript/Next.jsエコシステムに最適化されたエージェントフレームワークだ。Y Combinator W25バッチに採択され、$13Mの資金調達を完了。npm週間30万DL以上の勢いで成長している。
基本実装
import { Agent } from "@mastra/core/agent";
import { anthropic } from "@ai-sdk/anthropic";
// エージェント定義
const researchAgent = new Agent({
name: "research-agent",
instructions: "AI業界の最新トレンドを調査するリサーチャー",
model: anthropic("claude-sonnet-4-20250514"),
tools: {
webSearch,
summarize,
},
});
// 実行
const result = await researchAgent.generate(
"2026年のAIエージェント市場について調査して"
);
console.log(result.text);
Mastraの特徴
| 機能 | 詳細 |
|---|---|
| TypeScript最適化 | Next.js/Vercelとの親和性が高い |
| Mastra Studio | ローカルWebベースIDEでエージェントをテスト |
| モデルルーティング | 40以上のプロバイダに対応 |
| メモリシステム | 短期・長期メモリ(libSQL/Postgres対応) |
| ワークフロー | ステップベースの宣言的ワークフロー定義 |
Google ADK:マルチ言語対応のGoogle公式エージェント開発キット
GoogleがリリースしたAgent Development Kit(ADK)は、Python・Go・TypeScript・Javaの4言語に対応するマルチ言語フレームワークだ。Geminiに最適化されているがモデル非依存設計で、他のLLMも利用可能。
基本実装
from google.adk.agents import Agent
from google.adk.runners import Runner
# エージェント定義
agent = Agent(
name="weather_agent",
model="gemini-2.0-flash",
description="天気情報を取得するエージェント",
instruction="ユーザーの質問に天気データを使って回答する",
tools=[get_weather],
)
# 実行
runner = Runner(agent=agent, app_name="weather-app", session_service=session_service)
response = await runner.run(user_id="user1", session_id="s1", new_message="東京の天気は?")
Google ADKの特徴
| 機能 | 詳細 |
|---|---|
| マルチ言語 | Python, Go, TypeScript, Java(4言語対応は唯一) |
| Google Cloud連携 | Vertex AI、Cloud Run、Cloud Storageとネイティブ統合 |
| MCP対応 | サードパーティMCPサーバー統合可能 |
| OpenTelemetry | オブザバビリティ組み込み |
| モデル非依存 | Gemini最適化だがClaude・GPTも利用可能 |
Claude Agent SDK:Anthropic公式の軽量エージェントツールキット
2025年にAnthropicが公開したClaude Agent SDKは、最小限のAPIでエージェントを構築することに特化している。ツールループ(LLMがツールを呼び出し→結果を受け取り→再度判断する)を自動的に回す仕組みだけを提供し、それ以上の抽象化は行わない。
基本実装
import anthropic
from claude_agent_sdk import Agent, tool
client = anthropic.Anthropic()
@tool
def get_weather(city: str) -> str:
"""指定された都市の天気を取得する"""
# 実際にはAPIを呼ぶ
return f"{city}の天気: 晴れ、気温22°C"
@tool
def search_web(query: str) -> str:
"""Web検索を実行する"""
# 実際にはSearch APIを呼ぶ
return f"'{query}' の検索結果: ..."
agent = Agent(
model="claude-sonnet-4-20250514",
tools=[get_weather, search_web],
system="あなたは親切なアシスタントです。",
)
# 実行(ツールループが自動的に回る)
result = agent.run("東京の天気を調べて、週末のおすすめ行動を提案して")
print(result)
TypeScript版
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
// ツール定義
const tools: Anthropic.Tool[] = [
{
name: "get_weather",
description: "都市の天気を取得する",
input_schema: {
type: "object" as const,
properties: {
city: { type: "string", description: "都市名" },
},
required: ["city"],
},
},
];
// ツールハンドラー
function handleTool(name: string, input: Record<string, unknown>): string {
if (name === "get_weather") {
return `${input.city}の天気: 晴れ、22°C`;
}
return "不明なツール";
}
// エージェントループ
async function agentLoop(userMessage: string) {
const messages: Anthropic.MessageParam[] = [
{ role: "user", content: userMessage },
];
while (true) {
const response = await client.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 4096,
tools,
messages,
});
// テキスト出力を表示
for (const block of response.content) {
if (block.type === "text") console.log(block.text);
}
// stop_reason が "end_turn" なら終了
if (response.stop_reason === "end_turn") break;
// ツール呼び出しを処理
const toolResults: Anthropic.MessageParam = {
role: "user",
content: response.content
.filter((b): b is Anthropic.ToolUseBlock => b.type === "tool_use")
.map((b) => ({
type: "tool_result" as const,
tool_use_id: b.id,
content: handleTool(b.name, b.input as Record<string, unknown>),
})),
};
messages.push({ role: "assistant", content: response.content });
messages.push(toolResults);
}
}
agentLoop("東京の天気を教えて");
Claude Agent SDKの設計思想は「フレームワークではなくツールキット」だ。ステート管理やワークフロー定義の仕組みは提供せず、ツールループの自動化だけに集中している。その分、他のフレームワークやMCPサーバーとの組み合わせが容易だ。MCPサーバーの作り方については包括ガイドで詳しく解説している。
OpenHands:自律型AIコーディングエージェント
OpenHands(旧OpenDevin)は、コードの記述・実行・デバッグを自律的に行うAIソフトウェアエンジニアだ。他のフレームワークが「フレームワーク=自分でエージェントを構築する道具」なのに対し、OpenHandsはすぐに使える完成品のエージェントとして提供される。
セットアップと実行
# Dockerで起動(推奨)
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.30-nikolaik
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.30-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
docker.all-hands.dev/all-hands-ai/openhands:0.30
# ブラウザで http://localhost:3000 にアクセス
OpenHandsの特徴
OpenHands Web UI(localhost:3000)の動作フロー:
- チャット画面でタスクを指示(例:「Pythonでスクレイパーを作って」)
- エージェントが自律的に以下を実行:
- ファイル作成
- コード記述
- 依存パッケージインストール
- テスト実行
- バグ修正
- 完成物を提示
- すべての処理はSandboxed Docker環境で安全に実行される
OpenHandsはSWE-Bench(ソフトウェアエンジニアリングベンチマーク)でトップクラスの成績を記録しており、実際のGitHub Issueの修正タスクでも高い解決率を示す。OpenHandsの詳細解説はこちらを参照。
Dify:ノーコードでAIエージェントワークフローを構築する
DifyはビジュアルUIでAIアプリケーションを構築するプラットフォームだ。コードを書かずにドラッグ&ドロップでエージェントのワークフローを設計できる。
Difyのワークフロー構成
# Docker Composeで起動
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
# ブラウザで http://localhost/install にアクセス
# Dify DSLエクスポート例(YAML形式)
app:
name: "リサーチエージェント"
mode: "agent-chat"
model_config:
provider: "anthropic"
model: "claude-sonnet-4-20250514"
tools:
- type: "web_search"
provider: "google"
- type: "wikipedia"
- type: "calculator"
Difyの強み・弱み
| 強み | 弱み |
|---|---|
| ノーコードでエージェント構築 | 複雑なロジックはUIでは表現しにくい |
| 200以上の組み込みツール | カスタムツール追加にAPI開発が必要 |
| RAG機能が統合済み | ホスティング提供にライセンス制限 |
| ログ・分析ダッシュボード | セルフホストの運用コストが高い |
PydanticAI:型安全性を重視した実用的エージェントフレームワーク
Pydantic(Python最大のバリデーションライブラリ、月間3億DL以上)のチームが開発したPydanticAIは、型安全性とテスタビリティを最優先に設計されたフレームワークだ。
基本実装
from pydantic_ai import Agent
from pydantic import BaseModel
# 構造化された出力の型定義
class WeatherReport(BaseModel):
city: str
temperature: float
condition: str
recommendation: str
# エージェント定義(出力型を指定)
weather_agent = Agent(
"anthropic:claude-sonnet-4-20250514",
result_type=WeatherReport,
system_prompt="天気情報を調べて構造化された結果を返すアシスタント",
)
# ツール定義
@weather_agent.tool
async def get_temperature(ctx, city: str) -> str:
"""都市の気温を取得する"""
return f"{city}: 22°C、晴れ"
# 実行(結果はWeatherReport型で返る)
result = weather_agent.run_sync("東京の天気を教えて")
print(result.data) # WeatherReport(city="東京", temperature=22.0, ...)
print(type(result.data)) # <class 'WeatherReport'>
PydanticAIの特徴
# テスト用モック(TestModelで実際のAPI呼び出しを回避)
from pydantic_ai import Agent
from pydantic_ai.models.test import TestModel
test_model = TestModel()
agent = Agent(test_model, result_type=str)
result = agent.run_sync("テスト")
# → APIを呼ばずに即座にテスト結果が返る
| 特徴 | 詳細 |
|---|---|
| 構造化出力 | Pydanticモデルで出力型を定義、自動バリデーション |
| 依存性注入 | テスト時にDBやAPIクライアントを差し替え可能 |
| TestModel | API呼び出しなしでユニットテスト |
| Logfire連携 | Pydantic公式のオブザバビリティツール |
| モデル非依存 | Anthropic, OpenAI, Gemini, Groq, Ollama対応 |
9フレームワーク総合比較:プロジェクトに最適な選択基準
機能比較マトリクス
| 機能 | LangGraph | CrewAI | MS Agent FW | Claude SDK | OpenHands | Dify | PydanticAI | Mastra | Google ADK |
|---|---|---|---|---|---|---|---|---|---|
| マルチエージェント | ✅ サブグラフ | ✅ Crew | ✅ グラフ | ⚠️ 手動 | ✅ 内蔵 | ✅ ワークフロー | ⚠️ 手動 | ✅ | ✅ |
| 状態永続化 | ✅ | ✅ メモリ | ✅ | ❌ | ✅ | ✅ DB | ❌ | ✅ | ✅ |
| ストリーミング | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ノーコードUI | ❌ | ❌ | ✅ DevUI | ❌ | ✅ Web | ✅ メイン | ❌ | ✅ Studio | ❌ |
| MCP対応 | ⚠️ | ⚠️ | ⚠️ | ✅ ネイティブ | ❌ | ✅ v1.5 | ❌ | ✅ | ✅ |
| テスタビリティ | ⚠️ | ⚠️ | ⚠️ | ⚠️ | ❌ | ❌ | ✅ TestModel | ⚠️ | ⚠️ |
| 学習コスト | 高 | 中 | 中〜高 | 低 | 低 | 低 | 中 | 中 | 中 |
用途別おすすめフレームワーク
構築したい"] --> Q1{"コードを書く?"} Q1 -->|"書かない"| Dify["Dify 137K
ノーコードUI"] Q1 -->|"書く"| Q2{"主要言語は?"} Q2 -->|"TypeScript"| MA["Mastra 22.8K
TS/Next.js最適"] Q2 -->|"Python"| Q3{"マルチエージェント
が必要?"} Q2 -->|".NET/Java"| Q6{"Google Cloud?"} Q6 -->|"はい"| GA["Google ADK 18.8K
マルチ言語"] Q6 -->|"いいえ"| MF["MS Agent FW 9.1K
.NET/Python"] Q3 -->|"不要"| Q4{"型安全性
重視?"} Q4 -->|"はい"| PA["PydanticAI 16.2K
構造化出力"] Q4 -->|"いいえ"| CS["Claude Agent SDK 6.2K
最小構成"] Q3 -->|"必要"| Q5{"細かい制御
が必要?"} Q5 -->|"はい"| LG["LangGraph 28.6K
グラフ制御"] Q5 -->|"いいえ"| CR["CrewAI 48.2K
ロールベース"] style Start fill:#333,color:#fff style Dify fill:#F39C12,color:#fff style PA fill:#1ABC9C,color:#fff style CS fill:#D4A574,color:#000 style LG fill:#4A90D9,color:#fff style CR fill:#50C878,color:#fff style MA fill:#E74C3C,color:#fff style GA fill:#3498DB,color:#fff style MF fill:#FF6B6B,color:#fff
選定基準の詳細
| 判断基準 | 推奨フレームワーク | 理由 |
|---|---|---|
| プロトタイプを最速で作りたい | Claude Agent SDK | ツール定義→実行まで10分。ボイラープレート最小 |
| 非エンジニアもワークフローを編集する | Dify | ビジュアルUI。コード不要でフロー変更可能 |
| 本番運用で信頼性が必要 | LangGraph | 状態永続化、リトライ、ヒューマンインザループ |
| チーム型のタスク分担が自然 | CrewAI | ロール定義が直感的。YAML定義でメンテしやすい |
| TypeScript/Next.jsプロジェクト | Mastra | TS最適化、Mastra Studio、npm週30万DL |
| Google Cloud/Geminiエコシステム | Google ADK | 4言語対応、Vertex AI統合 |
| Microsoft/.NETエコシステム | MS Agent Framework | AutoGen後継、エンタープライズ対応 |
| 実コードを書かせたい | OpenHands | SWE-Bench 77.6%。Sandbox実行で安全 |
| 型安全・テスト容易性が最優先 | PydanticAI | Pydanticモデルで出力型を保証。TestModelでユニットテスト |
エージェントフレームワーク選定の実践的な判断フロー
フレームワーク選定で最も重要なのは、「今のプロジェクトで本当にマルチエージェントが必要か」を最初に判断することだ。
シングルエージェントで十分なケース
- Q&Aチャットボット(ツール付き)
- 単一タスクの自動化(メール要約、データ変換)
- コードの生成・補完
→ Claude Agent SDK または PydanticAI で十分
マルチエージェントが必要なケース
- リサーチ→分析→レポート作成の多段階パイプライン
- コード生成→レビュー→修正のサイクル
- 複数の専門性が必要なタスク(法務チェック+技術検証+コスト見積もり)
→ LangGraph(精密制御)、CrewAI(直感的定義)、AutoGen(対話型)
# 判断のコード例:シングルエージェントで始めて必要に応じて拡張
# Step 1: まずシングルエージェントで試す
from pydantic_ai import Agent
simple_agent = Agent(
"anthropic:claude-sonnet-4-20250514",
system_prompt="コードレビュアー",
)
# これで十分なら、フレームワークは不要
# Step 2: 複雑さが増したらCrewAIに移行
from crewai import Agent as CrewAgent, Task, Crew
reviewer = CrewAgent(role="レビュアー", goal="バグを見つける", llm=llm)
fixer = CrewAgent(role="修正者", goal="バグを修正する", llm=llm)
# タスク間の依存関係が自然に表現できる
AIエージェントの実装パターンについては、Claude Codeのマルチエージェント機能も参考になる。また、エージェントにMCPサーバーでツールを追加する方法はMCPサーバー構築ガイドで解説している。
まとめ:2026年のAIエージェントフレームワーク選定指針
2026年のAIエージェントフレームワークは「一強」ではなく、用途に応じた使い分けが正解だ。
- 最速プロトタイプ → Claude Agent SDK(100行以下で動く)
- チーム型マルチエージェント → CrewAI(ロール定義が直感的、48.2K Star)
- 本番運用の複雑ワークフロー → LangGraph(状態管理・リトライ完備)
- ノーコード → Dify(ビジュアルUI、137K Star)
- 型安全・テスト重視 → PydanticAI(Pydanticモデル出力)
- 自律コーディング → OpenHands(SWE-Bench 77.6%、70.7K Star)
- TypeScript/Next.js → Mastra(Gatsby出身チーム、22.8K Star)
- Google Cloud連携 → Google ADK(4言語対応、18.8K Star)
- Microsoft/.NET → MS Agent Framework(AutoGen後継、9.1K Star)
どのフレームワークも急速に進化している。半年前の評価が今は通用しないこともある。まずは Claude Agent SDK か CrewAI で小さく始め、要件の複雑さに応じて LangGraph に移行するのが最も実践的なアプローチだ。