LangGraph の マルチエージェントワークフロー
以下の記事が面白かったので、かるくまとめました。
1. マルチエージェント
「マルチエージェント」では、各エージェントは他のエージェントと連携するために、独自の「プロンプト」「LLM」「ツール」「カスタムコード」を持つことができます。つまり、さまざまなマルチエージェントワークフローを考える際には、主に2つの考慮事項があります。
この考え方は、「LangGraph」で提供されるグラフ表現に非常に適しています。各エージェントはグラフの「ノード」であり、それらの接続は「エッジ」として表します。
2. マルチエージェントの利点
「マルチエージェント」の利点は、次のとおりです。
「マルチエージェント」は、複雑な問題を、専門エージェントやLLMプログラムが扱いやすい作業単位に分割できるようになります。
3. マルチエージェントの例
3つのマルチエージェントの例を「langgraph」リポジトリに追加しました。
3-1. Multi Agent Collaboration
複数のエージェントがメッセージの共有スクラッチパッドで共同作業します。これは、どちらかが行うすべての作業がもう一方にも見えることを意味します。これには、他のエージェントが完了した個々のステップをすべて確認できるという利点があります。これには、冗長すぎてすべての情報を渡す必要がない場合や、エージェントからの最終回答のみが必要な場合があるという欠点があります。共有される性質のため、このコラボレーションをスクラッチパッドと呼んでいます。
・複数の独立したエージェントとは何か
独立したエージェントは単一の LLM 呼び出しです。具体的には、特定のプロンプトテンプレートとLLM呼び出しになります。
・エージェントはどのように接続されているか
以下は、エージェントがどのように接続されているかを視覚化したものです。
状態遷移を制御する主なものはルーターですが、これはルールベースのルーターなので、かなり単純です。基本的に、各LLM 呼び出しの後に出力が調べられます。ツールが呼び出されると、そのツールが呼び出されます。ツールが呼び出されず、LLM が「FINAL ANSWER」と応答した場合は、ユーザーに戻ります。それ以外の場合、他のLLMに進みます。
3-2. Agent Supervisor
複数のエージェントが接続されていますが、上記と比較すると、スクラッチパッドを共有していません。各エージェントは独立したスクラッチパッドを持ち、最終応答はグローバルスクラッチパッドに追加されます。
・複数の独立したエージェントとは何か
独立したエージェントは「LangChain」エージェントです。 これは、独自の「プロンプト」「LLM」「ツール」があることを意味します。 呼び出されると、それは単なる1つのLLM呼び出しではなく、「AgentExecutor」 の実行になります。
・エージェントはどのように接続されているか
エージェントスーパーバイザー (監督者) は、個々のエージェントへのルーティングを担当します。
このようにスーパーバイザーは、他のエージェントをツールとするエージェントと考えることができます。
3-3. Hierarchical Agent Teams
エージェントは他の「LangGraph」オブジェクト自体になります。 これにより、「AgentExecutor」をエージェントとして使用するよりも高い柔軟性が得られます。サブエージェントはある意味チームとして考えることができるため、これを「Hierarchical Agent Teams」と呼びます。
・複数の独立したエージェントとは何か
他の「LangGraph」エージェントです。
・エージェントはどのように接続されているか
スーパーバイザ ーエージェントがそれらを接続します。
4. YouTubeのチュートリアル
これら3つの例を説明するYouTubeビデオを追加しました。
5. マルチエージェントのアプリケーション
LangGraph上に構築されたマルチエージェントのアプリケーションを紹介します。
5-1. GPT-Newspaper
「GPT-Newspaper」は、「GPT-Researcher」による新プロジェクトです。ユーザーの好みに合わせてパーソナライズされた新聞を作成するように設計された革新的な自律エージェントです。
AIの力を活用して個人の好みや興味に基づいてコンテンツを厳選、執筆、デザイン、編集することで、ニュースの消費方法に革命をもたらします。このアーキテクチャは6つの特殊なサブエージェントで構成されています。
重要なステップが1つあります。それは、「ライター <> 批評」のループであり、有益なサイクルを追加します。
5-2. Crew AI example
Joao Mouraは、「CrewAI」と「LangChain」「LangGraph」を使用して、
メールの自動チェックと下書きの作成プロセスを自動化する素晴らしい例「Crew AI example」を作成しました。「CrewAI」は自律型AIエージェントを調整し、連携して複雑なタスクを効率的に実行できるようにします。
この例のグラフは次のようになります。
6. その他のフレームワーク
「LangGraph」以外のマルチエージェントのフレームワークを紹介します。
6-1. Autogen
「Autogen」は、おそらく最初のマルチエージェントフレームワークです。「LangGraph」と「Autogen」のメンタルモデルの最大の違いは、エージェントの構築にあります。「LangGraph」は、さまざまなエージェントと遷移確率を明示的に定義し、それをグラフとして表現するアプローチを好みます。「Autogen」はそれを「会話」として捉えています。 この「グラフ」フレーム構成により、より直感的になり、ノード間の遷移確率を実際に制御したい、より複雑で独自のワークフローを構築するための開発者エクスペリエンスが向上すると考えられます。
6-2. CrewAI
「CrewAI」は、マルチエージェントの「チーム」を作成する一般的な方法として最近登場しました。「LangGraph」と比較すると、「CrewAI」はより上位のフレームワークです。CrewAI チームと積極的に協力して、「LangGraph」を「CrewAI」に統合しています。
関連
この記事が気に入ったらサポートをしてみませんか?