Skip to content

计划模式指南

计划模式是 MyDeskBot 的高级功能,支持复杂任务规划和多步骤执行。本指南解释如何利用计划模式将复杂的开发任务分解为可管理的步骤。

什么是计划模式?

计划模式允许 MyDeskBot:

  • 将复杂任务分解为更小的、可执行的步骤
  • 创建详细的实施计划
  • 自动执行多步骤工作流程
  • 跟踪进度并优雅地处理错误

启用计划模式

基本配置

在配置中启用计划模式:

yaml
# .mydeskbot/config.yaml
planMode:
  enabled: true
  maxSteps: 20
  timeout: 300 # 5 分钟

高级设置

微调计划模式行为:

yaml
planMode:
  enabled: true
  maxSteps: 50
  timeout: 600 # 10 分钟
  retryAttempts: 3
  confirmationRequired: true # 执行前需要批准

  # 步骤执行设置
  executeStepsAutomatically: true
  parallelExecution: false # 默认按顺序执行步骤

  # 错误处理
  onError: "pause" # pause, continue, abort
  rollbackOnError: true

使用计划模式

激活计划模式

通过聊天触发计划模式:

"请实现一个用户认证系统,包括登录、注册和密码重置功能。使用计划模式来分解此任务。"

或使用显式命令:

"@plan 创建一个带有完整 CRUD 操作的待办事项 REST API"

计划生成

激活计划模式后,MyDeskBot 将:

  1. 分析请求:理解范围和要求
  2. 分解任务:将请求分为离散的步骤
  3. 创建计划:呈现详细的执行计划
  4. 请求确认:在继续之前请求批准

示例计划输出:

用户认证系统计划:

1. 创建用户模型/架构
2. 实现用户注册端点
3. 实现用户登录端点
4. 实现密码重置功能
5. 添加邮箱验证
6. 实现 JWT 令牌生成
7. 添加认证中间件
8. 为所有端点创建单元测试
9. 更新 API 文档
10. 部署到预发布环境

预计时间:2-3 小时

计划配置

自定义计划模板

定义可重用的计划模板:

yaml
planMode:
  enabled: true
  templates:
    - name: "web-api"
      description: "Web API 开发模板"
      steps:
        - "定义 API 端点和架构"
        - "创建数据库模型"
        - "实现控制器"
        - "添加中间件"
        - "编写单元测试"
        - "创建集成测试"
        - "文档化 API"
        - "部署到预发布环境"

    - name: "react-component"
      description: "React 组件开发模板"
      steps:
        - "定义组件属性和状态"
        - "创建组件结构"
        - "实现样式"
        - "添加单元测试"
        - "创建 Storybook 故事"
        - "文档化组件用法"
        - "集成到应用程序"

计划约束

设置计划执行的约束:

yaml
planMode:
  enabled: true
  constraints:
    maxExecutionTime: 3600 # 1 小时
    maxApiCalls: 100
    maxFileModifications: 50
    allowedFileTypes:
      - ".js"
      - ".ts"
      - ".jsx"
      - ".tsx"
      - ".md"
    restrictedDirectories:
      - "/production"
      - "/secrets"

步骤执行

手动 vs 自动执行

控制步骤执行方式:

yaml
planMode:
  enabled: true
  execution:
    mode: "interactive" # automatic, interactive, manual

    # 交互模式设置
    interactive:
      askBeforeEachStep: true
      showDiffBeforeApply: true
      requireFinalConfirmation: true

    # 自动模式设置
    automatic:
      executeWithoutPrompt: true
      logAllActions: true
      sendCompletionNotification: true

步骤依赖关系

定义步骤之间的依赖关系:

yaml
planMode:
  enabled: true
  stepDependencies:
    - step: "implement-login"
      dependsOn:
        - "create-user-model"
        - "setup-database-connection"

    - step: "add-jwt-authentication"
      dependsOn:
        - "implement-login"

    - step: "create-unit-tests"
      dependsOn:
        - "implement-login"
        - "add-jwt-authentication"

高级计划功能

条件步骤

向计划添加条件逻辑:

yaml
planMode:
  enabled: true
  conditionalSteps:
    - condition: "projectType === 'react'"
      steps:
        - "create-react-component"
        - "add-storybook-story"

    - condition: "projectType === 'nodejs'"
      steps:
        - "create-express-route"
        - "add-middleware"

    - condition: "needsDatabase"
      steps:
        - "setup-database-connection"
        - "create-models"

并行执行

并行执行独立步骤:

yaml
planMode:
  enabled: true
  parallelExecution:
    enabled: true
    maxParallelSteps: 5

    # 定义哪些步骤可以并行运行
    parallelGroups:
      - steps:
          - "create-models"
          - "setup-database-connection"
          - "configure-logging"
        maxConcurrent: 3

      - steps:
          - "write-unit-tests"
          - "create-documentation"
        maxConcurrent: 2

与其他功能的集成

计划模式和 RAG

