知识模块
🤖 Agent 知识模块
规划模块概述

规划与推理概述

规划与推理是 Agent 的核心能力,决定了 Agent 如何理解目标、制定计划、执行任务。本章将从宏观视角介绍规划与推理的基本概念、协作机制和设计原则。


一、核心概念

1.1 什么是规划?

规划(Planning) 是将目标分解为可执行步骤的过程,解决"做什么"的问题。

┌─────────────────────────────────────────────────────────────┐
│                    规划的核心要素                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   目标 (Goal)                                       │  │
│   │   ─────────                                         │  │
│   │   用户期望达成的最终状态                             │  │
│   │   例如:"完成一份市场调研报告"                       │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                          │                                  │
│                          ↓                                  │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   计划 (Plan)                                       │  │
│   │   ─────────                                         │  │
│   │   为实现目标而制定的步骤序列                         │  │
│   │   例如:                                            │  │
│   │   1. 确定调研主题和范围                             │  │
│   │   2. 收集市场数据                                   │  │
│   │   3. 分析竞品情况                                   │  │
│   │   4. 撰写调研报告                                   │  │
│   │   5. 审核修改报告                                   │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                          │                                  │
│                          ↓                                  │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   执行 (Execution)                                  │  │
│   │   ────────────────                                  │  │
│   │   按计划调用工具完成每个步骤                         │  │
│   │   例如:调用搜索工具收集数据                         │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.2 什么是推理?

推理(Reasoning) 是对每个步骤进行逻辑推导的过程,解决"怎么做"的问题。

┌─────────────────────────────────────────────────────────────┐
│                    推理的核心过程                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   输入:当前步骤 "收集市场数据"                              │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   推理过程:                                        │  │
│   │                                                     │  │
│   │   1. 分析需求:                                     │  │
│   │      - 需要什么类型的市场数据?                      │  │
│   │      - 数据来源有哪些?                             │  │
│   │      - 数据时效性要求如何?                          │  │
│   │                                                     │  │
│   │   2. 选择方法:                                     │  │
│   │      - 搜索引擎 → 获取公开数据                      │  │
│   │      - 数据库查询 → 获取内部数据                    │  │
│   │      - API 调用 → 获取实时数据                      │  │
│   │                                                     │  │
│   │   3. 生成行动:                                     │  │
│   │      - 调用 search("市场规模 2024")                  │  │
│   │      - 调用 search("行业趋势报告")                   │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   输出:具体的行动方案                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.3 规划与推理的关系

维度规划推理
核心问题做什么?怎么做?
时间维度提前制定实时进行
抽象层次任务级别操作级别
输出结果步骤序列具体行动
依赖关系依赖目标依赖当前步骤
┌─────────────────────────────────────────────────────────────┐
│                    规划与推理协作模型                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌──────────────────────────────────────────────────────┐ │
│   │                   用户目标                            │ │
│   │          "帮我写一篇关于 AI Agent 的文章"             │ │
│   └──────────────────────────────────────────────────────┘ │
│                          │                                  │
│                          ↓                                  │
│   ┌──────────────────────────────────────────────────────┐ │
│   │                   规划器                              │ │
│   │                                                      │ │
│   │   输出计划:                                         │ │
│   │   1. 确定文章主题和结构                              │ │
│   │   2. 收集 AI Agent 相关资料                          │ │
│   │   3. 撰写文章内容                                    │ │
│   │   4. 审核和润色                                      │ │
│   │                                                      │ │
│   └──────────────────────────────────────────────────────┘ │
│                          │                                  │
│              ┌───────────┴───────────┐                     │
│              ↓                       ↓                      │
│   ┌──────────────────┐    ┌──────────────────┐            │
│   │     推理器 1      │    │     推理器 2      │            │
│   │                  │    │                  │            │
│   │ 步骤:确定主题    │    │ 步骤:收集资料    │            │
│   │                  │    │                  │            │
│   │ 推理:           │    │ 推理:           │            │
│   │ • 分析用户意图   │    │ • 确定资料来源   │            │
│   │ • 确定文章类型   │    │ • 选择搜索关键词 │            │
│   │ • 选择切入点     │    │ • 调用搜索工具   │            │
│   │                  │    │                  │            │
│   └──────────────────┘    └──────────────────┘            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

