规划 (Planning)

规划 (Planning) 是 Agent 智能的核心体现。它指的是 Agent 在执行行动之前,根据目标将复杂任务分解为可管理的子步骤序列的能力。如果没有规划,Agent 只能进行简单的刺激-反应式(Stimulus-Response)操作;有了规划,Agent 才能解决长程、复杂的任务。

为什么需要规划?

LLM 虽然具备强大的知识,但本质上是概率模型,擅长单步推理。面对 "创建一个贪吃蛇游戏" 这样的复杂指令,直接生成所有代码往往会出错。规划模块的作用就是让 Agent "慢下来思考"(System 2 Thinking),先制定蓝图,再逐个击破。

常见的规划方法

1. Chain of Thought (CoT)

最基础的规划形式。通过 Prompt 引导模型 "Let's think step by step",让模型显式地生成中间推理步骤。

  • 特点: 线性思维,适合逻辑清晰的数学或推理问题。
  • 局限: 一旦中间某一步出错,后续步骤会累积错误(Error Propagation)。

2. Tree of Thoughts (ToT)

CoT 的进阶版。它允许模型在每一步生成多个可能的"想法"(分支),并对这些想法进行自我评估,保留有希望的分支,剪掉死胡同。

  • 结构: 树状搜索(Tree Search),可以是 BFS(广度优先)或 DFS(深度优先)。
  • 优势: 能够进行探索和回溯,解决需要前瞻性思考的问题(如 24 点游戏、创意写作)。

3. ReAct (Reason + Act)

专为 Agent 设计的规划模式。它将 推理(Reasoning)行动(Acting) 结合起来。

  • 流程:
    1. Thought: 思考当前情况,决定下一步做什么。
    2. Action: 调用工具(如搜索、计算器)。
    3. Observation: 获取工具执行的结果。
    4. Loop: 根据观察结果,进入下一轮思考。
  • 意义: 解决了纯推理产生的幻觉问题(通过 Action 获取真实世界反馈),也解决了纯行动缺乏目标感的问题。

4. LLM+P (LLM + Classical Planner)

利用 LLM 将自然语言问题转化为 PDDL (Planning Domain Definition Language) 等形式化语言,然后利用传统的经典规划器(Solver)来求解最优路径,最后再由 LLM 解释回自然语言。

  • 场景: 适用于规则明确、容错率低的机器人控制或物流调度场景。

挑战

  1. 幻觉 (Hallucination): 模型可能会规划出不存在的工具或不可行的步骤。
  2. 循环 (Infinite Loops): Agent 可能会陷入 "思考-行动-失败-思考" 的死循环中。
  3. 上下文限制: 长期的规划需要消耗大量 Context Window,且容易遗忘早期目标。