🗺️ OpenClaw Agent渐进式任务规划

世界上有一种智慧叫渐进式规划,它不试图一步到位,而是走一步看一步,边做边调整...

"帮我策划一场线上活动"。这种任务,你不可能一开始就想好所有细节。先定主题,再定时间,再定嘉宾,再定流程——每一步的结果都影响下一步的计划。渐进式规划就是这套方法论。

📋 功能介绍

🎯 核心概念

概念 说明 比喻
计划(Plan) 制定任务执行步骤 旅行攻略
执行(Execute) 按计划执行任务 按攻略旅行
反思(Reflect) 检查执行结果 回顾旅行体验
调整(Replan) 根据结果调整计划 修改后续行程
递归分解 大任务拆成小任务 先定目的地再定路线

💡 规划模式对比

🚀 使用方法

1. Plan-and-Execute模式

# Plan-and-Execute配置
agents:
  planner:
    name: 任务规划师
    
    planning:
      mode: plan_and_execute
      
      # 计划配置
      plan:
        # 先制定计划
        initial_plan: true
        
        # 计划粒度
        granularity: medium  # fine/medium/coarse
        
        # 最大步骤数
        max_steps: 20
        
      # 执行配置
      execute:
        # 每步执行后反思
        reflect_after_step: true
        
        # 失败时重规划
        replan_on_failure: true
        max_replan: 3
        
    prompt: |
      你是一个任务规划师。
      
      收到任务后:
      1. 先制定执行计划(列出所有步骤)
      2. 逐步执行每个步骤
      3. 每步执行后检查结果
      4. 根据结果调整后续计划
      
      计划格式:
      ## 执行计划
      1. [步骤1] 描述...
      2. [步骤2] 描述...
      3. [步骤3] 描述...

2. 递归任务分解

# 递归分解配置
agents:
  recursive-planner:
    name: 递归规划师
    
    planning:
      mode: recursive_decomposition
      
      # 分解配置
      decomposition:
        # 最大递归深度
        max_depth: 5
        
        # 最小任务粒度(不再分解)
        min_task_size: atomic  # atomic=不可再分
        
        # 估算时间
        estimate_time: true
        
      # 分解规则
      rules:
        # 复杂任务需要分解
        - if:
            estimated_steps: ">5"
          action: decompose
          
        # 不确定的任务需要探索
        - if:
            uncertainty: ">0.5"
          action: explore_then_plan
          
    prompt: |
      收到任务后,递归分解:
      
      1. 评估任务复杂度
      2. 如果复杂,分解为子任务
      3. 对每个子任务重复评估和分解
      4. 直到每个子任务足够简单
      5. 按依赖关系排序执行
      
      输出格式:
      ```
      📋 任务: xxx
      ├─ 📁 子任务1: xxx
      │  ├─ 📄 具体操作1.1
      │  └─ 📄 具体操作1.2
      ├─ 📁 子任务2: xxx
      │  └─ 📄 具体操作2.1
      └─ 📁 子任务3: xxx
      ```

3. 自适应规划

# 自适应规划配置
agents:
  adaptive-planner:
    name: 自适应规划师
    
    planning:
      mode: adaptive
      
      # 自适应策略
      adaptive:
        # 执行过程中根据结果调整
        adjust_during_execution: true
        
        # 触发调整的条件
        triggers:
          - step_failed      # 步骤失败
          - new_info_found   # 发现新信息
          - goal_changed     # 目标变更
          - resource_change  # 资源变化
          
        # 调整策略
        strategies:
          failed_step:
            - retry          # 重试
            - alternative    # 备选方案
            - skip           # 跳过
            - ask_human      # 询问用户
            
          new_info:
            - update_plan    # 更新计划
            - re_prioritize  # 重新排序

4. 进度追踪

# 进度追踪配置
agents:
  tracked-planner:
    name: 带追踪的规划师
    
    planning:
      tracking:
        enabled: true
        
        # 追踪内容
        track:
          - step_status     # 步骤状态
          - time_spent      # 耗时
          - tokens_used     # Token消耗
          - errors          # 错误
        
        # 进度报告
        report:
          interval: every_5_steps  # 每5步报告
          format: markdown
          save_to: ./progress/