二、规划策略分类

2.1 规划策略类型

策略类型描述代表方法适用场景
单步规划每次只规划下一步ReAct简单任务、快速响应
完整规划一次性规划所有步骤Plan-and-Execute可预测的流程
动态规划根据执行结果调整计划Hierarchical Planning不确定性高的任务
反思规划执行后反思并改进Reflexion需要高质量输出

2.2 规划策略对比

┌─────────────────────────────────────────────────────────────┐
│                    规划策略对比图                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   单步规划(ReAct)                                         │
│   ┌─────────────────────────────────────────────────────┐  │
│   │ Goal ─→ Step1 ─→ Step2 ─→ Step3 ─→ Done            │  │
│   │        ↑     ↑     ↑                                │  │
│   │       规划  规划  规划                               │  │
│   │                                                     │  │
│   │ 优点:灵活,适应性强                                │  │
│   │ 缺点:缺乏全局视角,可能走弯路                       │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   完整规划(Plan-and-Execute)                              │
│   ┌─────────────────────────────────────────────────────┐  │
│   │ Goal ─→ [Step1, Step2, Step3] ─→ 执行 ─→ Done      │  │
│   │              ↑                      │                │  │
│   │            完整规划                  │                │  │
│   │                                    ↓                 │  │
│   │                               全部执行               │  │
│   │                                                     │  │
│   │ 优点:全局最优,执行高效                            │  │
│   │ 缺点:无法应对意外情况                              │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   动态规划(Hierarchical)                                  │
│   ┌─────────────────────────────────────────────────────┐  │
│   │ Goal                                                 │  │
│   │   ├── Phase1 ─→ [Sub1, Sub2] ─→ 执行 ─→ 反馈       │  │
│   │   ├── Phase2 ─→ [Sub3, Sub4] ─→ 执行 ─→ 反馈       │  │
│   │   └── Phase3 ─→ [Sub5, Sub6] ─→ 执行 ─→ 反馈       │  │
│   │                                                     │  │
│   │ 优点:平衡灵活性和全局性                            │  │
│   │ 缺点:实现复杂                                      │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

三、推理范式分类

3.1 推理范式演进

范式年份核心思想结构
CoT2022Step by Step 推理线性链
ToT2023树状探索,支持回溯树结构
GoT2023图状推理,支持聚合分解图结构

3.2 推理范式详解

┌─────────────────────────────────────────────────────────────┐
│                    推理范式结构对比                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   1. Chain-of-Thought(思维链)                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   问题 ─→ Step1 ─→ Step2 ─→ Step3 ─→ 答案          │  │
│   │                                                     │  │
│   │   特点:线性推理,简单直接                          │  │
│   │   适用:数学计算、逻辑推理                          │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   2. Tree-of-Thought(思维树)                              │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │              ┌── Step1a ─→ Step2a ─┐               │  │
│   │              │                     │                │  │
│   │   问题 ──────┼── Step1b ─→ Step2b ─┼─→ 最优答案    │  │
│   │              │                     │                │  │
│   │              └── Step1c ─→ Step2c ─┘               │  │
│   │                                                     │  │
│   │   特点:多路径探索,支持回溯                        │  │
│   │   适用:复杂决策、创意写作                          │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   3. Graph-of-Thought(思维图谱)                           │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │         ┌── Step1a ─┐                              │  │
│   │         │           ↓                              │  │
│   │   问题 ─┼── Step1b ─┼─→ 聚合 ─→ Step3 ─→ 答案     │  │
│   │         │           ↑                              │  │
│   │         └── Step1c ─┘                              │  │
│   │              ↑      │                               │  │
│   │              └──────┘                               │  │
│   │              循环迭代                               │  │
│   │                                                     │  │
│   │   特点:支持聚合、分解、循环                        │  │
│   │   适用:复杂问题求解、多维推理                      │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

