如何实现的就是Deep Agent 任务规划(Planner)

规划任务的本质是:LLM 使用 HTN + ToT + Self-Projection 构建深层任务图,再结合工具信息、生存反馈、过程评估,不断迭代优化任务计划,最终形成可执行的行动序列。

0. 任务规划(Task Planning)是什么?

在 Deep Agent 内部,Planner 的功能不是“展开步骤”,而是:

构建一个可执行的任务图(Task Graph / Plan Tree)——包括子任务、依赖、工具选择、预期输出、失败恢复策略。

Planner 决定 Agent “怎么做”,Executor 决定“如何执行”。


1. Deep Agent Planner 的总体架构

Planner 一般由 五个模块组成:

Image

Image

  1. Task Understanding(任务理解)

  2. HTN / 层级任务分解(Hierarchical Task Networks)

  3. Tool-Aware Decomposition(基于工具可行性的任务分解)

  4. Plan Graph Construction(计划图构建)

  5. Self-Projection(未来步骤预测)与 Plan Refinement(计划调整)

下面逐一讲透。


2️⃣ Task Understanding(任务理解)

Planner 首先会把用户输入转换为一个结构化任务:

任务理解的典型结构:

{
  "goal": "构建一个 OTA 固件升级系统",
  "constraints": ["使用 Python", "提供 REST API", "有设备状态查询"],
  "deliverables": ["代码仓库", "API文档", "测试"],
  "environment": {
    "tools": ["python_repl", "file_system", "http_request"],
    "context_files": [...]
  }
}

这部分一般由一个 LLM Prompt + 系统上下文共同决定。


3️⃣ HTN:Hierarchical Task Decomposition(层级任务分解)

HTN 是现代 Deep Agents 的主流框架(OpenAI、Anthropic、Google、AutoGPT 都逐渐转向 HTN)。

HTN 的核心思想:任务 = 方法(methods) → 子任务(subtasks)

例如:

Goal: Build OTA System
Method M1:
  1. Create backend structure
  2. Implement firmware upload
  3. Implement device status
  4. Create scheduler
  5. Add tests

LLM 会根据已有工具、上下文、约束,生成多种可选 Method,然后选择最优一个。

为什么 HTN 重要?

  • 可解释(你能看到任务树)

  • 可回滚(某个节点失败 → 只重跑该节点)

  • 便于评测(Progress Rate = 完成节点数 / 总节点数)

  • 可长期任务执行(树深越大,支持的动作序列越长)


4️⃣ 任务树是怎么“生成”的?(核心算法)

这是 Deep Agent Planner 的关键:
不是一次性“写出步骤”,而是通过多轮搜索生成任务树。

常用方法:


(1) Top-down 多轮推理(LLM 为 node expander)

每次展开一个节点:

Task → Subtask 1, 2, 3…
    Subtask 1 → Sub-subtask 1.1, 1.2…

类似深度优先搜索(DFS)+ 结果修正。


(2) Tree-of-Thought(ToT)式多路径展开

Planner 不是只展开一条路径,而是:

  • 展开多条候选路径

  • 使用 LLM Judge/PRM 评分

  • 选择最优 plan → commit 到执行轨迹

你之前做的 PRM/LLM Judger 就是用在这一环。


(3) Self-projection(未来预测)

很多 Deep Planner 会问 LLM:

“假设你按这个计划执行,未来可能遇到什么问题?”

模型在 planning 阶段就能提前修正:

  • 依赖冲突

  • 工具不可用

  • 缺少文件 / 缺少环境

  • 步骤顺序问题

这是 GPT-o 系列和 Claude 3.7 的强杀招。


(4) 约束求解(Constraint Satisfaction)

使用 LLM 生成计划 → 约束求解器检查:

  • 任务顺序是否符合依赖

  • 工具是否足够执行

  • 输出格式是否满足要求

类似“计划编译器”。


5️⃣ Plan Graph(任务图)最终长什么样?

