长时间运行的工作
对于需要多轮分析、修改、验证和回访的任务,可以把它定义为长期目标,而不是依赖一条很长的消息。EvoX 会围绕目标保留目标正文、轮次、预算、进度和停止原因,并在会话或编码界面持续显示状态。
启动目标
在编码模式中输入 /goal <目标>,或在支持目标模式的会话中直接说明要达成的结果。若意图还比较模糊,可以先使用 /write-goal <意图>,让内置技能把它整理成可验证的完成契约,再启动目标。
如果预期结果还不清楚,可以先使用 /plan 组织方案,再启动目标。/plan 的实际机制随工作面不同:编码模式使用计划权限和工具门,会话模式输出计划文档,协作模式用于任务规划。因此,文档中可以把它作为“先组织方案”的入口,但不要把三种模式描述成完全相同的执行方式。
启动目标不会扩大 EvoX 的文件、插件或外部服务权限;原有的确认、沙盒和工作区边界仍然生效。
明确完成标准
目标最好写成“完成契约”,让 EvoX 能判断什么时候真的完成。可以包含以下内容:
| 目标要素 | 应包含的内容 |
|---|---|
| 预期结果 | 描述最终要变成什么,而不只是要求 EvoX 执行哪些操作。 |
| 约束范围 | 说明允许访问的项目、目录、工具和外部服务,以及明确不能触碰的范围。 |
| 验证证据 | 指定测试、检查结果、文件状态或其他可观察证据。 |
| 迭代方式 | 说明每次修改后如何复查、重跑或逐项清理待办。 |
| 停止规则 | 遇到需要用户决定、权限不足或外部服务不可用时,停止并报告原因。 |
例如:
把客户端登录流程迁移到新的认证接口,保留现有行为。
完成标准:相关测试全部通过,并在严格类型检查下构建成功。
范围:只修改登录模块和对应测试,不改动无关的基础设施。
每次修改后重新运行相关测试;如果需要扩大范围,先停下来说明原因。
/write-goal 会围绕最终状态、可观察证据、工作边界、迭代方式和停止规则整理目标。目标越具体,长时间运行时越容易判断进度,也越不容易在没有证据的情况下误报完成。
示例目标
适合长期目标的请求通常有明确的结果和验证方式,例如:
修复结账流程中当前失败的测试。完成后重新运行该测试目录,确认没有失败项;
只修改结账模块和相关测试。如果外部支付服务不可用,记录阻塞原因并停止,不要伪造通过结果。
不适合的写法是“继续优化这个项目”或“把所有问题都修好”:它们没有边界,也没有可以核对的结束条件。
调整运行中的目标
目标状态条会显示当前目标、已用轮次、进度、预算和终止原因。Chat 和 Code 都可以看到目标状态;Code 顶部提供明确的停止入口。
活动目标应通过目标管理工具读取和修改,而不是重复创建第二个目标:
| 操作 | 用途 |
|---|---|
GetGoal | 查看目标正文、当前轮次、预算、进度和停止原因。 |
SetGoalBudget | 在目标仍然活动时调整轮次或 token 预算。 |
UpdateGoal(replace) | 修改目标正文,同时保留当前运行进度。 |
UpdateGoal(complete / blocked) | 在已验证完成或确实无法继续时结束目标,并记录原因。 |
当前版本确认有停止入口,但没有确认所有工作面都提供独立的“编辑目标”或“暂停/继续”按钮。需要改目标正文或预算时,应通过目标管理工具或后续指令处理;暂停/继续是否可见取决于当前模式和版本,不应当作所有会话都保证提供的操作。
下面的示意只保留目标状态和后续指令入口,用来说明信息层级;具体按钮是否出现取决于当前工作面。
并行运行目标
Code 提供“拆分并行”入口:可以一次填写多个子目标,并创建多个独立的本地 Code 会话。每个子会话都有自己的上下文和初始目标,适合把分析、实现和验证拆成并行工作。
这项能力有明确边界:
- 并行创建的是多个 Code 会话,不等同于远程智能体调度。
- 默认使用同一个工作目录来源;并不是每个子目标都会自动拥有独立 worktree。
- 批量拆分要求当前目录是可用的 Git worktree;不满足条件时,EvoX 会阻止创建或提示原因。
Code 还提供受管任务 worktree 的创建、查看、切换和清理面板。worktree 用于隔离文件改动;清理前会处理未提交改动,并在 Git 允许时删除对应的 EvoX 任务分支。拆分并行解决的是会话并行,worktree 解决的是文件隔离和生命周期管理,两者不是同一个功能。
保持唤醒与通知
在支持的 macOS 桌面环境中,可以打开 设置 > 高级 > 运行时防止睡眠,让本机在长任务运行期间保持唤醒。该入口只在 macOS 且系统能力可用时显示,不应理解为所有平台都支持的通用开关;长时间运行还要考虑发热、耗电和系统限制。
EvoX 具备通用桌面系统通知、通知权限检查和打开系统设置的能力。通知正文只应放任务名称和下一步,避免把密钥或敏感数据写进系统通知。当前源码没有确认“目标完成必然触发系统通知”的专属绑定;是否收到提醒还取决于运行面、通知条件和操作系统权限,完整过程应以会话、目标状态或运行记录为准。
与计划任务的区别
计划任务回答“什么时候再运行同一件事”;长期目标回答“为了达到一个结果,下一步该做什么”。二者可以组合,但周期触发器不会替代目标的完成判断。计划任务也不会因为创建了任务就自动生成 worktree;编码任务使用保存时选择的工作区。
相关文档
EvoX 文档 · 功能 · 工作流