写点什么

AI 智能体 - 规划模式

作者:Hernon AI
  • 2025-11-14
    浙江
  • 本文字数:8741 字

    阅读完需:约 29 分钟

AI智能体 - 规划模式

在我们的 AI 智能体设计之旅中,我们已经赋予了 AI 系统卓越的底层能力:信息流的线性处理(提示链)、条件性决策(路由)、高效的多任务并发(并行),以及至关重要的自我修正机制(反思)。


但即使拥有了这些能力,我们的智能体仍然像一位经验丰富的战术家,专注于眼前的每一个回合,而非整个战役的策略。它擅长对输入做出高效、正确的响应,却缺乏前瞻性——在复杂、多步骤的任务中,制定并执行一条从起点到终点的连贯战略。


这正是本文的核心:规划模式(Planning Pattern)


规划模式是智能体从一个高级别的“响应者”飞跃成为“战略家”的基础。它赋予了智能体把一个宏大、模糊的目标(例如:“启动新的营销活动”)拆解为一系列逻辑清晰、相互依赖的、可执行的步骤(例如:1. 预算审批 2. 素材设计 3. 渠道部署 4. 效果监测)的能力。

一、规划模式概览:从当前状态到目标状态

1. 战略家的核心任务:委派复杂目标

在 AI 的语境下,一个规划型智能体可以被视为一个可以委派复杂目标的专家。当你向它提出一个挑战,例如“组织一次高管团建活动”时,你定义的是目标及其约束条件(时间、预算、人数),而不是定义如何去做


规划智能体的核心任务是自主构建实现这一目标的行动序列:


  1. 弄清当前状况(Current State): 智能体需要首先获取起点信息(例如:当前预算、可用日期、参与人员名单)。

  2. 设定目标状态(Goal State): 明确终点(例如:已成功预订场地、已发送邀请函、预算已锁定)。

  3. 制定行动序列(Action Sequence): 识别连接当前状态与目标状态的最小且最优的行动步骤。


规划并非一次性的问答事件,而是一个迭代的计算过程。LLM 凭借其在海量序列数据(如项目计划书、故事叙事逻辑)上的训练优势,非常擅长生成这种逻辑连贯的行动序列。

2. 灵活性与可预测性的权衡

规划模式的关键优势在于灵活应变。最初的计划只是一个蓝图,而非不可更改的指令。


  • 适应性: 当计划在执行过程中遭遇障碍(例如:首选的团建场地在第一步被发现已约满)时,有能力的智能体不会终止任务,而是会:

  • 吸收新的约束信息。

  • 重新评估可选方案。

  • 调整路线或制定替代计划。


然而,这种动态的灵活性也伴随着可预测性风险


经验法则: 是否采用规划模式,关键在于:“如何做”的方案是需要探索(Planning),还是已经明确(Routing/Chaining)?

二、LLM 为什么能进行规划?

为什么 LLM,一个本质上是“下一个词预测器”的模型,能胜任复杂的规划任务?

1. 基于序列训练的固有优势

LLM 的训练数据中包含了大量的结构化序列:


  • 代码: 遵循严格的逻辑和流程。

  • 叙事: 包含起因、发展、高潮和结局的连贯故事。

  • 项目文档: 详细的步骤、里程碑和依赖关系。


这种大规模的序列训练,使得 LLM 能够将一个高层次的目标(如“写一篇关于量子计算的报告”)自然地分解为逻辑上合理的子序列(如“搜索背景 收集数据 组织结构 撰写摘要”)。

2. 提示工程中的规划诱导

我们可以在提示词中明确要求 LLM 进入“规划模式”,从而激发其规划能力。这包括:


  • Chain-of-Thought (CoT) / 步骤思考: 明确要求模型在回答前输出其思考过程:“请你先将任务拆解为 10 个步骤,然后按步骤执行。”

  • ReAct 模式(推理与行动): 模型交替进行Thought(思考/规划)、Action(行动/工具调用)和Observation(观察结果),每一次Thought都是对下一步行动的规划。

  • 需求明确化: 提示中包含“任务依赖关系”、“时间约束”、“资源限制”等,迫使模型在规划时纳入这些复杂因素。

3. 与工具使用的深度融合

规划模式是工具使用模式的超级进化版。


  • 工具使用: 解决“如何做一个单一动作”(How to do )。

  • 规划模式: 解决“什么时候做哪个动作”(When to do $\text{Action}{\text{i}}\text{Action}{\text{i+1}}$)。