典型结构:

{
  "plan": {
    "nodes": [
      {"id": 1, "task": "Analyze requirements"},
      {"id": 2, "task": "Design architecture", "depends_on": [1]},
      {"id": 3, "task": "Setup repo", "depends_on": [2]},
      {"id": 4, "task": "Implement API", "depends_on": [3]},
      {"id": 5, "task": "Add tests", "depends_on": [3]},
      {"id": 6, "task": "Integration", "depends_on": [4,5]}
    ]
  }
}

这是一个 DAG(有向无环图)。
Executor 会用 topological sort 决定执行顺序。


6️⃣ Planner 如何选择工具?

规划步骤会包含:

  1. 动作类型

  2. 工具选择

  3. 输入 / 输出格式

示例:

Task: 获取设备状态
→ Action: http_request
→ Endpoint: /device/status
→ Expect: JSON schema = {...}

Planner 会基于:

  • 任务目标

  • 可用工具(tool registry)

  • 文件系统状态

  • 历史调用成功率

生成最优工具链。


7️⃣ 规划的执行与修正(Plan Execution Loop)

Deep Agent 的 Planner → Executor → Reviewer 构成闭环:

Image

Image

步骤:

  1. Planner 生成任务树

  2. Executor 执行下一个节点

  3. Reviewer/PRM 检查结果

  4. 如果失败

    • Planner 调整节点(replan)

    • 或替换子任务

    • 或调整工具

这使得 agent 可以:

  • 修复代码

  • 重写步骤

  • 调整策略

  • 重新规划部分任务树


8️⃣ 深度规划器对模型能力的要求(GPT-5 / o3 为什么这么强?)

Planner 的效果高度依赖模型具备以下能力:

① 结构化推理(structured reasoning)

模型要能输出 JSON、任务树、方法描述。

② 长序列一致性

任务树可能长达 50–200 步,需要模型不崩溃。

③ 自我投影能力(self-projection)

模型必须能“预测如果执行,会发生什么”。

④ 代码能力(codegen + debug)

因为大部分任务最终落地成工具链调用 & 代码执行。

⑤ 反思能力(self-reflect)

Planner 需要能主动发现自己生成的 plan 有问题。


9️⃣ 如何工程上构建一个 Planner?

下面是一个最简版可运行 Planner(Python)结构:

planner/
  ├── parser.py        # 任务解析
  ├── htn.py           # 层级任务分解
  ├── tool_selector.py # 工具选择
  ├── grapher.py       # 构建任务图
  ├── evaluator.py     # 计划质量评估
  └── planner.py       # 主入口

planner.py(伪代码)

class Planner:
    def __init__(self, llm, tools):
        self.llm = llm
        self.tools = tools
    def plan(self, user_goal):
        # Step 1: Task understanding
        task_spec = self._parse_goal(user_goal)
        # Step 2: HTN decomposition
        htn = self._htn_decompose(task_spec)
        # Step 3: Add tool info
        htn = self._attach_tools(htn)
        # Step 4: Build task graph
        graph = self._build_graph(htn)
        # Step 5: Evaluate plan quality (LLM Judge)
        score = self._evaluate(graph)
        return graph, score

实际企业级 Planner 的强化要素(重点)

① 规划缓存(Plan Cache)

同类任务不必重新规划 → 大幅降低成本。

② 动态 replanning

执行过程中根据上下文变化重新规划剩余节点。

③ 模型混合(Mixture-of-Agents)

  • Planner 用 o3-mini

  • 执行时用更便宜模型

  • 反思用 PRM/LLM judge

④ Plan Compression(计划压缩)

将 100 步任务压缩为 10 层抽象步骤 → 提升稳定性。

⑤ 任务树可视化(企业必备)

用于:

  • Debug

  • 演示

  • 风控审批(尤其金融/能源)

posted @ 2026-02-01 09:24  yangykaifa  阅读(4)  评论(0)    收藏  举报