AIエージェント作成フレームワーク・プラットフォームまとめ:汎用
AIエージェントを作成するためのフレームワークやプラットフォーム等、過去に試した記事のまとめ、というかインデックス。
特定のユースケースに特化したものではなく、汎用的なものを想定。
LangChain
LangChainのエージェントモジュールは以下の記事でやったきりで、それ以降は殆ど使ったことがない。自分の記事の内容ももはやObsoleteしてる。
LangGraph
CrewAI
AutoGen
LlamaIndex
以前からあるLlamaIndexのエージェントモジュールを使ったエージェント構築
で、LlamaIndexには他にもエージェントの実装がいくつかある
最近の動きだとWorkflowsというRAGもエージェントもイベントドリブンで書けるモジュールがでてきており、なんとなくこれがLlamaIndexでエージェントを構築する場合の今後の標準になりそうな印象がある。
Julep
Griptape
Burr
AgentSea
LANGROID
Tribe
AgentScope
Vertex AI Agent Builder
ちょっとうまくいかず・・・・一旦保留
swarm
FloAI
AgentKit
余談。
エージェント構築フレームワークやプラットフォーム、いろいろ触ってみたけども、
- マルチエージェントはもう一般的
- 求められる機能もだいたいパターンができつつある
という印象。ただそれでも筍のようにたくさん新しいものが出てきていて、やや飽和気味な感もある。
そうなってくると、どれを選定すべきか?にプラスαの要素の重要度が上がってくる。例えば、
- ユーザ規模やベンダーが持つ実績。情報入手のしやすさとか継続安定性とか。
- 機能の豊富さ。商用でも使えるような細かい制御など。
- 導入障壁の低さや学習コストの少なさ。例えばGUIだったりシンプルな設計とか。
- 特定のユースケース向け。(ここでは書いていないが、例えばコード生成に特化とか)
とかかなぁ。
個人的には、汎用フレームワークよりも、特定ユースケースに特化する流れのほうが強いかなという印象で、あとは抽象化が進んだフレームワークがどんどん増えてきている感があるので、学習コストも下がってきている印象。
とりあえず、どれでもいいのでまずは簡単に始めれそうなものを使いこんでみて、物足りなくなったらより高機能なものに変えるっていう感じでいいんじゃないかなと思う。よほど革新的なもの・自分のユースケースにピッタリあっているもの、とかでない限りは、新しいものを追いかける必要性はそれほどないかなと思う(追いかけるほうが大変だし)。
エージェントフレームワークも成熟しつつある印象(とはいえ現時点でできることはまだまだ少ないとは思うけども)
Dynamiq
AutoMATA
OpenAI Assistant API
GPT Swarm
Alice
phidata
Atomic Agents
Issue待ちで途中
GenSphere
Magentic-One
Redditにちょいちょいこういうスレが定期的に上がる
Best Agentic AI Framework to use in Production
紹介されていたものをChatGPTにリストアップ・サマリにしてもらった
以下は、スレッド内で言及されている各エージェントフレームワークについて、投稿者の発言から抽出した特徴・感想・メリット・デメリットをまとめたレポートです。
1. Langgraph
- 特徴・概要
- フレームワークとしては多機能だが、設計思想が複雑で、内部で多数の依存関係を必要とする。
- 感想・メリット
- 機能は充実しているため、細かいカスタマイズやツールサポート(例: Microsoft Office文書処理、FAISS/ChromaDBなど)が期待できる。
- デメリット
- 概念的に理解が難しく、依存関係が多いため学習コストが高い
- 実装が「fragile」(壊れやすい)との印象があり、コードパターンが冗長になりがち
- 他の軽量フレームワークと比べると「bloat(冗長)」と評価されることも
2. Pydantic (および PydanticAI)
- 特徴・概要
- シンタックスがシンプルで、依存関係が少なく、タイプセーフな開発が可能
- 感想・メリット
- 「最もシンプル」と評価され、型安全性のおかげで開発者としてのコントロール感が得られる
- デメリット
- Langgraphのようなネイティブな機能(例: 特定の文書処理やデータベースサポート)が不足している
- 一部のユーザーは、トイレベルのシナリオを超えると「重く」感じるという意見もある
3. Swarms
- 特徴・概要
- 一見「かっこいい」と感じるが、情報量が少なく、コミュニティやドキュメント面での言及がほとんどない
- 感想・メリット・デメリット
- 発言者自身が「かっこいい」と感じたものの、実際の採用例や評価が不透明なため、詳細は不明
4. Smolagents
- 特徴・概要
- 軽量でシンプルなパッケージ。HuggingFaceのバックアップがあり、実際のプロダクションで100以上のエージェントを運用している実績がある
- 感想・メリット
- コードパターンを最小限に抑えた設計で、診断もしやすい
- ドキュメントが充実しており、ツール呼び出しのパターンが明確
- デメリット
- 現状、非同期(async)のツール呼び出しをネイティブにサポートしていない
- ただし、各エージェントを個別のスレッドやLambda関数で実行するなどの回避策はある
5. Semantic Kernel(および MS Autogen / Azure AI Agents)
- 特徴・概要
- Microsoft提供のフレームワーク。Langgraphに近い機能性を持つとされるが、まだ実験的な部分が多い
- 感想・メリット
- Microsoftのサポートがあり、企業向けの信頼性が期待できる
- 一部組織ではすでに採用されており、堅実な実装例もある
- デメリット
- 現状はマルチエージェントサポートが十分でなく、実装が実験的な部分がある
- MS Autogenの分離やバージョン変更により、エコシステムが混乱している可能性がある
6. LlamaIndex Workflows
- 特徴・概要
- 低レベルながらもフルカスタマイズが可能なワークフロー実装
- エージェントアプリケーション向けの柔軟なパターンを提供
- 感想・メリット
- 非同期(async)ファーストで、イベント駆動の設計が「すっきりしている」と評価される
- LangChainやLanggraphに比べて「余計な冗長さ」が少なく、頭痛の種が少ない
- デメリット
- 開発者が初めから自前で構築する部分が多いため、フレームワーク単体で全てを賄えない可能性がある
7. Haystack
- 特徴・概要
- 強力な検索・情報抽出機能を持つフレームワーク。特にRAG(Retrieval Augmented Generation)用途に適している
- 感想・メリット
- ローカルLLM(例: Ollama)との相性が良い
- 多くのユーザーからは「とても良い」というフィードバックがある
- デメリット
- 構造が「やや硬直的」で、入力・出力の型がミスマッチすることがある
- マルチモーダル(画像や音声)のクエリ処理が未成熟で、実装が難しい
8. Mastra
- 特徴・概要
- JavaScript/TypeScript向けのエージェントフレームワーク
- ワークフローAPIが分かりやすいと評価されている
- 感想・メリット
- JS/TSで開発する場合、理解しやすく扱いやすい設計
- デメリット
- 詳細な機能や実績については他のフレームワークに比べて情報が少なめ
9. Letta
- 特徴・概要
- メモリ管理(MemGPTのような機能)を自動で行い、Docker上のサービスとして動作
- Railway向けのデプロイテンプレートや、内蔵のマルチエージェントサポートがある
- 感想・メリット
- 展開が容易で、実際のチャットアプリのサンプルも提供されている
- デメリット
- 詳細なカスタマイズや拡張性については、プロダクション用途での検証が必要
10. Agno(旧 Phidata)
- 特徴・概要
- 近年急速に注目されているエージェントプラットフォーム。GitHub上で約19kスターを獲得
- 感想・メリット
- 実際に研究用途やプロダクションで採用しているユーザーがおり、コミュニティも急成長中
- MS Autogenとの併用例もあり、実績がある
- デメリット
- 新しいプラットフォームであるため、長期的なサポート体制やエコシステムの成熟度は今後の検証が必要
11. MS Autogen
- 特徴・概要
- Microsoft発のエージェントフレームワーク。以前は統合されていたが、現在はAG2とMS Autogenに分かれている
- 感想・メリット
- 初期の実装は非常に堅実であったという評価がある
- デメリット
- 分離やリブランディングにより、エコシステム全体がまだ実験的で、今後の統合の可能性が示唆されている
12. Archgw
- 特徴・概要
- マルチターン会話など、エージェントアプリケーションでの面倒な部分を解決するためのアーキテクチャを提供
- 感想・メリット
- コード内に余計な設定やカスタマイズを書かずに、共通シナリオ(例:マルチターン)を扱える点が評価される
- デメリット
- フレームワーク自体が新しいため、採用事例やコミュニティの規模については今後の発展次第
13. Langroid
- 特徴・概要
- 約2年間の開発実績を持つ、Pydanticベースのエージェントフレームワーク
- クリーンなコードと明確なアーキテクチャ、良好な開発体験(DevEx)を重視
- 感想・メリット
- どのLLMとも連携可能で、実際に企業でのプロダクション利用実績がある
- ドキュメントが充実しており、保守性や拡張性に優れるとの声が多い
- デメリット
- 他のフレームワークと比較すると、学習曲線が存在する可能性があるが、全体的には高評価
14. Autogen(新バージョン)
- 特徴・概要
- 最新バージョンはより複雑なオーケストレーションに対応できる設計になっている
- 複雑なシナリオに対しては、Langgraphと組み合わせて使うという意見もある
- 感想・メリット
- 新しい設計思想に基づき、従来の問題点の改善が図られている
- デメリット
- 他のMicrosoft系ライブラリとの関係性や、エコシステムの成熟度については引き続き注意が必要
15. agent (SamchonFramework 提案のもの)
- 特徴・概要
- 非常にシンプルかつ効果的なエージェントフレームワークとして紹介されている
- GitHub: wrtnlabs/agent
- 感想・メリット
- 「一番簡単で効果的」との評価があり、シンプルさを重視するユーザーに向いている
- デメリット
- 他のフレームワークに比べると、提供機能の幅や拡張性については情報が少ないため、用途に合わせた検証が必要
補足
CrewAI
- TL;DR的なコメントで「LangGraph/Chain/CrewAI = bloat」との比較がされているが、詳細な議論は行われていないため、本レポートでは深堀はしていません。
Dify
- 一部で触れられているが、前面に出た議論はなく、評価や具体的な特徴の記述は見受けられませんでした。
総評
今回のディスカッションでは、各フレームワークが「シンプルさ」や「柔軟性」、「拡張性」「依存関係の多さ」といった観点で評価されています。
- シンプルで軽量な実装を求める場合は、Smolagents や Pydantic(PydanticAI)、あるいは JS/TS 環境であれば Mastra が候補となりやすい。
- 多機能で既存のツールとの連携を重視する場合は、Langgraph や Semantic Kernel、MS Autogen、Haystack が検討対象となる。
- また、最近注目されている Agno(旧 Phidata) や、実運用実績のある Langroid なども、プロダクション用途での採用実績があるため、将来的な安定運用を考える上で魅力的と言えます。
利用する用途(例:大規模ドキュメント処理、多エージェント編成、同期/非同期の要件など)に応じて、各フレームワークの強み・弱みを見極め、実際のプロトタイピングやテストを通じて最適な選択をするのが望ましいでしょう。
スレ全体を通して肥大化に対するネガティブな意見が多い印象ではある。
私的メモ
- SmolAgentsは気になってたのでちょっと試してみる。
- AgnoってPhidataがリブランドしたのね。これも気になっていたのでそのうち。
- Archgwはプロキシ的なものという認識なので、ここの内容とは毛色が違う印象があるが、以前から興味はある。
- AutoGenというかMS周りだけでいろいろ混在してるのはどうなのかな?
- JS/TSはあまり見てないけども、Mastraはちょいちょい名前を聞くね。
個人的には、LlamaIndex Workflows & Llama Deployと組み合わせに結構期待してる。