【AIエージェント】Planning とは
この記事の概要
AIエージェントは、「Profile」「Memory」「Planning」「Action」から構成されます。
その内の「Planning(計画)」について説明します。
引用:A Survey on Large Language Model based Autonomous Agents (2023)
AIエージェントの計画とは
概要
AIエージェントの「計画」とは、目標達成のために一連の行動を構成・選択するプロセスです。
具体的には、タスクや目標に応じて、必要なステップを論理的・時系列的に整理し、エージェントがその通りに行動できるようにすることを指します。
なぜLLMベースのエージェントにPlanningが必要か?
- LLMは非常に強力な推論能力を持っていますが、そのままでは「複雑なタスクの段階的実行」には不向きです。
-
単発の出力だけでタスクを完了できない場面では、事前に「どんなステップで進めるか」を考えるPlanningが重要になります。
Planningの研究カテゴリ
-
タスク分解
複雑なタスクを複数のサブタスクに分解し、「分割統治」の考え方でそれぞれのサブタスクに対して計画を立てます。- 分割統治:
支配者が被支配者の間の対立を煽り、団結を妨げることで統治を安定させる政策。
- 分割統治:
-
マルチプラン選択
LLMに複数の代替計画を生成させ、その後、タスク関連の探索アルゴリズムを用いて最適な計画を選択します。 -
外部プランナー支援計画
LLMと外部プランナーを統合し、生成された計画の効率性や実現不可能性の問題に対処します。LLMは主にタスクの形式化や補助的な推論情報提供の役割を担います。 -
反省と洗練
AIエージェントが過去の失敗を振り返り、その反省に基づいて計画を洗練することで、フォールトトレランスとエラー修正能力を向上させます。 -
記憶拡張計画
共通知識、過去の経験、ドメイン固有の知識などの価値ある情報を保存する追加の記憶モジュールを導入し、計画を支援します。
タスク分解
タスク分解の方法は2つあります。
- Decomposition-First
- Interleaved
Decomposition-First
先にサブゴール(中間目標)にタスクを分解し、その後、それぞれのサブゴールについて個別に計画を立てます。
例えば、
- 「まず計画を立てよう(Let’s first devise a plan)」
- 「その計画を実行しよう(Let’s carry out the plan)」
の2段階に、推論などの精度を向上させることができます。
Decomposition-First方式は、サブタスクと元のタスクとの相関が強く、全体像の把握と忘却防止に寄与できます。ただし、全てのサブタスクを最初に決めるため、実行途中の調整が難しくなり、どこかで失敗すれば全体が破綻するリスクがあります。
Interleaved
サブゴールの分解と計画立案を交互に進めます。
この手法は、いくつか提案されている方法があります。
- LLMが思考と行動を交互に繰り返しながら問題を解決する。(Chain-of-Thought)
- 複雑な問題を複数の推論経路で段階的に考える。(ReAct, Program-of-Thought)
Interleaved方式は動的に計画を調整しながら実行できるため、失敗への耐性は高くなります。ただし、複雑なタスクでは全体方針とのズレや目標喪失のリスクがあります。
▶︎ 詳しくは、【AIエージェント】Planning の「タスク分解」とはを確認してください。
マルチプラン選択
LLMによって導き出される計画は、多様であり、最適でなかったり、実行不可能であったりする場合も少なくありません。
これを解決するために、複数のプランを生成し、その中から最適なプランを選択するという方法があります。
複数のプランを生成
いくつかの方法があります。
-
Self-consistency
同じ問題に対しても唯一の解が存在しないという直感に基づき、温度サンプリングやtop-kサンプリングなどの手法で多様な出力を得る。 -
Tree-of-Thought
複数のプロンプトによる多様な解法を生成し、それぞれに対して解答を出力する。 -
etc
最適なプランの選択
これもいくつかの方法があります。
-
ナイーブ戦略
最も得票数が大きいプランを選択する。 -
Tree構造による選択
従来の幅優先探索や深さ優先探索のアルゴリズムを用いて拡張候補を評価する。 -
etc
マルチプラン選択は、AIエージェントの精度を向上させる上で、非常に有益な手法です。
しかし、計算コストであったり、プラン評価もLLMが行うため、毎回同じ評価基準でプランを評価できないなどの課題もあります。
▶︎ 詳しくは、【AIエージェント】Planning の「マルチプラン選択」とはを確認してください。
外部プランナー支援計画
外部プランナーとは、LLM外部のプランニング専用モジュールのことです。
LLMは強力な推論能力を持ちますが、数学の厳密な条件であったり、生成したプランが行動可能であるかを正確に判断することが難しいです。
そこで、既存のプランナーにタスク or サブタスクを渡すことで、実際に行動可能な計画(プラン)を生成してもらいます。
このように、外部プランナー支援計画では、
- AIエージェントがユーザーの意図を自然言語で理解・解釈する。
- それを形式的なプラン要求として外部モジュールに渡す。
- 外部プランナーが持つ専門的な推論エンジン(例:PDDLプランナーや強化学習ベースのニューラルモデル)が、実行可能なアクション列としての計画(プラン)を構築する。
という処理で、特に次のケースに有効になります。
- 実世界で制約条件が厳しい(例:ロボット制御、物流最適化)
- 計画の整合性や実行可能性が保証される必要がある
- LLM単体では完結できない複雑な構造を持つ長期計画は、LLM外部のプランニング専用モジュールのことです。
▶︎ 詳しくは、【AIエージェント】Planning の「外部プランナー支援計画」とはを確認してください。
反省と洗練
反省(reflection)と洗練(refinement)のプロセスは、次の課題を解決することを目指します。
AIエージェントの課題
複雑な問題に対するハルシネーションの問題や不十分な推論能力、限られたフィードバックのために「思考ループ」に陥る可能性があります。
- ハルシネーションとは、LLMが非合理な計画を生成したり、タスクの指示に忠実でなかったり、複雑な指示に従えなかったりする現象のことです。これはLLMの根本的な欠点の1つで、存在しない情報を使ってしまうということもよくあります。
- 思考ループとは、エラーを繰り返して行き詰まってしまう状態のことです。
反省と洗練は、LLMエージェントにおける
耐障害性(fault tolerance)や誤り訂正能力
を高める役割を担います。
▶︎ 詳しくは、【AIエージェント】Planning の「反省と洗練」とはを確認してください。
記憶拡張計画
AIエージェントの計画能力を向上させるために、追加の記憶モジュールを利用する手法です。
このアプローチの目的は、過去の経験、常識的知識、ドメイン固有の知識などの「価値ある情報」を計画時に補助的なシグナルとして活用し、より効果的で堅牢な計画を生成することです。
次の2つの手法が存在します。
- RAGを用いた手法
- ファインチューニングを用いた手法
▶︎ 詳しくは、【AIエージェント】Planning の「記憶拡張計画」とはを確認してください。
まとめ
AIエージェントのコンポーネント(プロファイル、記憶、計画、行動)のうち、「計画」について解説しました。
「計画」は、
- タスク分解
- マルチプラン選択
- 外部プランナー支援計画
- 反省と洗練
- 記憶拡張計画
が研究対象とされています。
参考
Understanding the planning of LLM agents: A survey (2024)
A Survey on the Memory Mechanism of Large Language Model based Agents (2024)
Discussion