长时间运行的工作
对于需要多轮分析、修改、验证和回访的任务,可以把它定义为长期目标,而不是依赖一条很长的消息。EvoX 会围绕目标保留目标正文、轮次、预算、进度和停止原因,并在会话或编码界面持续显示状态。
启动目标
在会话、协作或编码的输入框中,打开 + > 设定目标,确认输入框出现“目标”标签,再填写目标并发送。标签只作用于下一条成功发送的消息;发送后恢复普通输入,不表示正在运行的目标已经停止。
也可以输入 /goal <目标>。只输入 /goal 会先启用目标输入,下一条发送的正文才是目标。目标模式与计划模式互斥:先规划时使用计划模式,确定完成条件后再启动目标。
目标应明确结果、工作范围和验证方式。启动目标不会扩大文件、插件或外部服务权限,原有确认、沙盒和工作区边界继续生效。
明确完成标准
目标最好写成“完成契约”,让 EvoX 能判断什么时候真的完成。可以包含以下内容:
| 目标要素 | 应包含的内容 |
|---|---|
| 预期结果 | 描述最终要变成什么,而不只是要求 EvoX 执行哪些操作。 |
| 约束范围 | 说明允许访问的项目、目录、工具和外部服务,以及明确不能触碰的范围。 |
| 验证证据 | 指定测试、检查结果、文件状态或其他可观察证据。 |
| 迭代方式 | 说明每次修改后如何复查、重跑或逐项清理待办。 |
| 停止规则 | 遇到需要用户决定、权限不足或外部服务不可用时,停止并报告原因。 |
例如:
把客户端登录流程迁移到新的认证接口,保留现有行为。
完成标准:相关测试全部通过,并在严格类型检查下构建成功。
范围:只修改登录模块和对应测试,不改动无关的基础设施。
每次修改后重新运行相关测试;如果需要扩大范围,先停下来说明原因。
/write-goal 会围绕最终状态、可观察证据、工作边界、迭代方式和停止规则整理目标。目标越具体,长时间运行时越容易判断进度,也越不容易在没有证据的情况下误报完成。
查看与控制目标
目标状态条显示目标正文、运行时长、轮次和已提供的进度。将指针移到轮次信息上,可查看本轮运行的预算与轮次上限。这些信息用于查看运行边界,不是独立的预算编辑器。
| 操作 | 实际效果 |
|---|---|
| 编辑 | 打开预填当前目标的对话框。保存后中断当前轮次,并以新目标继续;取消不改变目标。 |
| 暂停 | 中止当前轮次,保留目标与已有改动。 |
| 继续 | 重新发送同一目标,继续处理未完成工作。 |
| 删除 | 确认后停止目标循环并移除状态条,不撤销已经产生的文件修改。 |
等待控制请求返回时,相关按钮会暂时禁用。输入框中的“目标”标签只控制下一条消息,不负责暂停或删除正在运行的目标。
目标完成、遇到阻塞、达到轮次上限和耗尽 token 预算是不同的结束原因。检查结束原因和实际验证结果,不能把状态条消失或停止运行当作任务完成。
当前运行时长与轮次在应用内存中跟踪;不要依赖退出或重启应用来保留这一轮运行状态。需要中断工作时,在会话中保留已完成项目、验证结果与剩余事项,再据此继续。
下面的示意用于解释目标状态的信息层级:
并行运行目标
Code 提供“拆分并行”入口:可以一次填写多个子目标,并创建多个独立的本地 Code 会话。每个子会话都有自己的上下文和初始目标,适合把分析、实现和验证拆成并行工作。
这项能力有明确边界:
- 并行创建的是多个 Code 会话,不等同于远程智能体调度。
- 默认使用同一个工作目录来源;并不是每个子目标都会自动拥有独立 worktree。
- 批量拆分要求当前目录是可用的 Git worktree;不满足条件时,EvoX 会阻止创建或提示原因。
Code 还提供受管任务 worktree 的创建、查看、切换和清理面板。worktree 用于隔离文件改动;清理前会处理未提交改动,并在 Git 允许时删除对应的 EvoX 任务分支。拆分并行解决的是会话并行,worktree 解决的是文件隔离和生命周期管理,两者不是同一个功能。
保持唤醒与通知
支持的 macOS 环境可在 设置 > 高级 > 运行时防止睡眠中保持唤醒。考虑电源与散热;关机、退出应用或网络中断仍会影响本地任务。
工作需要关注时,通过活动列表、系统通知或桌宠查看提醒。系统通知按窗口后台状态、提醒通道和系统通知权限发送,完整结果以会话和目标状态为准,详见通知。
与计划任务的区别
计划任务回答“什么时候再运行同一件事”;长期目标回答“为了达到一个结果,下一步该做什么”。二者可以组合,但周期触发器不会替代目标的完成判断。计划任务也不会因为创建了任务就自动生成 worktree;编码任务使用保存时选择的工作区。
相关文档
EvoX 文档 · 功能 · 工作流