四、规划与推理的挑战

4.1 主要挑战

挑战描述影响
规划粒度步骤过粗难以执行,过细效率低下执行效率
推理错误推理过程中的逻辑错误结果正确性
动态适应环境变化导致计划失效任务成功率
资源消耗多步推理消耗大量 Token成本控制

4.2 挑战应对策略

┌─────────────────────────────────────────────────────────────┐
│                    挑战应对策略                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   1. 规划粒度控制                                           │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   策略:                                            │  │
│   │   • 根据任务复杂度自适应调整粒度                    │  │
│   │   • 顶层规划粗粒度,底层执行细粒度                  │  │
│   │   • 每个步骤对应一个明确的工具调用                  │  │
│   │                                                     │  │
│   │   示例:                                            │  │
│   │   粗粒度:收集数据 ─→ 分析数据 ─→ 生成报告         │  │
│   │   细粒度:搜索市场数据 ─→ 爬取竞品信息 ─→          │  │
│   │          清洗数据 ─→ 统计分析 ─→ 可视化 ─→ 报告    │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   2. 推理错误处理                                           │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   策略:                                            │  │
│   │   • 自我反思:执行后检查结果                        │  │
│   │   • 验证机制:设置验证步骤                          │  │
│   │   • 回溯重试:发现错误时回退                        │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   3. 动态适应                                               │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   策略:                                            │  │
│   │   • 监控执行状态,检测异常                          │  │
│   │   • 预留备用方案                                    │  │
│   │   • 支持计划重规划                                  │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   4. 资源优化                                               │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   策略:                                            │  │
│   │   • 上下文压缩:精简历史信息                        │  │
│   │   • 缓存机制:避免重复推理                          │  │
│   │   • 提前终止:满足条件即停止                        │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

五、设计原则

5.1 核心设计原则

原则描述实践方法
明确目标清晰定义成功的标准输出具体的验收条件
合理分解每个步骤可独立执行步骤对应工具能力
验证反馈每步都有验证机制设置检查点
容错恢复支持错误恢复备用方案、回溯机制

5.2 设计最佳实践

# 规划与推理设计最佳实践
 
class PlanningBestPractices:
    """规划与推理设计最佳实践"""
    
    # 1. 明确目标定义
    def define_goal(self, user_request: str) -> dict:
        """
        明确目标定义
        
        示例:
        用户请求:"帮我分析销售数据"
        
        定义目标:
        {
            "objective": "完成销售数据分析报告",
            "success_criteria": [
                "数据已清洗和整理",
                "关键指标已计算",
                "可视化图表已生成",
                "结论和建议已输出"
            ],
            "constraints": {
                "time_limit": "1小时内",
                "data_source": "sales.csv"
            }
        }
        """
        pass
    
    # 2. 合理任务分解
    def decompose_task(self, goal: dict) -> list:
        """
        合理任务分解
        
        原则:
        - 每个步骤对应一个明确的工具调用
        - 步骤之间有清晰的依赖关系
        - 步骤粒度适中,不过粗也不过细
        
        示例:
        [
            {"step": 1, "action": "read_file", "input": "sales.csv", "output": "raw_data"},
            {"step": 2, "action": "clean_data", "input": "raw_data", "output": "clean_data"},
            {"step": 3, "action": "analyze", "input": "clean_data", "output": "analysis"},
            {"step": 4, "action": "visualize", "input": "analysis", "output": "charts"},
            {"step": 5, "action": "generate_report", "input": ["analysis", "charts"], "output": "report"}
        ]
        """
        pass
    
    # 3. 验证机制
    def add_validation(self, step: dict) -> dict:
        """
        添加验证机制
        
        示例:
        {
            "step": 2,
            "action": "clean_data",
            "validation": {
                "check": "data_completeness",
                "condition": "missing_rate < 0.1",
                "on_failure": "retry_with_different_strategy"
            }
        }
        """
        pass
    
    # 4. 错误恢复
    def add_recovery(self, step: dict) -> dict:
        """
        添加错误恢复机制
        
        示例:
        {
            "step": 3,
            "action": "analyze",
            "recovery": {
                "fallback_action": "use_simple_statistics",
                "max_retries": 3,
                "on_max_retries": "report_partial_results"
            }
        }
        """
        pass

