5.3 规划(Planning)

规划模式解决的是如何将复杂目标分解为可执行步骤的问题。例如,撰写一份研究报告需要分解为收集数据、分析财务、撰写各章节等具体任务。

5.3.1 目标分解与任务编排

目标分解是规划的第一步。好的分解应该满足 MECE 原则:相互独立(Mutually Exclusive)、完全穷尽(Collectively Exhaustive)。每个子任务不重叠,所有子任务加起来覆盖整个目标。

分解方法有几种:

  • 简单提示分解:直接让 AI 列出完成任务的步骤
  • 思维链分解:用 CoT 引导逐步拆解
  • 人工引导分解:人类提供框架,AI 细化

任务编排需要考虑依赖关系。有些任务有先后顺序,比如必须先收集数据,才能进行分析;有些任务可以并行,比如分析财务和分析行业可以同时进行。

规划有两种主要模式:

ReAct 模式:边执行边规划。完成一步后,根据结果决定下一步。适合简单任务和不确定性高的场景。

Plan-and-Execute 模式:先制定完整计划,再逐步执行。适合复杂的多步骤任务。

维度 ReAct Plan-and-Execute
规划方式 边执行边规划 先全局规划再执行
适用场景 简单任务、快速响应 复杂多步骤任务
灵活性 高,可即时调整 中,需重规划
LLM 调用 每步都规划 规划阶段调用一次

5.3.2 约束管理与资源分配

规划不只是列任务清单,还需要管理约束条件。常见的约束包括:

  • 时间约束:截止日期、各环节时间分配
  • 资源约束:可用的工具、数据来源
  • 质量约束:输出标准、合规要求

资源分配要考虑任务的优先级和复杂度。复杂任务分配更多时间,关键任务优先处理。

分层任务网络(Hierarchical Task Network, HTN)是一种经典的规划方法,源自人工智能领域的自动规划研究。HTN 的核心思想是将任务分为高层任务和底层任务:高层任务是抽象的目标(如「完成投资分析」),底层任务是具体的操作(如「计算市盈率」)。高层任务持续分解,直到所有任务都变成可直接执行的原子任务。这种层层分解的方式与人类处理复杂问题的思路一致。

规划组件架构

5.3.3 动态重规划机制

静态计划在执行过程中常常需要调整。可能遇到的情况包括:

  • 环境变化:数据源不可用,需要换一个
  • 执行失败:某个步骤没有成功
  • 新信息出现:发现了原计划没考虑到的因素

动态重规划的流程是:

  1. 监控执行:检测实际结果与预期是否一致
  2. 识别偏差:发现问题并评估影响
  3. 调整计划:修改后续步骤或整体方案

执行者可能是 AI 智能体、外部工具或人类操作员。如果执行者反馈失败或异常,规划器需要评估影响并决定下一步行动。

错误恢复是重规划的重要部分。当某个步骤失败时,可以尝试重试、使用替代方案或跳过该步骤。

初始计划:搜索"某公司2025年报" → 提取财务数据

执行结果:搜索无结果(2025年报尚未发布)

重规划:改为搜索"某公司2024年报" + 最新季报数据

5.3.4 规划验证与执行监控

规划验证在执行前检查计划的可行性:

  • 前置条件检查:所需资源是否就绪?
  • 依赖关系验证:任务顺序是否合理?
  • 完整性检查:是否覆盖所有必要步骤?

执行监控在过程中跟踪进度:

  • 记录每个任务的开始和完成时间
  • 标记任务状态(待处理、进行中、已完成)
  • 及时发现和处理异常

案例 5C:研报写作规划(规划)

要素 说明
演示模式 规划(Planning)
案例简述 输入撰写某公司行业分析报告目标,使用 TodoWrite 工具分解为章节大纲和写作步骤。体验目标分解与任务编排。
应用衔接 第 13 章研报生成系统的规划层(Planner Agent)直接应用此模式

实践步骤

第一步,进入规划模式(按 Shift+Tab 两次),然后输入:

我需要撰写一份关于"云计算行业龙头公司"的深度投资分析报告。
请先制定详细的写作计划,不要开始写作。

第二步,确认计划后,Opencode 会创建任务列表:

任务状态追踪:
◐ 收集公司财务数据和行业资料
◯ 分析业务模式和竞争优势
◯ 评估财务状况和盈利能力
◯ 进行估值分析
◯ 撰写投资建议和风险提示
◯ 整理报告格式和附录

第三步,切换到执行模式,按计划逐步完成各项任务,观察任务状态的更新。