使用 RAG 上下文增强计划:

yaml
planMode:
  enabled: true
  ragIntegration:
    enabled: true
    contextSources:
      - "similarProjects"
      - "bestPractices"
      - "frameworkGuidelines"

    # 使用 RAG 来通知计划决策
    adaptivePlanning:
      enabled: true
      adjustBasedOn:
        - "codebaseComplexity"
        - "teamExperience"
        - "projectRequirements"

计划模式和持续 AI

与持续 AI 工作流结合:

yaml
continuousAI:
  enabled: true
  workflows:
    - name: "automated-feature-development"
      trigger:
        eventType: "featureRequest"
      actions:
        - action: "createPlan"
          mode: "plan-mode"
          template: "web-api"

        - action: "executePlan"
          confirmationRequired: false

        - action: "reviewResults"
          rules:
            - "code-quality"
            - "security-best-practices"

计划监控和控制

进度跟踪

监控计划执行进度:

yaml
planMode:
  enabled: true
  monitoring:
    enabled: true
    trackProgress: true
    updateFrequency: "30s"

    notifications:
      onStepCompletion: true
      onPlanCompletion: true
      onError: true
      progressUpdates: "hourly"

暂停和恢复

控制计划执行:

yaml
planMode:
  enabled: true
  executionControl:
    pauseCapability: true
    resumeCapability: true
    cancelCapability: true

    # 保存状态以便恢复
    statePersistence:
      enabled: true
      storageLocation: "~/.mydeskbot/plans"

示例计划

Web API 开发计划

yaml
planMode:
  enabled: true
  examples:
    - name: "todo-api"
      description: "待办事项应用的 REST API"
      steps:
        1:
          name: "define-api-spec"
          description: "创建 OpenAPI 规范"
          estimatedTime: "30m"

        2:
          name: "setup-project"
          description: "初始化项目结构"
          estimatedTime: "15m"

        3:
          name: "create-models"
          description: "定义数据库模型"
          estimatedTime: "45m"

        4:
          name: "implement-controllers"
          description: "创建路由处理程序"
          estimatedTime: "2h"

        5:
          name: "add-validation"
          description: "实现输入验证"
          estimatedTime: "1h"

        6:
          name: "write-tests"
          description: "创建单元和集成测试"
          estimatedTime: "2h"

        7:
          name: "document-api"
          description: "更新 API 文档"
          estimatedTime: "1h"

        8:
          name: "deploy-staging"
          description: "部署到预发布环境"
          estimatedTime: "30m"

React 组件计划

yaml
planMode:
  enabled: true
  examples:
    - name: "dashboard-component"
      description: "复杂的仪表板 React 组件"
      steps:
        1:
          name: "design-component-api"
          description: "定义属性、状态和回调"
          estimatedTime: "30m"

        2:
          name: "create-component-structure"
          description: "实现基本组件结构"
          estimatedTime: "1h"

        3:
          name: "add-styling"
          description: "实现组件样式"
          estimatedTime: "1h"

        4:
          name: "implement-functionality"
          description: "添加交互功能"
          estimatedTime: "2h"

        5:
          name: "add-error-handling"
          description: "实现错误边界和处理"
          estimatedTime: "45m"

        6:
          name: "write-tests"
          description: "创建单元和集成测试"
          estimatedTime: "1.5h"

        7:
          name: "create-storybook"
          description: "添加 Storybook 故事"
          estimatedTime: "1h"

        8:
          name: "document-usage"
          description: "创建使用文档"
          estimatedTime: "30m"

故障排除

常见问题

计划生成失败

  1. 需求不明确:提供更具体的细节
  2. 任务过于复杂:将任务分解为更小的部分
  3. 缺少上下文:确保有足够的代码库上下文

执行错误

  1. 权限问题:检查文件和目录权限
  2. 依赖问题:验证所有依赖都可用
  3. 资源限制:调整超时和资源设置

调试命令

bash
# 查看当前计划状态
mydeskbot plan status

# 列出可用的计划模板
mydeskbot plan templates

# 执行特定计划
mydeskbot plan execute --template=web-api

# 暂停当前计划执行
mydeskbot plan pause

# 恢复暂停的计划
mydeskbot plan resume

最佳实践

计划设计

  1. 从简单开始:从基本计划开始,然后添加复杂性
  2. 具体明确:明确定义每个步骤的目标
  3. 估算时间:提供现实的时间估算
  4. 包含测试:始终包含测试步骤

执行控制

  1. 使用交互模式:用于复杂或高风险操作
  2. 监控进度:跟踪执行状态
  3. 审查更改:在应用更改前检查差异
  4. 先备份:在进行重大更改前创建备份

模板管理

  1. 组织模板:按项目类型或领域分组
  2. 版本控制:跟踪模板更改
  3. 共享模板:向团队提供有用的模板
  4. 改进模板:根据结果持续改进

下一步

掌握计划模式后,探索这些相关指南: