Planning
プランニング
ぷらんにんぐ
Definition
Planning is an agent step that decomposes a goal into actionable sub-steps and organizes execution order and required information. It helps reduce omissions and wasted work.
「来月のチームオフサイトを企画して」という指示を受けたとき、いきなり会場を予約する人はいません。まず日程調整、予算確認、会場候補のリストアップ、参加者への連絡、というステップに分解するはずです。プランニング(Planning)とは、AIエージェントが複雑な目標を実行可能なサブステップに分解し、適切な順序で遂行する能力です。
なぜ計画が必要なのか
単発の質問応答ではプランニングは不要です。しかし、エージェントが複数のステップにまたがるタスクを遂行する場合、適切な計画がなければ重要なステップの抜け漏れ、非効率な実行順序、依存関係の見落としが発生します。たとえば「競合分析レポートを作成して」というタスクでは、情報収集→分析→構成→執筆→レビューという依存関係のある工程を正しい順序で進める必要があります。
分解と順序付け
プランニングの基本は「目標の分解」と「実行順序の決定」です。LLMに対して「このタスクを完了するために必要なステップを列挙してください」と指示し、生成された計画に従って各ステップを順次実行します。Chain of Thought(思考の連鎖)やTree of Thought(思考の木)といった推論手法は、このプランニング能力を強化するために開発されました。複雑な問題を小さな問題に分割することで、各ステップでの精度を高める効果があります。
動的な計画修正
現実のタスクでは、計画通りに進まないことが多々あります。APIが応答しない、検索結果が期待と異なる、途中で新しい情報が判明する、といった状況です。優れたエージェントは、実行結果を観察しながら計画を動的に修正できます。これはReAct(Reasoning + Acting)フレームワークの核心であり、「推論→行動→観察→再推論」のループを繰り返すことで環境の変化に適応します。
計画の品質と課題
現在のLLMのプランニング能力にはまだ限界があります。ステップ数が多いタスクでは重要な工程を見落としたり、依存関係を誤って判断したりすることがあります。これを改善するアプローチとして、ドメイン固有のテンプレートを使った計画生成、過去の成功事例からの計画再利用、人間がハイレベルな計画を与えてエージェントが詳細化する階層的プランニングなどが研究されています。完全に自律的な計画立案はまだ発展途上ですが、人間の監督と組み合わせることで実用的な成果を上げています。