planning

command
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

README

Planning 智能规划示例

本示例演示 planning 包的使用,包括智能规划器、任务分解、计划优化和执行。

目录

架构设计

Planning 系统架构
graph TB
    subgraph Planner["智能规划器"]
        SmartPlanner["SmartPlanner"]
        LLM["LLM Client"]
        Memory["Memory Manager"]
    end

    subgraph Strategies["规划策略"]
        Decomposition["分解策略"]
        BackwardChaining["逆向推理"]
        Hierarchical["层次化策略"]
    end

    subgraph Validators["验证器"]
        DependencyValidator["依赖验证"]
        ResourceValidator["资源验证"]
        TimeValidator["时间验证"]
    end

    subgraph Agents["规划 Agent"]
        PlanningAgent["PlanningAgent"]
        TaskDecomposer["TaskDecompositionAgent"]
        StrategyAgent["StrategyAgent"]
        ValidationAgent["ValidationAgent"]
    end

    subgraph Execution["执行"]
        Executor["PlanExecutor"]
        Result["ExecutionResult"]
    end

    SmartPlanner --> LLM
    SmartPlanner --> Memory
    SmartPlanner --> Strategies
    SmartPlanner --> Validators

    PlanningAgent --> SmartPlanner
    PlanningAgent --> Executor
    TaskDecomposer --> SmartPlanner
    StrategyAgent --> Strategies
    ValidationAgent --> Validators

    Executor --> Result

    style SmartPlanner fill:#e3f2fd
    style PlanningAgent fill:#c8e6c9
计划生命周期
stateDiagram-v2
    [*] --> Draft: 创建计划
    Draft --> Ready: 验证通过
    Draft --> Draft: 优化/修改
    Ready --> Executing: 开始执行
    Executing --> Completed: 执行成功
    Executing --> Failed: 执行失败
    Failed --> Draft: 重新规划
    Completed --> [*]

    note right of Draft: 计划草稿阶段
    note right of Ready: 已验证可执行
    note right of Executing: 正在执行中
执行流程
sequenceDiagram
    participant User
    participant PlanningAgent
    participant SmartPlanner
    participant LLM
    participant Validators
    participant Executor

    User->>PlanningAgent: 提交目标
    PlanningAgent->>SmartPlanner: CreatePlan(goal)
    SmartPlanner->>LLM: 生成计划
    LLM-->>SmartPlanner: 计划内容
    SmartPlanner->>Validators: ValidatePlan()
    Validators-->>SmartPlanner: 验证结果

    alt 验证失败
        SmartPlanner->>LLM: RefinePlan()
        LLM-->>SmartPlanner: 优化后计划
    end

    SmartPlanner-->>PlanningAgent: Plan
    PlanningAgent->>Executor: Execute(plan)
    Executor-->>PlanningAgent: ExecutionResult
    PlanningAgent-->>User: 执行结果

核心组件

1. SmartPlanner - 智能规划器
// 创建智能规划器
planner := planning.NewSmartPlanner(
    llmClient,
    memoryManager,
    planning.WithMaxDepth(3),            // 最大规划深度
    planning.WithTimeout(5*time.Minute), // 规划超时
    planning.WithOptimizer(optimizer),   // 计划优化器
)

// 创建计划
plan, err := planner.CreatePlan(ctx, goal, planning.PlanConstraints{
    MaxSteps:    10,
    MaxDuration: 30 * time.Minute,
})

// 验证计划
valid, issues, err := planner.ValidatePlan(ctx, plan)

// 优化计划
optimizedPlan, err := planner.OptimizePlan(ctx, plan)

// 细化计划
refinedPlan, err := planner.RefinePlan(ctx, plan, feedback)

// 分解步骤
subSteps, err := planner.DecomposePlan(ctx, plan, step)
2. Plan - 计划结构
type Plan struct {
    ID           string                 // 计划 ID
    Goal         string                 // 目标描述
    Strategy     string                 // 使用的策略
    Steps        []*Step                // 步骤列表
    Dependencies map[string][]string    // 步骤依赖关系
    Context      map[string]interface{} // 上下文数据
    Status       PlanStatus             // 当前状态
    Metrics      *PlanMetrics           // 执行指标
}