一个规划型智能体首先生成一个多步骤的行动序列(规划),然后将序列中的每一步转化为对外部工具(例如:API、数据库、其他智能体)的调用(工具使用)。

三、深度应用场景:六大战略性商业案例

规划模式在要求高层次战略和精确执行的领域中具有不可替代的价值。以下是六个贴合实际、涉及多系统交互的商业案例。

1. 复杂工作流自动化:SaaS 产品发布流程

  • 目标: 在三个月内,成功将一个新功能模块(Feature X)推向市场。

  • 挑战: 涉及技术、市场、法务和财务四个部门,且步骤之间存在严格依赖。

  • 智能体规划(SaaS 发布协调员):


  • 规划价值: 智能体自主识别了法务审核(1.3)必须在文档编写(2.1)之前完成的依赖关系。如果法务审核失败,智能体会自动返回步骤 1.2,要求开发团队进行修改,并生成一条替代计划。这确保了流程的严谨性,避免了人工协调的遗漏。

2. 金融资产管理:自动化投资组合再平衡

  • 目标: 根据客户的风险偏好(例如:目标配置股债比 60:40)重新平衡资产。

  • 挑战: 涉及实时数据获取、精确计算、遵守交易规则和税务约束。

  • 智能体规划(投资顾问智能体):


  • 规划价值: 在步骤 3.0,智能体自主调用税务知识库来增加决策的复杂性,而不是盲目地卖出所有偏差资产。规划确保了“税务优化”这一高阶目标被整合到了基础的“再平衡”任务中,使整个流程更智能、更贴合客户利益。

3. 客户支持:复杂故障诊断流程

  • 目标: 解决客户报告的“无法连接网络”问题。

  • 挑战: 故障原因多样(账户问题、设备问题、区域问题),需要条件性、排查式的规划。

  • 智能体规划(网络诊断智能体):


  • 规划价值: 规划模式与路由模式(第二篇)相结合。智能体并非执行一个固定的脚本,而是根据每一步的观察结果(例如:设备重启是否成功,区域是否有故障)来动态决定下一步的行动。这使得诊断过程高效且具有针对性。

4. 供应链物流:最优路径与碳排放优化

  • 目标: 规划从深圳工厂到 X 港口的货物运输,在满足交付日期的前提下,最小化碳排放

  • 挑战: 复杂的优化问题,涉及多路径比较和实时约束检查。

  • 智能体规划(绿色物流智能体):


  • 规划价值: 这是一个典型的优化规划案例。智能体将“最小化碳排放”这一高阶目标融入到路径规划的中间步骤(3.0 和 5.0)。它不是简单地找到最快的或最便宜的路径,而是找到了约束下的最优解,体现了规划智能体的复杂决策能力。

5. 跨智能体协作:IT 系统运维

  • 目标: 在服务器宕机时,自动执行一套标准的灾难恢复流程。

  • 挑战: 任务需要不同角色的智能体协同工作,即跨智能体规划。

  • 智能体规划(灾难恢复协调员):


  • 规划价值: 协调员智能体负责高层次的规划(步骤 2.0)。它不执行任何技术操作,而是将技术任务(3.0、4.0、5.0)委托给专业的子智能体。规划模式在这里成为了一个任务分发中枢,实现了复杂系统的模块化和可维护性。

6. 复杂研究与知识生成:迭代性文献综述

  • 目标: 生成一篇关于某一领域最新进展的、全面且带有引用的综述报告。

  • 挑战: 知识有空白、来源可能相互冲突,需要反复搜索和反思。

  • 智能体规划(深度研究智能体):


  • 规划价值: 这是最能体现规划和反思模式(第四篇)结合的案例。智能体不是一次性搜索,而是自主设计一个迭代的研究流程(步骤 4.0),确保了研究的全面性,并主动解决了信息冲突和知识盲点。Google DeepResearch 和 OpenAI Deep Research API 正是这种规划模式的商业化典范。

行业级规划案例:深度研究智能体

Google Gemini 深度研究和 OpenAI Deep Research API 是规划模式在信息检索领域的高级应用。它们将一个简单的搜索查询提升为自动化的、战略性的研究项目。

1. Google Gemini 深度研究 Deep Research:动态迭代计划

