背景
LangChainのPlan-and-Executeフレームワークは、Plan-and-Solveに関する論文に触発されています。Plan-and-Executeは、複雑な長期計画に非常に適しており、複雑な問題を複数のサブタスクに分解して一つずつ解決します。これにより大規模モデルの呼び出しは頻繁に行われますが、ReActエージェントのループ中に発生するプロンプトの長さ超過問題を回避できます。
Plan-and-Solve戦略

上図は、サンプルなしChain-of-Thought(COT)とPlan-and-Solveの比較です。Plan-and-Solveは本質的にCOTを具体的な小タスクに細分化し、それらのタスクを一つずつ処理していきます。Plan-and-ExecuteフレームワークはこのPlan-and-Solveの考え方と同様ですが、実行面ではよりAIの実務的な操作に寄っています。
Plan-and-Executeフレームワークの適用例
Question ReWriting設計や複数のエージェント調整作業などに適しています。
シナリオ: 完全なRAGシステムを構築したAIエージェントシステム内
例:
Question: Louisと刘亦菲の個人情報を検索し、それらの個人情報に基づいて結婚招待状を作成し、その内容をworldXXTest@gmail.comに送信してください。
Plan-and-ExecuteはタスクをPlanとExecuteに分割します。
LLMを使い、Questionを約5つのPlanに分解します:
|-1- データベースでLouisの個人情報を検索する
|-2- ウェブで刘亦菲の個人情報を検索する
|-3- ウェブで結婚招待状のテンプレートを検索する
|-4- Louisと刘亦菲の結婚招待状の内容を生成する
|-5- 内容をworldXXTest@gmail.comに送信する
ReActフレームワークのLLMを使い、この5つのPlanを順にExecuteします:
|-1- ”Louisの個人情報:iOSおよびAIエンジニア、男性、性格良好、温和、親切、ユーモアがある...“
|-2- ToolツールBrowserを呼び出し、得た情報:”刘亦菲の個人情報:茜茜、女性、映画・ドラマスター、美貌と実力を兼ね備え、自由を愛する...“
|-3- 結婚招待状のテンプレート:”私たちは結婚します。xxx様へ、ご招待申し上げます。2026年xx月xx日に...にて開催します...“
|-4- Louisと刘亦菲の結婚招待状の内容:”私たちは結婚します。xxx様へ、2026年2月31日に月の北極宮殿で太陽暦の大結婚式を執り行います。当日は星間船LL001号が迎えに参ります。2月30日の夜12時に上海の東方明珠タワー屋上で乗船してください。“
|-5- 工具sendMailを使い、結婚招待状の内容を送信する
まとめ: LLMを1回呼び出して5つのPlanを生成し、ReActエージェントを5回呼び出して各Planを処理。
Plannerプロンプト:
prompt = ‘
You are a task planner in a multi-step AI system.
User query: {Query}
Your job:
1, Break down the user query into executable steps.
2, Each step must be atomic and tool-executable.
3, Steps should be ordered logically.
4, Do NOT execute anything.
5, Only return JSON.
’
例:
Query: 英語6級の資格を持ち、Python開発経験が3年ある人物を探し、その人物の個人情報をluochuanad@gmail.comに送信したい。
LLM(Planner Prompt)を使って、以下の結果を得ました:
json
[
{
"step: 1,
"action": "Search Database"
"description": "英語CET-6資格および3年間のPython開発経験を持つ人物をデータベースで検索する。",
"parameters": {
"certificate": "CET-6",
"experience": {
"Language": "Python",
"years": 3
}
}
},
{
"step": 2,
"action": "Retrieve Personal Information",
"description": "前ステップで見つかった人物の個人情報を抽出する。",
"parameters": {
"fields": ["name", "email", "phone", "address"]
}
},
{
"step": 3,
"action": "Format Email",
"description": "見つかった人物の個人情報を含むメールを準備する。",
"parameters": {
"recipient": "luochuanad@gmail.com",
"subject": "Candidate Information",
"body": "ステップ2で取得した個人情報を含める。"
}
},
{
"step": 4,
"action": "Send Email"
"description": "整形済みメールを指定のメールアドレスに送信する。",
"parameters": {
"recipient": "xxx@gmail.com",
"content": "ステップ3で準備したメール内容を利用する。"
}
}
]
参考
Lei Wangらの論文「Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models」https://aclanthology.org/2023.acl-long.147.pdf