用户手册

规划与执行

规划与执行工作流将一项工作分给两种角色:规划会话负责准备和验收工作,一个或多个执行会话负责具体实施。本章介绍如何从菜单或会话中启动工作流、确认任务拆分、选择工作目录,以及跟踪工作流的进度。

1. 工作流的运行方式

工作流包含两种角色,每个角色都以独立的会话显示在左栏中:

  • 规划与验收。规划会话研究任务和项目,为执行会话编写任务说明,并验收每次的结果。在结果合格之前,它会不断要求修改;只有核查了实际改动和验证依据后,才会验收通过。
  • 执行。执行会话完成分配的任务并汇报结果。修改要求会发给同一个执行会话,它在各轮之间保留上下文。

在左栏中,执行会话显示为规划会话的子会话。两个会话都以会话视图运行。两种角色互发的消息会显示发送方的智能体图标、会话名称和角色(「规划」或「执行」),因此在任一对话中都能看到双方的往来。

两种角色都需要使用支持会话视图的智能体:Claude Code、Codex、OpenCode、Pi 或 OMP。规划会话和执行会话可以使用不同的智能体、模型和推理强度。

你可以随时查看、答复或中断任一会话。任一角色发出的权限请求仍需等待你答复。

2. 从菜单启动

打开项目、分组或会话的右键菜单(或会话的「新建子会话」子菜单),选择「新建规划/执行会话…」。对话框包含以下内容:

  • 「创建位置」:规划会话的创建位置。执行会话会创建在规划会话之下。
  • 「任务说明」:描述任务、要求和验收标准。可以粘贴图片,图片会随规划会话的任务以及执行会话的第一份任务说明一起发送。
  • 「自动拆分多个任务」:见 §4。
  • 「规划与验收」和「执行」:分别设置每种角色的智能体(「会话类型」)、「模型」和「推理强度」。可选的模型和推理强度来自所选的智能体。对话框会记住你上次为每种角色所做的选择。
  • 「工作目录路径」和目录选项:见 §5。

选择「创建并启动」即可启动规划会话。方案就绪后,规划会话会创建执行会话。仅打开或取消对话框不会创建任何内容。该对话框有自己的地址,因此复制链接、刷新页面或使用后退和前进时,对话框都不会丢失。

3. 从会话中启动

在 VelaTerm 启动的任何会话中运行:

vspawn --plan-execute \
  --plan-agent claude --plan-model opus --plan-effort high \
  --exec-agent codex --exec-model gpt-5.5 --exec-effort medium \
  "Implement the agreed changes and verify all acceptance criteria"

在 Claude Code 中,/vspawn --plan-execute <task> 的效果相同;在 Codex 中,请使用 $vspawn --plan-execute <task>。技能会先根据当前对话写出一份自成一体的任务,再启动工作流。这些技能需要先安装 Vela 技能(「设置 ▸ 通用」)。

新的规划会话会创建在运行该命令的会话之下。请求会先打开会话派生与 Git 协作 §4 中介绍的确认卡片,你可以在其中检查并修改任务以及两种角色的设置。

选项含义
--plan-agent、--plan-model、--plan-effort规划会话的智能体、模型和推理强度
--exec-agent、--exec-model、--exec-effort执行会话的智能体、模型和推理强度
--claude、--codex、--model、--effort未指定角色专用选项时,用于规划会话
--split-tasks让规划会话提出多个任务(§4)
--worktree-mode none|shared|each所有角色的目录模式(§5);会覆盖 --worktree
--cwd <path>工作流的工作目录和仓库
--yes跳过最初的确认卡片;任务拆分方案仍会显示以供确认

未明确指定智能体时,从 Claude、Codex、OpenCode、Pi 或 OMP 会话启动的规划会话使用相同的智能体;从其他会话启动时则使用 Claude Code。所选智能体不支持的模型或推理强度会在任何会话启动前被拒绝。

新会话看不到发起它们的那段对话。请在任务中写明目前已做出的决定、已有的改动、约束条件以及要求的交付位置。

4. 拆分为多个任务

在对话框中开启「自动拆分多个任务」,或在 vspawn --plan-execute 中加上 --split-tasks。规划会话随后会调查这项工作,并提出 1 到 12 个相互独立的任务。在你确认之前,不会启动任何执行会话。

拆分方案会在「确认执行任务」对话框中打开:

  • 在列表中选择一个任务,即可编辑其「会话名称」「任务说明」、智能体、「模型」和「推理强度」。在任务之间切换时,已做的编辑会保留。
  • 「移除任务」会移除一个任务;「撤销移除」可将其恢复。至少需要保留一个任务。
  • 启动按钮(「启动 N 个子会话」)会为每个任务创建一个执行会话。
  • 关闭对话框后,拆分方案仍会等待确认,屏幕上会保留一个「确认执行任务」链接,用于重新打开对话框。取消方案会停止工作流,且不会创建执行会话。
  • 该对话框有自己的地址,刷新后仍会保留;但尚未确认的编辑会在刷新时丢失。

通过技能启动并拆分任务时,技能会添加 --yes,因此只会出现这一次最终确认。确认时可以修改每个执行会话的设置,但不能修改规划会话的设置,因为规划会话已在运行。

同一个规划会话接收所有执行会话的汇报,并逐项验收各个任务,每个任务有各自的修改轮次。只有所有任务都验收通过后,整个工作流才算完成。

拆分任务时,应避免多个任务修改同一批文件。每个执行会话都运行自己的智能体进程,因此请结合机器的资源情况决定任务数量。

5. 工作目录与工作树

目录选项适用于工作流中的所有角色:

选项--worktree-mode结果
「使用当前目录」none所有会话都在指定的目录中工作
「共用一个工作树」shared规划会话和所有执行会话共用一个新的工作树和分支
「各用一个工作树」each规划会话和每个执行会话各自使用独立的工作树和分支

新工作树基于当前提交创建,不包含未提交的改动。如果无法创建工作树,相应的会话不会启动,也不会改用其他目录。在命令行中,单独使用 --worktree 等同于 shared。

在你合并之前,成果会一直保留在工作树中。在会话上使用「Git ▸ 合并…」即可合并分支(见会话派生与 Git 协作 §6)。工作流不会自行合并、推送或删除工作树。

6. 跟踪进度

  • 规划会话的对话会实时显示每一次汇报和修改要求。执行会话工作期间,规划会话会等待它们的汇报。
  • vflow status <workflow-id> 显示工作流的状态、任务、会话和当前轮次。工作流 ID 会出现在工作流消息中。
  • vflow stop <workflow-id> 会停止后续轮次,并要求正在运行的会话停止。停止整个工作流会停止其所有任务;停止单个任务不会影响其他任务。
  • vstat 显示哪些会话正在工作、正在请求权限或处于等待状态。处于等待状态的执行会话不一定已完成任务;只有规划会话验收通过才算完成。
  • 如果某个角色结束了回合却没有移交工作,工作流就会进入阻塞状态。请查看对话,答复需要处理的内容,然后从规划会话继续。

这些命令的说明见会话命令。