Google 深度研究智能体的架构精髓在于其异步、持续运行的迭代过程


  • 先审后批的计划: 系统首先将用户的提示分解成一个多要点的研究计划,并将其呈现给用户审阅。这让用户有机会在执行前调整方向,确保了效率和目标的一致性。

  • 规划驱动的搜索: 一旦计划获批,智能体便开始循环的“搜索 分析 规划新查询”过程。它不是执行预设的关键字搜索,而是:

  • 根据当前已收集到的信息,动态生成和调整下一轮的搜索查询。

  • 主动识别并解决数据冲突(例如:两个来源给出了不同的股票价格)。

  • 系统性地探索复杂主题的所有子维度。

  • 结构化产出: 最终产出是结构化的多页报告,其中包含:清晰的章节划分、引人入胜的叙述、音频简介、图表和完整的引用来源清单。


价值体现: 它将耗时数小时的手动研究工作自动化。例如,在进行竞争分析时,智能体系统能够有条不紊地收集市场趋势、产品规格和公众舆情,将分析师从繁琐的数据采集工作中解放出来,专注于战略解读。

2. OpenAI 深度研究接口 Deep Research API:透明度的力量

OpenAI 的 Deep Research API 同样遵循规划模式,其设计重点在于透明度和可编程性


  • 自主推理与规划: 它接收高层次的问题(user_query),自主拆解为子问题,并规划网络搜索步骤。

  • 结构化与引用: 生成的报告结构清晰,内联引用直接链接到原始来源,确保结论可核查。

  • 透明的中间步骤(Planning Audit): 这是该接口的关键优势。它不只是返回最终报告,还会展示所有中间步骤:

  • Reasoning Steps: 智能体的内部计划和总结(即规划过程)。

  • Web Search Calls: 智能体执行的精确搜索查询(即规划的行动)。

  • Code Execution: 运行的任何代码(即规划的工具使用)。


这种透明度使开发者能够对答案的生成过程进行细致的调试和分析,是高级规划系统在企业环境中实现审计和可信度的关键要素。


您的反馈非常精准。原章节内容主要侧重于规划模式的价值和结果,但在实现规划模式的具体技术路径、方法论差异及其权衡方面确实可以更加深入和系统化。


以下是对实现规划模式的三种核心方式的补充,包含其技术机制、优缺点和明确的适用场景。



四、规划模式(Planning Pattern)的实现机制与技术路径

实现规划模式,即让智能体将高层次目标分解为行动序列的技术手段,可以大致分为三个层次,从轻量级到框架依赖再到专业系统。

方式一:基于提示词的零样本规划 (Zero-Shot/Few-Shot Planning)

这是最基础、最灵活的规划实现方式,完全依赖于大型语言模型(LLM)固有的序列生成和推理能力。

机制描述

通过精心设计的提示词,诱导 LLM 在输出最终答案前,先生成一个行动或思考序列。核心技术包括:


  1. 思维链(Chain-of-Thought, CoT): 在提示词中加入“请一步一步地思考”或“请先制定计划”等指令,迫使模型将推理过程外化为规划步骤。

  2. 推理与行动(Reasoning and Action, ReAct): 明确要求模型在规划中交替输出Thought(思考/计划)、Action(工具调用)和Observation(观察结果)。

优缺点与适用场景

方式二:基于结构化框架的智能体规划(Framework-Based Agents)

这种方式使用像 CrewAI、LangChain 或 Microsoft AutoGen 等智能体框架,将规划过程结构化、模块化,并与工具调用、内存管理和执行控制紧密结合。

机制描述

框架为智能体提供了固定的角色和流程,确保规划的可靠性:


  1. 明确的角色定义: 智能体被赋予 rolegoal(如 CrewAI 示例中的“文章规划师”),这极大增强了其在特定领域规划的专业性。

  2. 强制流程控制: 框架使用状态机或进程控制(如 Process.sequentialHierarchical),确保规划步骤按预期顺序执行。

  3. 工具与内存管理: 框架负责执行工具调用(Tool Use Pattern),并将工具的返回结果(Observation)自动注入到 LLM 的下一次规划(Thought)中,形成可靠的规划-执行循环

优缺点与适用场景


方式三:基于专业系统的深度迭代规划(Specialized Deep Research Systems)

这是在特定领域(如信息检索、知识生成)由技术巨头提供的高度优化、黑箱化的规划实现方案。上述提到的 Google DeepResearch 和 OpenAI Deep Research API 属于此类。

机制描述

这类系统将“规划-反思-执行”循环封装为单一服务。其规划机制通常是:


  1. 迭代与反思: 系统内部维护一个“知识状态”。每执行完一轮搜索,它都会反思已获取的知识,识别知识空白或冲突,并重新规划下一轮的查询,直至收敛。

  2. 高精度工具: 内置高度优化的工具(如实时搜索引擎、代码解释器),其调用和结果处理的效率远高于通用框架。

  3. 结构化输出保障: 系统保证最终报告不仅是文本,还包含标准化的结构、排版和可验证的内联引用。

