AIエージェントの4つの設計パターン:汎用人工知能への必須の道
AI Agent智能体四类设计模式:通用人工智能必经之路
もしAIを使ってタスクを完了することを作文に例えるならば、非エージェント(Agent)の方法はAIに最初から最後まで一度で書き上げさせ、修正を許さないものであり、Agentの方法はAIに何度も修正を許し、その過程でツールを利用したり、外部と協力したりすることを可能にします。2024年において、Agentは通用人工智能(AGI)を実現する道の一つと見なされています。
基礎モデルは生成型人工知能の発展を推進し、AI Agentがユーザーのタスクを自動的に完了するのを助けています。この1年間で、さまざまなAgentが次々と登場しています。Andrew Ngの紅杉AIサミットでの講演に触発され、この記事では過去1年以内に発表された論文やLangchainなどのエンジニアリングブログを組み合わせて、既存のAgentを整理し、設計パラダイムをまとめ、基礎モデルに基づくインテリジェントエージェントの設計に役立てることを目指しています。
以下の表に示す16のモードを初歩的に整理することができます:
モード | 概要 |
---|---|
Passive goal creator | 対話インターフェースを通じてユーザーの明確なヒントを分析し、インタラクティブ性、目標追跡、直感性を維持します。 |
Proactive goal creator | 人間のインタラクションを理解し、コンテキストをキャプチャすることでユーザーの目標を予見し、インタラクティブ性、目標追跡、アクセス性を強化します。 |
Prompt/response optimiser | 予想される入力または出力の内容と形式に基づいてプロンプト/レスポンスを最適化し、標準化、応答の正確性、相互運用性、適応性を提供します。 |
Retrieval augmented generation | ローカル基礎モデルエージェントシステムを使用してデータプライバシーを保ちながら、エージェントの知識更新能力を強化します。 |
One-shot model querying | 単一のインスタンスで基礎モデルにアクセスして計画に必要なすべてのステップを生成し、コスト効率とプロセスの簡素化を向上させます。 |
Incremental model querying | 計画生成プロセスの各ステップで基礎モデルにアクセスし、補足コンテキストを提供し、応答の正確性と説明性を向上させます。 |
Single-path plan generator | ユーザーの目標を達成するための中間ステップを調整し、推論の確実性、一貫性、効率を向上させます。 |
Multi-path plan generator | ユーザーの目標を達成する各ステップで複数の選択肢を作成することを許可し、推論の確実性、一貫性、人間の好みの整合性と包括性を強化します。 |
Self-reflection | エージェントが計画と推論プロセスに対するフィードバックを生成し、自己改善の指針を提供することで、推論の確実性、説明性、継続的改善、効率を向上させます。 |
Cross-reflection | 異なるエージェントまたは基礎モデルを使用してフィードバックを提供し、生成された計画と推論プロセスを改善し、推論の確実性、説明性、相互運用性、包括性、拡張性、継続的改善を向上させます。 |
Human reflection | 人間のフィードバックを収集して計画と推論プロセスを改善し、人間の好みに効果的に整合し、争議性、有効性、公平性、継続的改善を向上させます。 |
Voting-based cooperation | エージェントが自由に意見を表明し、投票を通じて合意に達することで、多様性、効果的な分業、フォールトトレランスを向上させます。 |
Role-based cooperation | 異なる役割を割り当て、エージェントの役割に基づいて最終的な意思決定を行い、意思決定の確実性、分業、フォールトトレランス、拡張性、責任性を向上させます。 |
Debate-based cooperation | エージェントが議論を通じてフィードバックを提供し受け取り、合意に達するまで考えや行動を調整することで、意思決定の確実性、適応性、説明性、応答の正確性、批判的思考を向上させます。 |
Multimodal guardrails | 基礎モデルの入力と出力を制御し、ユーザーの要求、倫理基準、法律規制などの特定の要件を満たすことで、堅牢性、安全性、標準整合性、適応性を強化します。 |
Tool/agent registry | 異なるエージェントとツールを選択するための統一かつ便利なソースを維持し、発見性、効率、ツールの適用性を向上させます。 |
これらの16のモードは、Andrew Ngが紅杉AIサミットでの講演で提案した4つのパラダイムにまとめることができます:
- Reflection
- Tool Use
- Planning
- Multiagent Collaboration
1 Reflection
1.1 Basic Reflection
LLM Agent構築の背景において、反思(Reflection)は、LLMに過去のステップ(およびツール/環境からの潜在的な観察)を観察させ、選択した行動の質を評価するプロセスを指します。これらのフィードバックは、再計画、検索、評価などの下流タスクに使用されます。以下の図は基本的な反思モードの一例です。
Basic Reflection
1.2 Reflexion Actor
Shinnらによって提案されたReflexionは、言語フィードバックと自己反思を通じて学習するアーキテクチャです。このエージェントはタスクの結果を評価し、より高品質な最終結果を生成しますが、実行時間が長くなります。主に以下の3つの構成要素を含みます:
- Actor (agent) with self-reflection 自己反思を行うワーカー
- External evaluator (task-specific, e.g. code compilation steps) 外部評価者(特定タスク、例:コードコンパイルステップ)
- Episodic memory that stores the reflections from (1). (1)からの反思を保存するエピソード記憶
Reflexion Actor
1.3 LATS
言語エージェントツリー検索(LATS)は、Zhouらによって提案された一般的なLLM Agent検索アルゴリズムで、反思/評価と検索(特にモンテカルロツリー検索)を組み合わせ、ReACT、Reflexion、Tree of Thoughtsなどの類似技術と比較して、全体的なタスクパフォーマンスを向上させます。
主に以下の4つのステップがあります:
-
Select: pick the best next actions based on the aggregate rewards from step (2). Either respond (if a solution is found or the max search depth is reached) or continue searching.
選択:ステップ(2)からの総報酬に基づいて最適な次のアクションを選択します。解決策が見つかった場合または最大検索深度に達した場合は応答し、そうでない場合は検索を続けます。
-
Expand and simulate: select the “best” 5 potential actions to take and execute them in parallel.
拡張とシミュレーション:選択した「最適な」5つの候補アクションを並行して実行します。
-
Reflect + Evaluate: observe the outcomes of these actions and score the decisions based on reflection (and possibly external feedback)
反思 + 評価:これらのアクションの結果を観察し、反思(および可能な外部フィードバック)に基づいて決定を評価します。
-
Backpropagate: update the scores of the root trajectories based on the outcomes.
逆伝播:結果に基づいてルート軌道のスコアを更新します。
LATS
2 Tool Use
ツールを呼び出し、関数の形式で使用します。
3 Planning
3.1 ReAct
ReActは推論と行動を組み合わせることでエージェントの能力を強化します。ReActメソッドは、情報を受け取った後に即座に反応することをエージェントに許可し、すべての情報が処理されるのを待つのではなく、推論と行動の緊密な結合を重視します。エージェントは入力情報を分析し理解するだけでなく、分析結果に基づいて適切な行動を取る必要があります。この方法の利点は、その柔軟性と環境適応性にあります。
ReActフレームワーク
3.2 Plan and Execute
Plan and Executeの核心思想は、まず多段階の計画を立て、その計画を項目ごとに実行することです。特定のタスクを完了した後、計画を再検討し、適切な修正を行うことができます。
これは典型的なReActスタイルのエージェントと比較して、後者は一度に一歩を考えるものです。この「計画と実行」スタイルの利点は:
- 明確な長期計画(非常に強力なLLMでも難しい)
- 実行ステップでより小さな/弱いモデルを使用し、計画ステップでより大きな/優れたモデルを使用できる
Plan-and-Execute
3.3 ReWOO
ReWOOでは、Xuらは多段階のプランナーと変数置換を組み合わせたエージェントを提案し、効果的なツール使用を実現します。以下の点でReACTスタイルのエージェントアーキテクチャを改善します:
- 使用する完全なツールチェーンを一度に生成することで、トークン消費と実行時間を削減します。(ReACTスタイルのエージェントアーキテクチャは多くのLLM呼び出しを必要とし、システムプロンプトと前のステップが各推論ステップでLLMに提供されるため冗長なプレフィックスがあります)
- 微調整プロセスを簡素化します。計画データはツールの出力に依存しないため、理論的にはツールを実際に呼び出さなくてもモデルを微調整できます
Reasoning without Observation
3.4 LLMCompiler
LLMCompilerは、DAGでタスクを突撃実行することでエージェントタスクの実行を加速するエージェントアーキテクチャです。また、LLMの呼び出し回数を減らすことで冗長なトークン使用のコストを節約します。主に以下の3つの部分を含みます:
-
Planner: stream a DAG of tasks.
プランナー:タスクの有向非巡回グラフをストリーム処理します。
-
Task Fetching Unit: schedules and executes the tasks as soon as they are executable
タスク取得ユニット:タスクが実行可能になるとすぐにスケジュールし実行します
-
Joiner: Responds to the user or triggers a second plan
ジョイナー:ユーザーに応答するか、2番目の計画をトリガーします
LLMCompiler
4 Multiagent collaboration
4.1 Supervison
監督者を通じて、複数のエージェントを管理し協力します。
監督方式
4.2 Hierarchical Teams
階層的、段階的にエージェントを組織し、複雑で作業量の多いタスクを完了します。AutoGenはこの方法の典型的な例です。
階層チーム方式
4.3 Collaboration
単一のエージェントが使用できるツールの能力には限界があり、複数のエージェントが協力してより多くの種類のツールを使用する必要があります。「分治法」の考え方を使用し、各エージェントを特定の問題を処理する「専門家」にし、彼らが協力するようにします。
基本的な多エージェント協力
5 评估
最も直接的な考え方は、エージェントを「仮想ユーザー」として使用して評価を行うことです。多くのタスク結果が量的に評価できないタスクは、この方法を使用せざるを得ないかもしれません。しかし、明確な指標があるタスク(分類、回帰)については、直接ツールを使用して評価を行うことができるかもしれません。
Agent-based Evaluation
6 AGIの其它方式
エージェントはAGIの実現において有望な方法の一つですが、唯一の方法ではありません。エージェント方式自体はRAGやユーザー参加などの方法と有機的に組み合わせることができます。例えば、以下のShiらはエージェントと検索を組み合わせる方法を用いて、大規模モデルでオリンピックプログラミング問題を解決しました。
7 推荐阅读
https://github.com/AGI-Edgerunners/LLM-Agents-Papers
https://github.com/zjunlp/LLMAgentPapers
AI agent智能体任务分解和调度的几篇经典文章 - bonelee - 博客园 (cnblogs.com)
Agent四大范式 | CRITIC:吴恩达力推Agent设计范式 - 知乎 (zhihu.com)
8 参考
- Kim, Sehoon, Suhong Moon, Ryan Tabrizi, Nicholas Lee, Michael W. Mahoney, Kurt Keutzer, and Amir Gholami. “An LLM Compiler for Parallel Function Calling.” arXiv, February 6, 2024. https://doi.org/10.48550/arXiv.2312.04511.
- Liu, Yue, Sin Kit Lo, Qinghua Lu, Liming Zhu, Dehai Zhao, Xiwei Xu, Stefan Harrer, and Jon Whittle. “Agent Design Pattern Catalogue: A Collection of Architectural Patterns for Foundation Model Based Agents.” arXiv, May 16, 2024. https://doi.org/10.48550/arXiv.2405.10467.
- Shi, Quan, Michael Tang, Karthik Narasimhan, and Shunyu Yao. “Can Language Models Solve Olympiad Programming?” arXiv, April 16, 2024. https://doi.org/10.48550/arXiv.2404.10952.
- Shinn, Noah, Federico Cassano, Edward Berman, Ashwin Gopinath, Karthik Narasimhan, and Shunyu Yao. “Reflexion: Language Agents with Verbal Reinforcement Learning.” arXiv, October 10, 2023. https://doi.org/10.48550/arXiv.2303.11366.
- Wang, Lei, Wanyu Xu, Yihuai Lan, Zhiqiang Hu, Yunshi Lan, Roy Ka-Wei Lee, and Ee-Peng Lim. “Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models.” arXiv, May 26, 2023. https://doi.org/10.48550/arXiv.2305.04091.
- Xu, Binfeng, Zhiyuan Peng, Bowen Lei, Subhabrata Mukherjee, Yuchen Liu, and Dongkuan Xu. “ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models.” arXiv, May 22, 2023. https://doi.org/10.48550/arXiv.2305.18323.
- Yao, Shunyu, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, and Yuan Cao. “ReAct: Synergizing Reasoning and Acting in Language Models.” arXiv, March 9, 2023. https://doi.org/10.48550/arXiv.2210.03629.
- “Yoheinakajima/Babyagi.” Accessed May 21, 2024. https://github.com/yoheinakajima/babyagi/tree/main.
- “LangGraph tutorials.” Accessed May 21, 2024. https://langchain-ai.github.io/langgraph/tutorials/
- Zhou, Andy, Kai Yan, Michal Shlapentokh-Rothman, Haohan Wang, and Yu-Xiong Wang. “Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models.” arXiv, December 5, 2023. https://doi.org/10.48550/arXiv.2310.04406.
- Zhou, Pei, Jay Pujara, Xiang Ren, Xinyun Chen, Heng-Tze Cheng, Quoc V. Le, Ed H. Chi, Denny Zhou, Swaroop Mishra, and Huaixiu Steven Zheng. “Self-Discover: Large Language Models Self-Compose Reasoning Structures.” arXiv, February 5, 2024. https://doi.org/10.48550/arXiv.2402.03620.