【LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(二)

💡 核心摘要 :Planning 是 Agent 面对任务时,决定"怎么做""先做什么后做什么""用什么工具做"的核心过程。本文系统梳理 8 种纯 LLM 规划范式与 8 种混合规划模式,每种均配有直观流程图、适用场景与工程实现要点,助你根据实际需求选择最合适的方案。

上一篇文章讲解了Planning 的LLM-based Planning:纯大模型规划 内容,这一篇接着讲它的第二种实现方式,Hybrid Planning:混合规划 内容。 感兴趣可以在专栏中查看上一篇内容。


混合规划的核心思想是:代码控制流程框架,LLM 处理具体内容 。这种方式在当前企业级落地中最为常见,因为它用代码的确定性约束了 LLM 的不确定性。

1. 静态主干:代码完全控制流程

代码预定义固定步骤序列,LLM 仅负责每个步骤的内容生成,不参与流程决策。

案例 :标准化报告生成步骤 A(提取关键词)→ 步骤 B(查阅资料总结)→ 步骤 C(撰写报告)

bash 复制代码
              用户输入
                 ↓
        ┌─────────────────┐
          代码:启动步骤A 
            
          "请从以下文本提取
          关键词:「文本内容」"   
        └────────┬────────┘
                 ↓
            ┌─────────┐
              LLM生成     ← 关键词列表
            └────┬────┘
                 ↓
        ┌─────────────────┐
         代码:传递结果到步骤B 
         
         "请基于关键词[关键词列表]
          查阅相关资料并总结" 
        └────────┬────────┘
                 ↓
            ┌─────────┐
              LLM生成     ← 资料摘要
            └────┬────┘
                 ↓
        ┌─────────────────┐
          代码:传递结果到步骤C 
          
         "请基于[资料摘要]撰写
          500 字报告"     
        └────────┬────────┘
                 ↓
            ┌─────────┐
              LLM生成     ← 最终报告
            └────┬────┘
                 ↓
              代码输出
维度 说明
适用场景 标准化报告、固定流程文档处理、合规严格任务
优点 流程稳定、可控、可预测
缺点 不灵活,无法处理异常或分支

2. 意图路由:代码做分类判断

代码(或轻量分类模型)对用户输入进行意图识别,根据意图类型调度到不同的处理链。

案例 :客服系统分流

  • "咨询产品" → 产品知识库链
  • "投诉服务" → 投诉处理链
  • "查订单" → 订单查询接口
bash 复制代码
        用户输入:"分析这份水质数据"
            ↓
        ┌─────────────────┐
         代码:意图分类    
         - 代码规则匹配:"分析" → 分析类 
         - 或轻量LLM判断,"请根据用户输入内容进行分类 A:查询 B:分析"   
        └────────┬────────┘
                 ↓
            ┌────┴────┐
            ↓         ↓
        ┌───────┐   ┌───────┐
         查询类        分析类    ← 匹配到
        (代码处理)    (LLM处理)
        └───────┘   └───┬───┘
                        ↓
                   ┌─────────┐
                     LLM深度  
                     分析数据  
                   └────┬────┘
                        ↓
                      输出结果
维度 说明
适用场景 客服分流、多类型任务入口、权限控制
优点 路由清晰、效率高、易于扩展
缺点 需要预先定义所有意图类别

3. 检查点:代码检测关键条件

代码在流程关键节点插入检查逻辑,命中条件时暂停流程,等待人工审核或自动拦截,通过后再继续。

案例 :高风险治理方案审批检测条件:"涉及关停企业?""预算 > 100 万?""风险等级 = 高?"命中任一条件 → 暂停 → 弹出确认 → 人工批准后继续

bash 复制代码
        **LLM生成方案"请制定xx污水治理方案"
                ↓
        ┌─────────────────┐
           代码:检查点检测  
           "涉及关停企业?"  
           "预算>100万?"   
           "风险等级=高?"  
        └────────┬────────┘
                 ↓
            ┌────┴────┐
            ↓         ↓
            否         是
            │          ↓
            │    ┌─────────┐
            │      暂停流程 
            │      弹出确认"AI建议关停 xx 企业,是否批准?" 
            │    └────┬────┘
            │         ↓
            │    ┌─────────┐
            └────  人工审核 
                [批准/拒绝/修改] 
                 └────┬────┘
                      ↓
                 ┌────┴────┐
                 ↓         ↓
                批准       拒绝
                 ↓         ↓
               继续执行   重新生成**
维度 说明
适用场景 高风险决策、合规审计、关键操作确认
优点 安全可控,满足合规要求
缺点 增加人工成本,降低自动化程度

4. 降级机制:代码捕获 LLM 失败

代码监控 LLM 调用状态,当出现超时、报错、低质量输出时,自动切换到规则引擎或备用方案,保障服务可用性。

案例 :水质分析降级LLM 超时/报错 → 代码检测失败 → 触发降级:"按历史经验,COD+氨氮双高属于生活污水" → 输出保底方案