type Step struct {
    ID                string           // 步骤 ID
    Name              string           // 步骤名称
    Description       string           // 步骤描述
    Type              StepType         // 步骤类型
    Agent             string           // 执行 Agent
    Parameters        map[string]any   // 执行参数
    Expected          *ExpectedOutcome // 预期结果
    Priority          int              // 优先级
    EstimatedDuration time.Duration    // 预计时长
    Status            StepStatus       // 当前状态
    Result            *StepResult      // 执行结果
}
3. Planning Agents
Agent 说明 用途
PlanningAgent 规划执行 Agent 创建计划并执行
TaskDecompositionAgent 任务分解 Agent 将复杂任务分解为子任务
StrategyAgent 策略 Agent 选择和应用规划策略
OptimizationAgent 优化 Agent 优化计划效率
ValidationAgent 验证 Agent 验证计划可行性
4. 规划策略
// 内置策略
const (
    StrategyDecomposition    = "decomposition"     // 任务分解
    StrategyBackwardChaining = "backward_chaining" // 逆向推理
    StrategyHierarchical     = "hierarchical"      // 层次化规划
)

// 自定义策略
type PlanStrategy interface {
    Apply(ctx context.Context, plan *Plan, constraints PlanConstraints) (*Plan, error)
}
5. 计划验证器
// 内置验证器
- DependencyValidator: 检查步骤依赖关系
- ResourceValidator:   检查资源约束
- TimeValidator:       检查时间约束

// 自定义验证器
type PlanValidator interface {
    Validate(ctx context.Context, plan *Plan) (bool, []string, error)
}

使用方法

环境配置
# 使用 DeepSeek (推荐)
export DEEPSEEK_API_KEY="your-api-key"

# 或使用 Kimi
export KIMI_API_KEY="your-api-key"

# 或使用 OpenAI
export OPENAI_API_KEY="your-api-key"
运行示例
cd examples/planning
go run main.go
预期输出
╔════════════════════════════════════════════════════════════════╗
║          Planning 智能规划示例                                  ║
║   展示任务分解、计划生成、验证和执行的完整流程                    ║
╚════════════════════════════════════════════════════════════════╝

✓ LLM 提供商: deepseek

【场景 1】基础规划流程
════════════════════════════════════════════════════════════════

场景描述: 使用 SmartPlanner 创建和管理计划

1. 创建智能规划器
────────────────────────────────────────
  ✓ SmartPlanner 创建成功
  - 最大深度: 3
  - 超时时间: 2 分钟
  - 内置策略: decomposition, backward_chaining, hierarchical
  - 内置验证器: dependency, resource, time

2. 创建计划
────────────────────────────────────────
  目标: 开发一个用户注册功能,包括表单验证、密码加密和邮件通知

  ✓ 计划创建成功 (耗时: 约 20-30s)

  计划 ID: plan_xxxxxxxxxx
  目标: 开发一个用户注册功能,包括表单验...
  策略: (由 DecompositionStrategy 应用)
  状态: ready
  步骤数: 5

  步骤列表:
    1. [action] Prepare Analyze Current State
       Prepare data and context for Analyze Current State
    2. [analysis] Execute Analyze Current State
       Analyze the current situation and gather context
    3. [validation] Verify Analyze Current State
       Verify results of Analyze Current State
    4. [action] Plan Execution
       Execute the main action to achieve the goal
    5. [validation] Validate Results
       Validate that the goal has been achieved

3. 验证计划
────────────────────────────────────────
  ✓ 计划验证通过

【场景 2】任务分解
════════════════════════════════════════════════════════════════
...

API 参考

PlanConstraints
字段 类型 说明
MaxSteps int 最大步骤数
MaxDuration time.Duration 最大执行时间
RequiredSteps []string 必须包含的步骤
ForbiddenSteps []string 禁止的步骤
Resources map[string]any 可用资源
Priority int 优先级
StepType
类型 说明
StepTypeAnalysis 分析步骤
StepTypeDecision 决策步骤
StepTypeAction 执行步骤
StepTypeValidation 验证步骤
StepTypeOptimization 优化步骤
PlanStatus
状态 说明
PlanStatusDraft 草稿
PlanStatusReady 就绪
PlanStatusExecuting 执行中
PlanStatusCompleted 已完成
PlanStatusFailed 失败
PlanStatusCancelled 已取消

扩展阅读

Documentation

Overview

Package main 演示 Planning 包的使用

本示例展示: 1. SmartPlanner - 智能规划器的创建和配置 2. Plan - 计划的创建、验证、优化和执行 3. PlanningAgent - 规划 Agent 的使用 4. TaskDecompositionAgent - 任务分解 Agent 5. 多种规划策略的应用

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL