Plan 任务计划
wescode 内置 Plan 系统,帮助 AI 将复杂任务分解为可追踪的步骤。
什么是 Plan
Plan 是 AI 用来组织多步任务的线性清单。当用户提出复杂需求时,AI 会创建一个 Plan 来跟踪进度。
基本流程
用户:"重构 UserService,拆分成独立模块"
AI 创建 Plan:
□ 分析现有 UserService 结构
□ 设计新的模块划分方案
□ 创建新文件和接口
□ 迁移代码到新模块
□ 更新所有调用方
□ 运行测试确认无回归
□ 清理旧代码
Plan 状态
生命周期
planning → active → completed / terminated
| 状态 | 含义 |
|---|---|
| planning | 正在制定计划 |
| active | 正在执行步骤 |
| completed | 所有步骤完成 |
| terminated | 异常终止(中断/预算用尽) |
步骤状态
| 状态 | 含义 |
|---|---|
| pending | 等待执行 |
| in_progress | 正在执行 |
| done | 已完成 |
| skipped | 已跳过 |
Plan 工具
创建计划
plan(action=create, steps=[
"分析现有代码结构",
"设计新的模块划分",
"创建文件并迁移代码",
"更新调用方",
"运行测试",
"清理旧代码"
])
更新步骤
plan(action=update, task_id=0, status=done)
plan(action=update, task_id=1, status=in_progress)
完成计划
plan(action=complete)
前端展示
Plan 面板
在 Chat 面板中查看 Plan 进度:
- 步骤列表及状态图标
- 完成比例(如 3/6)
- 当前正在执行的步骤高亮
状态图标
| 图标 | 含义 |
|---|---|
| ○ | 待执行 |
| ◉ | 执行中 |
| ● | 已完成 |
| ⊘ | 已跳过 |
Plan 与 Run 的关系
Plan 不终止 Run
plan(action=complete) 标记计划完成,但 不会终止 当前 Run。AI 可以在完成计划后继续工作。
异常终止
当 Run 异常终止时,Plan 会被标记为 terminated:
| 终止原因 | Plan 行为 |
|---|---|
| 用户中断 | terminated (run_interrupted) |
| 预算用尽 | terminated (budget_exhausted) |
| 循环检测 | terminated (cycle_detected) |
| 引擎错误 | terminated (各种错误码) |
Nudge 机制
Run 准备结束但还有待执行步骤时:
- AI 收到提醒(最多 3 次)
- 提醒包含待执行步骤列表
- 3 次提醒后仍未完成 → Run 正常终止,步骤保留原状
Plan 持久化
保存位置
Plan 作为 SessionState 的子字段持久化:
~/Library/Application Support/wescode/
cells/ws-{hash}/
.plans/ ← Plan artifact
state.db ← Plan 状态
跨会话恢复
- Plan 状态随 CognitiveSettlement 持久化
- 下次对话可以继续查看 Plan 进度
- terminated 状态的 Plan 可以恢复(resume-then-complete)
使用场景
适合使用 Plan 的任务
| 场景 | 示例 |
|---|---|
| 大型重构 | 拆分模块、迁移架构 |
| 新功能开发 | 多文件多步骤实现 |
| Bug 调查 | 系统性排查步骤 |
| 代码审查 | 逐模块审查清单 |
| 项目初始化 | 搭建项目骨架 |
不需要 Plan 的任务
- 单文件简单修改
- 快速问答
- 代码解释
- 简单重命名
高级特性
委派与 Plan
使用 delegate_task 时,子 Agent 可以有自己的 Plan:
主 Plan:重构数据层
1. ✓ 分析现有结构
2. → 委派:重构 UserRepository(子 Agent Plan)
3. → 委派:重构 OrderRepository(子 Agent Plan)
4. □ 整合测试
Plan 与 QualityGate
done 状态的步骤会触发验证:
- AI 在标记
done前执行验证命令 - 验证失败不会自动回滚
- AI 决定是否需要修复
注意事项
- Plan 是线性清单,无依赖关系(DAG 已移除)
- 执行顺序 = 数组顺序
- AI 驱动状态迁移,引擎不自动推进
- Plan 进度真实反映工作状态,引擎不伪造完成
- 多步任务时 Plan 提供可追踪的进度反馈