bash 复制代码
        ┌─────────────────┐
           尝试用LLM解决    
          (ReAct/ToT等)  
        └────────┬────────┘
                 ↓
            ┌─────────┐
              LLM处理  
            └────┬────┘
                 ↓
        ┌─────────────────┐
        	 代码:检测成功?  
        	 - 超时?        
        	 - 报错?       
        	 - 质量分<阈值?  
        └────────┬────────┘
                 ↓
            ┌────┴────┐
            ↓         ↓
           成功       失败
            ↓         ↓
          输出结果  ┌─────────┐
                     降级处理  
                     "按历史经验,COD+氨氮双高属于生活污水"     
                    └────┬────┘
                         ↓
                    输出保底方案
维度 说明
适用场景 生产环境、高可靠性要求的服务
优点 保障服务可用性,避免单点故障
缺点 保底方案可能不是最优解

5. 记忆增强:代码管理记忆存储和检索

代码负责记忆的写入、检索、过期清理等生命周期管理,LLM 仅消费记忆内容生成回答,不参与记忆管理逻辑。

案例 :多轮对话上下文用户问:"上次说的茅洲河怎么样了?"代码检索记忆 → 找到"上周关注共和村断面 COD 超标" → 拼接 Prompt → LLM 基于记忆回答

bash 复制代码
        用户输入:"上次说的茅洲河怎么样了?"
            ↓
        ┌─────────────────┐
         代码:检索记忆    
         - 查user_id=123 
         - 最近对话:茅洲河  
         - 相关文档:上次报告
        └────────┬────────┘
                 ↓
            ┌─────────┐
              记忆内容  
        "上周关注共和村断面COD超标"  
            └────┬────┘
                 ↓
        ┌─────────────────┐
         代码:拼接Prompt  
         "历史:{memory}  
          当前:{input}"  
        └────────┬────────┘
                 ↓
            ┌─────────┐
             LLM生成  
             "您上周关注的茅洲河的共和村断面COD已下降..."
            └────┬────┘
                 ↓
            代码存储新对话到记忆库
维度 说明
适用场景 多轮对话、个性化推荐、长期任务跟踪
优点 记忆管理专业化,支持复杂检索策略
缺点 需要额外存储与检索基础设施

6. 工具编排:代码预定义工具调用 DAG

代码预定义工具调用的有向无环图(DAG),LLM 仅决定每个节点的参数,不决定调用顺序与依赖关系。

案例 :Q3 销售分析DAG:query_orders → calculate → llm_analyze用户输入:"分析 Q3 销售趋势" → 代码按 DAG 顺序执行,LLM 仅生成查询参数与解读内容

bash 复制代码
        用户输入:"分析Q3销售趋势"
            ↓
        ┌─────────────────┐
         代码:加载预设DAG 
          步骤1: 查数据库  
            ↓            
          步骤2: 计算环比  
            ↓            
          步骤3: LLM解读   
        └────────┬────────┘
                 ↓
        ┌─────────────────┐
         代码:执行步骤1   
         调用database_query数据库查询
         参数:LLM生成    
         "表=orders,时间=Q3"
        └────────┬────────┘
                 ↓
            数据库返回数据
                 ↓
        ┌─────────────────┐
         代码:执行步骤2   
         调用calculate进行计算   
         参数:代码自动传递 
         "数据={步骤1结果}"
        └────────┬────────┘
                 ↓
            计算结果:环比+15%
                 ↓
        ┌─────────────────┐
         代码:执行步骤3   
         调用LLM
         参数:代码拼接    
         "基于{步骤2结果}进行解读"
        └────────┬────────┘
                 ↓
            LLM生成:"Q3销售增长强劲,主要因为..."
维度 说明
适用场景 BI 分析、运维诊断、金融报表等固定流程
优点 流程稳定、效率高、可监控
缺点 不够灵活,难以处理动态分支

7. 状态机驱动:代码维护显式状态

代码定义合法的状态转移图,LLM 只能触发预定义的状态跳转,非法转移被强制拦截。

案例 :工单系统IDLE → COLLECTED → ANALYSIS → APPROVAL → EXECUTE → DONE禁止 COLLECTED → DONE(跳过分析)、APPROVAL → IDLE(未经执行结束)等非法转移

bash 复制代码
        ┌─────────┐
        
        状态码:IDLE(空闲)      ← 初始状态
              
        └────┬────┘
             ↓ 用户提交申请
        ┌─────────┐
        
        状态码:COLLECTED(数据收集)  
        [LLM提取]
        
        └────┬────┘
             ↓ 数据完整?
        ┌─────────┐
        
        状态码:ANALYSIS (分析中)    
        [LLM分析] 
        
        └────┬────┘
             ↓ 分析完成
        ┌─────────┐
        
        状态码:APPROVAL(待审批)   ← 代码强制暂停
        [人工审核]
        
        └────┬────┘
             ↓ 人工批准
        ┌─────────┐
        
        状态码:EXECUTE(执行中)    
        [代码执行]
        
        └────┬────┘
             ↓ 完成
        ┌─────────┐
        
        状态码:DONE(完成)    
             
        └─────────┘
        
        非法转移(LLM不能跳):
        COLLECTED → DONE(跳过分析)
        APPROVAL → IDLE(未经执行直接结束)