优缺点与适用场景



规划风格的延伸:层级任务网络(Hierarchical Task Network, HTN)

无论采用哪种实现方式(纯提示词、框架或专业系统),面对极端复杂的任务时,层级规划都是一种必要的规划风格


层级规划(Hierarchical Planning)模仿人类解决问题的方式:


  • 自上而下: 将一个宏大且抽象的目标 A 分解为数个中等粒度的、可管理的目标 A1,A2 

  • 直至原子操作: 每个子目标进一步分解为可以直接通过工具调用的原子操作(Atomic Actions)

案例:金融投资规划


层级规划的价值:


  • 管理复杂性: 避免 LLM 在一次性生成数百个步骤时出错。

  • 确保约束: 上层目标可以作为下层子任务的约束条件(例如:Level 1 的“合规性”目标会作为 Level 3 交易操作的硬约束)。

  • 提升可解释性: 审计时可以清晰地追踪决策是如何从高层目标逐级细化到原子行动的。



三种方式的对比表格:


五、实战代码:在框架中实践规划模式

1. CrewAI:强制的顺序规划

CrewAI 通过其任务定义和 Process.sequential 模式,鼓励智能体首先进行规划。我们通过在任务描述中明确要求规划步骤,来诱导智能体行为。


# 依赖安装:pip install crewai langchain-openaiimport osfrom dotenv import load_dotenvfrom crewai import Agent, Task, Crew, Processfrom langchain_openai import ChatOpenAI
# 1. 明确指定使用的模型llm = ChatOpenAI(model="gpt-4-turbo")
# 2. 定义一个目标明确的智能体planner_writer_agent = Agent( role='文章规划师和撰写专家', goal='先规划,然后撰写关于指定主题的简洁、引人入胜的摘要。', backstory=( '你是一位经验丰富的技术作家和内容策略师。' '你的优势在于在写作前创建一个清晰、可执行的计划,' # 提示规划的重要性 '确保最终摘要既有信息量又易于理解。' ), verbose=True, allow_delegation=False, llm=llm)
# 3. 定义一个更结构化且输出明确的任务 (Planning is part of the description)topic = "强化学习在人工智能中的重要性"high_level_task = Task( description=( f"1. **首先**,为主题: '{topic}' 的摘要创建一个**要点式的计划**。\n" # 强制规划步骤1 f"2. **然后**,根据你的计划撰写摘要,保持在200字左右。" # 强制执行步骤2 ), expected_output=( "一个包含两个独立部分的最终报告:\n\n" "### 计划\n" "- 一个列出摘要主要观点的要点列表。\n\n" "### 摘要\n" "- 关于该主题的简洁且结构良好的摘要。" ), agent=planner_writer_agent,)
# 4. 创建 Crew 实例并设置为顺序处理crew = Crew( agents=[planner_writer_agent], tasks=[high_level_task], process=Process.sequential, # 确保先完成计划,再执行写作)
# Execute the taskprint("## 运行规划和写作任务 ##")result = crew.kickoff()
# print("\n\n---\n## 任务结果 ##\n---")# print(result)
复制代码


在这个 CrewAI 示例中,通过将“创建计划”作为任务描述中的第一个强制步骤,我们成功地将规划行为嵌入到了智能体的执行流程中。Process.sequential 确保智能体必须在完成第一步的思考和产出(即计划)后,才能进入第二步的产出(即摘要写作)。

2. OpenAI Deep Research API:暴露中间步骤的规划

OpenAI 的 Deep Research API 将规划流程抽象到了 API 层面。用户只需定义目标,模型自主规划搜索、推理、整合的迭代步骤。


