- LangGraph、OpenAI Agents SDK、Smolagents、CrewAI、AutoGen、Semantic Kernel、LlamaIndex Agents など、さまざまなオープンソースAIエージェントフレームワークを比較した記事
- AIエージェント開発は以前はスクリプト、プロンプトエンジニアリング、試行錯誤の組み合わせだったが、現在はオープンソースフレームワークが増えている
- それぞれのフレームワークは、エージェントの自律性と安定性の間で独自のアーキテクチャ思想を持っている
- Langfuse のような観測ツールと統合することで、プロンプト、応答、API呼び出しの過程を可視化してデバッグできる
LangGraph – グラフベースのワークフロー
- LangChain ベースのグラフアーキテクチャフレームワーク
- 各ノードはプロンプトや作業単位を処理し、エッジ(edge)はデータフローと分岐制御を担う
- 複雑なマルチステップ作業、並列処理、エラー処理ロジックの挿入に有利
- 可視化とデバッグに強く、状態ベースのエージェント設計に適している
OpenAI Agents SDK – 公式OpenAIエージェントツールキット
- OpenAI が提供する公式SDK
- GPT-4o、GPT-o3 などのモデルと自然に統合できる
- 役割(role)、ツール(tools)、トリガー(trigger)を設定してマルチステップ作業を実行可能
- OpenAIエコシステムに慣れたユーザーに適している
Smolagents – コードベースのミニマルアプローチ
- Hugging Face のミニマルなコード中心エージェントフレームワーク
- シンプルなループの中で AI がPythonコードを生成・実行
- 複雑なオーケストレーションなしで高速なプロトタイピングに適している
- 内部的に ReAct スタイルのプロンプトを活用
CrewAI – 役割ベースのマルチエージェント協業
- 各エージェントに固有の役割を与えて協業可能
- "Crew" というコンテナ概念を通じてワークフローを自動調整
- **プランナー(Planner) - リサーチャー(Researcher) - ライター(Writer)**のようなシナリオの実装が容易
- メモリ機能とエラー処理ロジックを含む
AutoGen – 非同期対話型エージェント
- Microsoft Research が開発した非同期対話ベースのエージェントフレームワーク
- 各エージェントが対話メッセージをやり取りしながら非同期で動作
- マルチターン対話、役割切り替え、リアルタイムのツール呼び出しが重要な場合に有利
- イベントベース構造により高い同時実行性が求められる作業に適している
Semantic Kernel – エンタープライズ向けのワークフロー
- Microsoft の .NET 中心フレームワーク
- AIスキルとコードベースのスキルを組み合わせて計画ベースのワークフローを構成
- セキュリティ、コンプライアンス、Azure 統合など企業向け要件に最適化
- Python、C#、Java など多様な言語をサポート
LlamaIndex Agents – データ中心のエージェント
- LlamaIndex は RAG ベースのフレームワークとして始まり、エージェント機能へ拡張
- ローカル/外部データソースを検索し、その結果を応答または作業に接続
- 文書ベースのQ&A、要約、カスタム検索エージェントに適している
- すでに LlamaIndex を活用した経験があれば参入障壁は低い
どのタイミングでどのフレームワークを使うべきか?
- 作業の複雑さ: 作業が単純か複雑かに応じて適切なフレームワークを選ぶ必要がある
- 複雑なマルチステップフロー: LangGraph、Semantic Kernel
- シンプルなコードベース実行: Smolagents
- マルチエージェント協業: 複数エージェントが必要な場合、非同期対話と役割委任をサポートするアーキテクチャが必要
- 役割ベースのエージェント: CrewAI
- 対話型の非同期エージェント: AutoGen
- 統合環境: エージェントが相互作用する環境やシステムを考慮する
- OpenAI中心のサービス: OpenAI Agents SDK
- 既存のビジネスロジックとの連携が必要: Semantic Kernel
- 性能とスケーラビリティ: アプリケーションの性能要件を考慮する必要がある。リアルタイムの相互作用が必要な場合、イベントベースのアーキテクチャが必要になることがある
- 高い同時実行処理が必要: AutoGen
- 観測ツール(Langfuse など)と統合してデバッグと追跡が可能
観測およびトレーシングツールの重要性
- エージェントは外部API呼び出し、データ検索、複雑な分岐ロジックを含むため、透明なトレースが不可欠
- Langfuse のようなツールによって、次の項目を追跡できる:
- 各プロンプトおよび応答のフロー
- ツール呼び出しのタイミングと結果
- エラーおよび実行経路の可視化
- 本番環境における性能測定、エラーデバッグ、継続的改善に必須
まだコメントはありません。