维度 说明
适用场景 工单系统、法律合同、医疗问诊、审计追踪
优点 流程安全、可追溯、合规性强
缺点 实现复杂,灵活性受限

8. 成本感知路由:代码根据复杂度选择模型

代码评估任务复杂度,自动路由到不同成本的模型或策略,实现成本与效果的平衡。

案例 :多级任务路由

  • "COD 多少" → 规则引擎($0.00)
  • "分析趋势" → 小模型 GLM-3.5($1)
  • "预测污染" → 大模型 GLM-4($2)
  • "关停工厂" → 大模型 + 人工审核($3+)
bash 复制代码
        			用户输入
        		    ↓
        ┌─────────────────┐
        	 代码:复杂度评估  
        	 - 长度?        
        	 - 关键词?      
        	 - 历史模式?    
        └────────┬────────┘
                 ↓
            ┌────┴────────┬────────────┬────────────┐
            ↓             ↓            ↓            ↓
        ┌───────┐      ┌───────┐    ┌───────┐   ┌───────┐
         简单查询         标准任务      复杂推理      高风险  
        "COD多少"        "分析趋势"    "预测污染"   "关停工厂"
         成本$0.00       成本$1        成本$2      成本$3+人工                              
         规则引擎         小模型        大模型      大模型+审核  
         (无LLM)        (GLM-3.5)     (GLM-4)    (GLM-5+人) 
        └───┬───┘       └───┬───┘    └───┬───┘  └───┬───┘
            └───────────────┴────────────┴──────────┘
                      ↓
                 输出结果
维度 说明
适用场景 企业级 SaaS、高并发客服、多层级用户
优点 成本优化,效果与成本平衡
缺点 增加评估开销,需维护多级模型

混合规划选型速查表

业务需求 推荐模式 核心理由
流程稳定、合规严格 静态主干 / 状态机 代码完全控制,杜绝意外
灵活路由、多类型入口 意图路由 / 成本感知路由 按需分发,效率与成本兼顾
安全控制、高风险操作 检查点 关键节点人工介入
高可用、生产环境 降级机制 失败时自动兜底
多轮对话、个性化 记忆增强 专业记忆管理
固定分析流程 工具编排 DAG 保证执行顺序

💡 实践建议 :实际系统往往需要组合多种模式 。例如:意图路由 + 状态机 + 检查点 + 降级机制,每层选择最适合的模式,构建稳健的生产级 Agent。

Planning 的目标是"有效",而非"完美"

Planning 容易陷入"过度设计"的陷阱。请记住以下原则:

  1. 简单任务优先用简单方案 :CoT 或 ReAct 足够应对大多数场景,不要为了炫技上 ToT/LATS。
  2. 生产环境首选混合规划 :代码控制框架,LLM 处理细节,分工明确,稳定性远高于纯 LLM 规划。
  3. 以解决问题为导向 :Planning 的目标不是"完美",而是"有效"。能稳定、低成本地解决问题的 Planning,就是最好的 Planning。

我刚开源的 ThinkLoop 工具就是采用了 Reflexion 的设计思路,让各大厂商的 web 端大模型问答更加精准,降低 web 端单模型的幻觉问题,感兴趣可以看一下这篇文章。

免费直连 Kimi/千问/DeepSeek,还能自动质检和横向对比?这个开源项目做到了

相关推荐
微硬创新1 小时前
耐达讯自动化 CC-Link IE 转 PROFINET网关在污水厂智能化升级实战
人工智能·物联网·网络协议·自动化·信息与通信
Smoothcloud润云1 小时前
国内GPU算力租赁平台横向测评:资源、成本、稳定性三维对比
人工智能·ai·云计算·gpu算力·gpu
点PY1 小时前
一种从CTA图像中去除扫描床的方法及装置
人工智能·计算机视觉
沉默王二1 小时前
腾讯一面,我霸气反问:“你说你们在做Agent项目,说说 SubAgent、Plan 模式、Skill 调用这些你们都是怎么做的?”面试官一直在擦汗。。
面试·agent·ai编程
晏宁科技YaningAI2 小时前
VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析
网络·人工智能·架构·系统架构·信息与通信
IT_陈寒2 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端
kyriewen2 小时前
我让AI改一个bug——它偷偷动了5个我没让它碰的地方
前端·javascript·ai编程
D2aZXN3FhrDa7e2122 小时前
佛山AI智能获客系统适配性:工厂门店如何挑选工具
人工智能·美诚科技有限公司
机器之心2 小时前
WAIC现场,这家公司让一群不同的机器人共用一个大脑
人工智能·openai