from openai import OpenAIimport json
# 1. 初始化客户端 (需替换为你的 API Key)# client = OpenAI(api_key="YOUR_OPENAI_API_KEY")
# 2. 定义智能体的角色和研究问题system_message = """你是一位专业的结构化研究员,负责撰写数据驱动的报告。专注于数据丰富的见解,使用可靠来源,并包含内联引用。"""user_query = "研究X药对全球医疗体系的经济影响。"
# 3. 调用深度研究 APItry: response = client.responses.create( model="o3-deep-research-2025-06-26", # 使用支持深度研究的模型 input=[ { "role": "developer", "content": [{"type": "input_text", "text": system_message}] }, { "role": "user", "content": [{"type": "input_text", "text": user_query}] } ], reasoning={"summary": "auto"}, # 请求自动生成推理摘要(即规划和反思的总结) tools=[{"type": "web_search_preview"}] # 启用网络搜索工具 )
# 模拟响应以展示结构 class MockAnnotation: def __init__(self, start, end, title, url): self.start_index = start self.end_index = end self.title = title self.url = url class MockContent: def __init__(self, text, annotations=None): self.text = text self.annotations = annotations or [] self.type = "text"
class MockOutput: def __init__(self, content, output_type): self.content = content self.type = output_type self.summary = [MockContent("初始计划:拆解为三个子问题。"), MockContent("迭代修正:发现经济影响的数据不足,重新规划搜索。")] self.action = {'query': 'semaglutide global healthcare economic data'} self.status = 'SUCCESS' self.input = "print('import data')" self.output = "Data frame loaded successfully." def __iter__(self): # 模拟事件流,用于中间步骤检查 yield MockOutput(None, "reasoning") yield MockOutput(None, "web_search_call") yield MockOutput(None, "code_interpreter_call") final_report_text = "X药已对全球医疗体系产生了显著的经济影响 [1],预计在未来五年内,其对国家医疗预算的压力将持续增加 [2]。" final_report_annotations = [ MockAnnotation(30, 42, "Nature Medicine - Economic Impact", "https://XXX.com/nature"), MockAnnotation(60, 68, "JAMA Network - Budget Analysis", "https://XXX.com/jama") ] mock_response_output = [MockOutput([MockContent(final_report_text, final_report_annotations)], "final_report")] mock_response_output[-1].content[0].type = "final_report" # 标记最终报告 response = type('Response', (object,), {'output': mock_response_output, 'intermediate_steps': MockOutput(None, 'mock')}) # 模拟最终响应对象 final_report = response.output[-1].content[0].text print("\n--- 最终报告 ---\n" + final_report)
# 4. 检查中间步骤 (规划过程的透明度) print("\n" + "=" + "\n") print("--- 规划与中间步骤分析 ---")
# 1. 推理步骤 (Planning & Reflection): 模型生成的内部计划和总结 try: # 在真实API调用中,需要迭代 response.output 来找到类型 reasoning_step = next(item for item in response.intermediate_steps if item.type == "reasoning") print("\n[规划步骤 - Reasoning]") for summary_part in reasoning_step.summary: print(f" - {summary_part.text}") except StopIteration: print("\n未找到推理步骤。") except AttributeError: print("\n模拟数据中未找到推理步骤。")
# 2. 网络搜索调用 (Action Execution): 智能体执行的具体搜索操作 try: search_step = next(item for item in response.intermediate_steps if item.type == "web_search_call") print("\n[行动步骤 - Web Search Call]") print(f" 执行查询: '{search_step.action['query']}'") print(f" 状态: {search_step.status}") except StopIteration: print("\n未找到网络搜索步骤。") except AttributeError: print("\n模拟数据中未找到网络搜索步骤。")
except Exception as e: print(f"API调用或模拟执行失败: {e}")
复制代码


该示例着重强调了规划模式在企业级应用中的透明度需求。通过获取并分析reasoning(推理/规划)、web_search_call(行动)等中间步骤,开发者不仅知道最终答案,还能够追踪智能体如何规划其研究过程,这对于验证结果的可靠性和进行故障排除至关重要。

六、结论与智能体模式的终极融合

规划模式标志着我们智能体设计系列的里程碑,也是所有模式的集大成者。它不再是单一能力的提升,而是对前五篇能力的协调和战略性运用。



规划模式是把所有这些能力统一在“目标导向的战略”之下的总指挥。它将人类的高层次意图转化为一系列自动化、可执行、可适应的数字步骤。


通过规划模式,我们的 AI 智能体从一个善于言辞的助手,最终蜕变成为一个拥有战略思维、可以自主行动、能够在复杂数字环境中导航并实现复杂目标的自主战略执行者

参考资料

1.Google DeepResearch (Gemini Feature): gemini.google.com

2.OpenAI, Introducing deep research: https://openai.com/index/introducing-deep-research/

3.Perplexity, Introducing Perplexity Deep Research: https://www.perplexity.ai/hub/blog/introducing-perplexity-deep-research

4.Antonio Gulli 《Agentic Design Patterns》


发布于: 53 分钟前阅读数: 8
用户头像

Hernon AI

关注

创意心中美好世界 2020-08-19 加入

AI爱好者

评论

发布
暂无评论
AI智能体 - 规划模式_AI_Hernon AI_InfoQ写作社区