✨ 最佳实践

💡 规划技巧
⚠️ 常见问题
📝 实战案例:线上活动策划
用户: "帮我策划一场AI技术分享直播"

## 执行计划

### Phase 1: 活动定位(Planning)
📋 1.1 确定主题方向 → "OpenClaw Agent实战分享"
📋 1.2 确定目标受众 → AI开发者
📋 1.3 确定时间 → 下周五 20:00-21:30

### Phase 2: 内容准备(执行中)
📋 2.1 搜索热门AI话题 → 找到5个热点
📋 2.2 准备分享大纲 → 4个主题
📋 2.3 准备演示代码 → Agent搭建demo
📋 2.4 准备PPT大纲 → 30页

→ 执行中发现:2.3的demo太复杂
→ 调整计划:简化demo,增加视频演示

### Phase 3: 宣传推广
📋 3.1 撰写宣传文案
📋 3.2 制作宣传海报
📋 3.3 在社区发布

### Phase 4: 执行支持
📋 4.1 准备直播环境
📋 4.2 设置互动环节
📋 4.3 准备应急方案

进度: ████████░░ 80% (16/20步完成)

💻 代码示例

Plan-and-Execute

from openclaw import Agent
from openclaw.planning import PlanAndExecute

# 创建规划Agent
agent = Agent(
    name="planner",
    planning=PlanAndExecute(
        max_steps=20,
        replan_on_failure=True
    )
)

# 执行复杂任务
result = agent.run(
    "策划一场AI技术分享活动"
)

# 查看执行计划
print(result.plan)
# {
#   "steps": [
#     {"id": 1, "task": "确定主题", "status": "done"},
#     {"id": 2, "task": "准备内容", "status": "done"},
#     {"id": 3, "task": "准备环境", "status": "in_progress"},
#     {"id": 4, "task": "宣传推广", "status": "pending"},
#     {"id": 5, "task": "执行活动", "status": "pending"}
#   ]
# }

# 查看进度
print(result.progress)
# "3/5 步骤完成 (60%)"

递归分解

from openclaw.planning import RecursiveDecomposition

agent = Agent(
    name="recursive-planner",
    planning=RecursiveDecomposition(
        max_depth=5,
        auto_execute=True
    )
)

result = agent.run("搭建一个AI客服系统")

# 查看任务树
result.print_task_tree()
# 📋 搭建AI客服系统
# ├─ 📁 技术选型
# │  ├─ ✅ 比较LLM方案
# │  ├─ ✅ 选择OpenClaw
# │  └─ ✅ 确定架构
# ├─ 📁 知识库建设
# │  ├─ ✅ 整理FAQ
# │  ├─ ✅ 建立向量索引
# │  └─ 🔄 训练分类器
# ├─ 📁 Agent开发
# │  ├─ ⏳ 设计对话流程
# │  └─ ⏳ 开发工具接口
# └─ 📁 测试部署
#    ├─ ⏳ 单元测试
#    └─ ⏳ 生产部署

人工介入

# 需要确认的关键节点
agent = Agent(
    name="collaborative-planner",
    planning=PlanAndExecute(
        human_checkpoints=[
            "plan_approved",   # 计划批准
            "phase_complete",  # 阶段完成
            "budget_exceeded"  # 超预算
        ]
    )
)

# 执行中会暂停等待用户确认
result = agent.run("策划活动")
# 等待: "计划已制定,请确认 [Y/N]"

进度恢复

# 保存进度
agent.save_progress("project-planning.json")

# 恢复进度(从上次断点继续)
agent2 = Agent.load_progress("project-planning.json")
result = agent2.resume()

🔗 相关链接

📊 规划模式对比

模式 适用场景 灵活性 成本
一次性规划 已知流程、简单任务
渐进式规划 半已知流程
递归分解 复杂未知任务
自适应规划 动态变化环境 极高 极高