AIエージェント開発の新時代
2025年、AIエージェント開発は「実験」から「本番環境」へと移行しています。 その中核を担うのが、専用フレームワークです。
本記事では、4つの主要フレームワークを徹底比較します:
- Google Agent Development Kit (ADK) - Gemini統合のコードファースト
- AWS Strands - モデル駆動型の柔軟性
- OpenAI Agent SDK - Pythonファーストの軽量設計
- LangGraph - ステートマシンによる堅牢性
最短で課題解決する一冊
この記事の内容と高い親和性が確認できたベストマッチです。早めにチェックしておきましょう。
総合比較表
| 項目 | ADK | Strands | OpenAI Agent SDK | LangGraph |
|---|---|---|---|---|
| 開発元 | AWS | OpenAI | LangChain | |
| 言語 | Python/Java/Go | Python | Python | Python |
| 設計思想 | コードファースト | モデル駆動 | ミニマル設計 | ステートマシン |
| マルチエージェント | ◎ A2A対応 | ◎ SOPs対応 | ◎ Handoffs | ◎ グラフ構造 |
| 状態管理 | ○ Vertex AI統合 | ◎ 組み込み | ○ Sessions | ◎ 永続化可能 |
| 本番環境 | ◎ Agent Engine | ◎ Lambda/Fargate | △ カスタム | ◎ LangGraph Platform |
| 学習曲線 | 中 | 低 | 低 | 高 |
| 料金 | Gemini従量課金 | AWS従量課金 | OpenAI従量課金 | オープンソース/Platform有料 |
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
1. Google Agent Development Kit (ADK)
特徴:Geminiとの緊密な統合
ADKは、Google Geminiとの統合を前提とした、コードファーストなフレームワークです。
from google.genai import Agent
from google.genai.types import Tool
# エージェント定義
agent = Agent(
model="gemini-3-flash",
name="ResearchAgent",
instruction="ユーザーの質問に基づいて調査を行う"
)
# ツールの定義
@Tool
def search_web(query: str) -> str:
"""Web検索を実行"""
# 検索ロジック
return f"検索結果: {query}"
agent.add_tool(search_web)
# 実行
response = agent.run(
"Pythonの最新トレンドを調べて"
)強み
Developer UI: GUIでエージェントの実行をデバッグ可能
多言語サポート: Python、Java、Goに対応
ストリーミング: リアルタイム音声/テキストストリーミング
本番環境統合: Agent Engineで1クリックデプロイ
弱み
- Gemini以外のモデルは統合が複雑(LiteLLM経由)
- ドキュメントがまだ発展途上
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
2. AWS Strands
特徴:モデル駆動型の柔軟性
Strandsは、LLMの推論能力に任せるモデル駆動アプローチを採用しています。
from strands import Agent, tool
# エージェント定義(シンプル)
agent = Agent(
model="bedrock/claude-3-sonnet",
instruction="データ分析とレポート作成を行う"
)
# ツールはデコレータで簡単定義
@tool
def analyze_data(data: list[dict]) -> str:
"""データを分析"""
return f"{len(data)}件のデータを分析しました"
agent.add_tool(analyze_data)
# Agentic Loop(Plan → Reason → Act → Reflect)
result = agent.run("売上データを分析して")特徴的な機能:Agent SOPs
# Agent SOP: データ分析ワークフロー
## 入力
- data_source: データソースのURL
- report_format: レポート形式(PDF/Excel)
## ステップ
1. データ取得:{data_source}からデータをダウンロード
2. データクレンジング:欠損値を処理
3. 分析実行:統計的分析を実施
4. レポート生成:{report_format}形式で出力SOPsにより、ワークフローを自然言語でテンプレート化できます。
強み
- MCP統合: 数千のModel Context Protocolサーバーに対応
- 本番環境対応: OpenTelemetryによる完全な可観測性
- AWSエコシステム: Lambda、S3との自然な統合
弱み
- AWSへのロックイン
- 他フレームワークと比較してコミュニティが小さい
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
3. OpenAI Agent SDK
特徴:最小限の設計、最大限の柔軟性
OpenAI Agent SDKは、軽量さを最優先した設計です。
from openai import agents
# シンプルなエージェント定義
agent = agents.Agent(
model="gpt-5",
instructions="カスタマーサポートを担当"
)
# ツール定義
def get_order_status(order_id: str) -> str:
"""注文状況を取得"""
return f"注文{order_id}は配送中です"
agent.add_function(get_order_status)
# 実行
response = agent.run("注文12345の状況を教えて")Handoffs(エージェント間委譲)
# 専門エージェントの定義
sales_agent = agents.Agent(
name="Sales",
instructions="売上に関する質問に回答"
)
support_agent = agents.Agent(
name="Support",
instructions="サポートに関する質問に回答"
)
# ルーターエージェント
router = agents.Agent(
name="Router",
instructions="適切なエージェントに委譲",
handoffs=[sales_agent, support_agent]
)
# 自動的に適切なエージェントへ転送
response = router.run("先月の売上を教えて")
# → sales_agentに自動転送される強み
- 軽量: 依存関係が最小限
- マルチモデル: AnthropicやGoogle PaLMにも対応
- トレーシング: 組み込みのデバッグ機能
弱み
- 永続化は自分で実装が必要
- 本番環境のインフラは別途構築
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
4. LangGraph
特徴:ステートマシンによる堅牢性
LangGraphは、グラフ構造でエージェントのフローを明示的に定義します。
from langgraph.graph import StateGraph, END
from typing import TypedDict
# 状態の定義
class AgentState(TypedDict):
messages: list
data: dict
next_action: str
# ノードの定義
def research_node(state: AgentState):
"""調査ノード"""
# 調査ロジック
state["data"]["research"] = "調査結果"
state["next_action"] = "analyze"
return state
def analyze_node(state: AgentState):
"""分析ノード"""
# 分析ロジック
state["data"]["analysis"] = "分析結果"
state["next_action"] = "report"
return state
def report_node(state: AgentState):
"""レポートノード"""
# レポート生成
return state
# グラフの構築
workflow = StateGraph(AgentState)
workflow.add_node("research", research_node)
workflow.add_node("analyze", analyze_node)
workflow.add_node("report", report_node)
# エッジ(遷移)の定義
workflow.add_edge("research", "analyze")
workflow.add_edge("analyze", "report")
workflow.add_edge("report", END)
workflow.set_entry_point("research")
# コンパイル
app = workflow.compile()
# 実行
result = app.invoke({
"messages": [],
"data": {},
"next_action": "research"
})Human-in-the-Loop(HITL)
from langgraph.checkpoint.memory import MemorySaver
# チェックポイント付きコンパイル
memory = MemorySaver()
app = workflow.compile(checkpointer=memory)
# 実行(途中で停止可能)
thread = {"configurable": {"thread_id": "1"}}
result = app.invoke(input, thread)
# 途中で人間が介入
if result["data"]["needs_approval"]:
# 状態を確認・修正
modified_state = result.copy()
modified_state["data"]["approved"] = True
# 続きから再開
app.update_state(thread, modified_state)
final_result = app.invoke(None, thread)強み
- 明示的な制御: フローが可視化される
- 永続化: チェックポイントで状態を保存
- 本番環境: LangGraph Platformで企業対応
- デバッグしやすい: 各ノードで状態を検証可能
弱み
- 学習曲線が最も急
- シンプルなタスクには過剰設計
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
ユースケース別推奨
カスタマーサポート自動化
推奨: OpenAI Agent SDK
理由:
- Handoffsで専門エージェントへの転送が容易
- 軽量で既存システムへの統合が簡単
- トレーシングでエージェントの挙動を監視
データパイプラインの自動化
推奨: AWS Strands
理由:
- AWS Lambda/Fargateとの自然な統合
- Agent SOPsでワークフローをテンプレート化
- OpenTelemetryで完全な可観測性
複雑な意思決定フロー
推奨: LangGraph
理由:
- 明示的なステートマシンで複雑なフローを管理
- HITL機能で人間の承認プロセスを組み込み
- 長時間実行タスクの永続化
マルチベンダーAI統合
推奨: Google ADK
理由:
- A2Aプロトコルで異なるフレームワークを統合
- Gemini、GPT、Claudeを混在可能
- GeminiのマルチモーダルとOpenAIの推論を組み合わせ
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
まとめ
| フレームワーク | こんな人におすすめ |
|---|---|
| ADK | Googleエコシステムを活用したい、多言語対応が必要 |
| Strands | AWSユーザー、モデルに任せたい、本番環境重視 |
| OpenAI Agent SDK | シンプルさ重視、軽量統合、柔軟性が欲しい |
| LangGraph | 複雑な制御フロー、永続化必須、デバッグ重視 |
どのフレームワークも強力ですが、用途によって最適解は異なります。
まずは小規模なプロトタイプで複数を試し、プロジェクトの要件に最も合致するものを選択することをお勧めします。
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
![LangChainとLangGraphによるRAG・AIエージェント[実践]入門 エンジニア選書](https://m.media-amazon.com/images/I/51hcvyPcUnL._SL500_.jpg)

![AIエージェント開発 / 運用入門 [生成AI深掘りガイド]](https://m.media-amazon.com/images/I/41OfNLKvJsL._SL500_.jpg)




