エージェントフレームワーク入門 ─ LangChain・AutoGen・CrewAI の役割と選び方
結論から言うと、エージェントフレームワークは「何度も書き直すことになるボイラープレートを省くツール」 です。ツール呼び出しのループ・会話履歴の管理・複数エージェントの調整など、エージェントに共通する基盤をまとめて提供してくれます。ただし抽象化に頼りすぎると「内部で何が起きているか分からなくなる」という落とし穴があります。レッスン10で学んだ最小エージェントの原理を理解した上で使うのが定石とされます。
なぜフレームワークを使うのか?
スクラッチ(素のAPI呼び出し)では、ループ・ツール定義・エラーハンドリング・メモリをすべて自分で実装します。フレームワークを使うと、これらが「部品」として提供され、少ないコードで動くエージェントを作れます。
トレードオフは透明性とコントロールです。フレームワーク内部の動作を把握せずに使うと、予期しない挙動のデバッグが困難になります。「まずスクラッチで最小エージェントを動かし、次にフレームワークで置き換える」という順番が理解を深める近道とされます。
代表的なフレームワークには何がある?
LangChain
Python(およびJavaScript)向けの汎用エージェントフレームワーク。OpenAI・Anthropic・Googleなど多くのモデルプロバイダーを統一インターフェースで扱えます。状態機械ベースの LangGraph が組み込まれ、ヒューマン・イン・ザ・ループにも対応しています。
- 強み: 対応モデル・ツールが多い。エコシステムが豊富。
- 弱み: 抽象化が深く学習コストが高め。バージョン間で破壊的変更が多いとされる。
AutoGen(AG2)
Microsoft が開発したマルチエージェント会話フレームワーク(2023年8月 arXiv 発表)。「エージェント同士が自然言語で会話しながらタスクを分担する」設計が特徴です。コード生成→実行→レビューを担う複数エージェントを組み合わせる用途に向いています。
- 強み: マルチエージェントの調整が得意。人間がエージェントとして会話に割り込める。
- 弱み: 会話駆動のため、決定論的な制御フローを作りにくい場合がある。
CrewAI
役割(Role)ベースのマルチエージェントフレームワーク。「研究者・ライター・編集者」のように各エージェントに役割とゴールを与え、チームとして協調させます。直感的なAPIで短く書けるのが特徴です。
- 強み: 役割定義が直感的。コード量が少ない。
- 弱み: 複雑な制御フローには不向きとされる。
どのフレームワークを選べばよいか?
| 目的 | 推奨 |
|---|---|
| まず動くものを作りたい | LangChain(エコシステムが大きい) |
| 複数エージェントが会話で協調 | AutoGen |
| 役割分担が明確なチーム型 | CrewAI |
| 原理理解・小規模・フル制御 | スクラッチ |
まとめ
エージェントフレームワークはボイラープレートを省き初期開発を速める利点がある一方、抽象化が深くなるほどデバッグが難しくなります。まずスクラッチで原理を理解し、次にフレームワークで同じことを置き換えるという順番が、実力を高める近道とされています。LangChainはエコシステムの広さ、AutoGenはマルチエージェント会話の柔軟性、CrewAIは役割定義のシンプルさがそれぞれの強みです。どれを選ぶかより「なぜそう動くか」を理解することが長期的に重要です。