六、与 Agent 架构的关系

6.1 规划推理在 Agent 架构中的位置

┌─────────────────────────────────────────────────────────────┐
│                    Agent 核心组件                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                                                     │  │
│   │   ┌─────────────────────────────────────────────┐  │  │
│   │   │              感知模块                        │  │  │
│   │   │   接收用户输入、环境反馈                    │  │  │
│   │   └─────────────────────────────────────────────┘  │  │
│   │                         │                          │  │
│   │                         ↓                          │  │
│   │   ┌─────────────────────────────────────────────┐  │  │
│   │   │         规划与推理模块(本章)               │  │  │
│   │   │                                             │  │  │
│   │   │   ┌─────────────┐   ┌─────────────┐        │  │  │
│   │   │   │   规划器    │   │   推理器    │        │  │  │
│   │   │   │ Planner     │   │ Reasoner    │        │  │  │
│   │   │   └─────────────┘   └─────────────┘        │  │  │
│   │   │                                             │  │  │
│   │   └─────────────────────────────────────────────┘  │  │
│   │                         │                          │  │
│   │                         ↓                          │  │
│   │   ┌─────────────────────────────────────────────┐  │  │
│   │   │              记忆模块                        │  │  │
│   │   │   存储历史、上下文、知识                    │  │  │
│   │   └─────────────────────────────────────────────┘  │  │
│   │                         │                          │  │
│   │                         ↓                          │  │
│   │   ┌─────────────────────────────────────────────┐  │  │
│   │   │              执行模块                        │  │  │
│   │   │   调用工具、执行任务                        │  │  │
│   │   └─────────────────────────────────────────────┘  │  │
│   │                                                     │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

6.2 与其他模块的协作

协作模块交互方式示例
感知模块接收用户目标和环境反馈用户请求 → 规划目标
记忆模块存取历史信息和知识检索相关经验指导规划
执行模块下发执行指令规划步骤 → 工具调用

七、面试高频问题

Q1: 规划和推理有什么区别?

答案要点:

  • 规划解决"做什么",推理解决"怎么做"
  • 规划是提前制定,推理是实时进行
  • 规划输出步骤序列,推理输出具体行动
  • 两者协作才能完成复杂任务

Q2: 如何选择合适的推理范式?

答案要点:

  • CoT:简单问题、线性推理、快速响应
  • ToT:需要回溯、多路径探索、复杂决策
  • GoT:复杂依赖关系、需要聚合分解

Q3: 如何控制规划粒度?

答案要点:

  • 每个步骤对应一个明确的工具调用
  • 步骤之间有清晰的输入输出关系
  • 根据任务复杂度自适应调整
  • 顶层粗粒度规划,底层细粒度执行

Q4: 如何处理规划执行中的错误?

答案要点:

  • 设置验证检查点,及时发现问题
  • 支持回溯重试,从错误点继续
  • 提供备用方案,保证任务完成
  • 反思机制,从失败中学习

Q5: 如何评估规划质量?

答案要点:

  • 任务完成率:最终目标是否达成
  • 执行效率:步骤数量、时间消耗
  • 资源消耗:Token 使用量
  • 错误恢复能力:遇到问题能否正确处理

八、小结

概念核心要点面试关键词
规划将目标分解为可执行步骤任务分解、粒度控制、依赖分析
推理对每个步骤进行逻辑推导CoT、ToT、GoT
挑战粒度控制、错误处理、动态适应资源优化、容错机制
原则明确目标、合理分解、验证反馈设计最佳实践

一句话总结:规划与推理是 Agent 的"大脑",规划决定做什么,推理决定怎么做,二者协作实现自主决策。


最后更新:2026年3月19日