任务

任务将持久项目计划与原生 OpenCode 对话结合。协调者规划并委派;任务树记录依赖和结果。已保存计划、已接纳输入和观察到的执行是不同事实。

先创建,再显式启动

  1. 打开右侧面板的任务,选择创建任务。
  2. 填写任务要做什么?,检查从首句预填的标题(最多 60 个字符)。
  3. 在时间下选择一次或每天。对于每日工作,验证显示的时区;更改允许输入 IANA 时区。
  4. 展开选项,设置剧本、备注、代理和模型、任务会话、已保存简述及可选关注对话。选择比较两个模型时,模型 A 和模型 B 选择器会显示在主表单中。
  5. 选择创建。选择新条目,准备好时再使用其独立 ▶ 操作:一次性工作为启动任务,每日日程为启动日程 {id}。

创建绝不启动工作。一次性任务处于已准备状态;每日日程处于暂停状态。创建和保存简述都不会启用计时器。创建以所选项目/Location 为作用域,冻结请求的配置和任务会话策略。验证信息位于受影响字段旁;若拒绝信息明确说明未发送任何内容,草稿会保留供修改。一次性任务的协调者也可以为你准备一个单独的任务,例如后续任务:它会以已准备状态出现在列表中,并且与其他任务一样,只能通过其 ▶ 操作启动。

剧本

剧本 预期工作
灵活任务 协调者针对目标选择考虑依赖的计划。
调试 诊断、实现、独立标准/规格审查和重新验证;解决阶段继续使用实现者。
探索 梳理不确定性,通过人工提问逐步完成有界决策。
产品交付 协调产品分析、架构、实现和质量角色。
比较两个模型 使用相同的简述在模型 A 和模型 B 上运行同一任务,然后由盲评裁判以中性标签为两者评分并给出结论:模型 A 胜出、模型 B 胜出、表现相当或无法确定。

对于比较两个模型,两个模型都必须指定且必须不同;仅思考级别不同并不算不同的模型。除非你另行选择,裁判使用协调者的模型;当它与 A 或 B 相同时,表单会发出警告,因为这可能使比较产生偏差。概览会显示结论、两个模型的名称以及各项标准的评分。

剧本指导协调;不会绕过原生权限或保证成功。请通过 CodeNomad 中断停靠区回答探索的决策问题,以记录显式界面回答,而非要求智能体冒充批准。

跟踪任务树并阅读结果

  1. 选择任务标题。前置箭头使列表保持打开;标题字段打开临时选择器。
  2. 选择摘要(眼睛)打开中央概览,或选择任务节点查看其精确结果、简述和证据。
  3. 沿依赖链接和报告阅读;需要协调者对话记录时使用打开对话。
  4. 在需要你处理下选择回答,打开请求方的对话和中断停靠区。
指示 能证明的事实
已分配 输入已接纳;不能证明模型消费/工作/完成。
活动 已观察到原生活动。
等待中 已声明依赖尚未满足。
受阻 已报告阻碍,不一定是需要你回答的问题。
等待你的输入 打开的原生 Form/问题或权限需要回答;它会列在需要你处理下。
已完成 已记录任务结果;请检查证据和剩余原生工作。
失败 / 已撤回 任务失败,或协调者替换或放弃了它。

图中包含已完成和已撤回的工作。撤回任务本身不会停止其对话。在一次性任务中,协调者可以单独停止其作为原生子代理启动的已撤回任务的对话,而不影响其他任务。进行中是任务生命周期状态,不证明协调者当前正在运行。完整文字属于中央阅读器,而非面板任务列表;技术详情折叠标识符和请求的执行信息。

简报与更新请求

协调者会收到指令,在初始计划后、任务结算后、等待人工时及最终报告前发布项目简报。这是撰写的评估,而非实时活动计数器或保证定期发送的心跳。地图自简报发布后发生变化时,会有提示。

使用工具栏下的请求更新获取协调者新评估,然后阅读摘要。**已请求更新…**表示请求待处理,而非已回答。发送未确认不授权自动重发:请先打开协调者对话,再另行提出新请求。这是普通原生输入,不是只读沙箱;协调者保留正常权限。

配置、委派和深度

  1. 使用任务齿轮或设置 → 任务编辑新任务默认设置。
  2. 在应用范围下选择所有任务或某个剧本,然后设置任务会话,并在代理和模型下为每个角色设置一行(先是协调者,然后是该剧本的各个角色)。每项选择都会立即保存;没有保存按钮。
  3. 在剧本范围中,各行显示标有全局的全局值。更改某个字段会以这些值为起点自定义该角色;其还原图标会重新使用全局值。重置(需确认)只清除所显示范围的代理和模型。
  4. 创建时使用选项 → 代理和模型指定请求的配置;使用已保存的默认设置会恢复已保存的配置。
  5. 原生递归限制请编辑子会话嵌套深度 → 为项目指定的深度。按 Enter 或离开字段会保存已更改的有效值;继承会立即保存;Escape 会放弃未保存的值。
设置 范围与影响
新任务默认设置 配置范围的默认值,仅适用于新建任务;剧本例外覆盖通用默认值。
智能体 / 模型 / 思考 随创建记录的协调者/角色请求选择;不会为满足后续工作静默切换繁忙参与者。每日运行复用冻结的请求配置。
原生子代理 任务会话在协调者下使用原生 subagent/all 智能体。
独立会话 声明的任务会话使用 primary/all 智能体和独立对话;不禁用内部原生辅助智能体。
子会话嵌套深度 该处全部 OpenCode 对话的项目配置,而非仅任务。留空为继承。保存不会重新加载 OpenCode 或更改运行中的对话。

原生默认值与全局不同:前者请求 OpenCode 自身的默认值,后者继承全局选择;在剧本范围中选择原生默认值仍是显式例外。会检查目录可用性;请求的配置不证明对话当前实际使用的配置。两种任务模式下,内部辅助调用仍受原生权限和配置深度约束。

被拒绝或未确认的选择绝不会重新发送:会重新显示已存储的值,只有在无法读取这些值时才会出现重新加载。如果深度更改未确认,你的值会保留;请先使用刷新项目深度,再进行其他更改。不要将 OpenCode 有效深度未知解释为零或禁用。

复用已保存简述

  1. 创建时展开选项 → 从已保存的简述开始,选择已保存简述。
  2. 创建前检查复制的目标、备注、剧本、配置和委派。
  3. 使用另存为简述为可复用草稿命名。选中的一次性任务(包括已完成任务)也提供另存为简述。

简述保存指令和请求选择,不保存任务计划、结果、对话、日程时钟或执行权限。加载只填入普通创建草稿;不会启动或安排任何工作。移除简述会保留现有任务/对话。设置 → 任务 → 已保存的简述管理资料库;如果资料库无法读取,重置已保存的模板库(需确认)移除的是已保存简述,而非执行。日程本身没有另存为简述操作。

每日时间、补跑和关注对话

每日日程使用已保存 IANA 时区和当地民用时间,而非经过 24 小时的间隔。时间以日程时区显示,与查看者时区不同时会标注。每次运行拥有自己的协调者和隔离任务图;所选日程显示当前任务树及日期/结果历史。选择过去运行可在中央阅读。历史最多保留 30 个结果。

情况 调度行为
错过多个到期日 仅运行晚于已结算每日标记的最新到期日,不为每个错过日期积压运行。
夏令时向前跳的缺口 推进到之后第一个有效分钟;日末缺口会跨越日期边界。
重复时钟小时 使用第一次出现的时间;不会创建第二次每日运行。
整个民用日期被跳过 该日没有运行。
时钟后拨 不会让已处理日期再次到期。
现有运行仍待处理 不会与新的每日运行重叠。

创建时间也限制符合条件的每日工作;启动新日程不授权处理其存在之前的日期。提供时,立即运行会启动独立手动运行;不会替换每日时钟或绕过待处理运行。显示的下次时间只是推算,不保证准时执行。

**关注的对话(可选)**从选定对话添加有界上下文。只有完成的运行才推进已处理消息游标;失败/中断运行不会静默消费该上下文。若指令加上下文超出容量,请缩短指令或移除关注对话,而非假定会读取无限历史。

生命周期与服务重启

组件 关闭意味着什么
CodeNomad 项目标签页 在 CodeNomad 中关闭该项目;不停止原生工作或 OpenCode 服务,重新打开即可再次找到会话。
整个窗口、退出应用或重新加载渲染器 保留项目连接以便恢复;不停止原生工作或 OpenCode 服务。
CodeNomad 后端 不停止 OpenCode。一次性 CodeNomad 协调依赖后端存在;不要假定关闭后仍可派发/控制新的一次性任务。
运行中的每日日程 时钟和运行执行在 OpenCode 插件/服务中进行,包括 CodeNomad 界面和后端都关闭时。执行主机和 OpenCode 服务必须持续运行。
OpenCode 服务重启 丢失进程内日程作业。期望运行的日程变为已中断,直到显式继续;重新打开 CodeNomad 不会重新启用它。

重启后检查待处理运行,准备好后选择继续。继续会协调现有运行,不会将协调者输入发送两次;不保证继续被中断的原生轮次。被重启切断的轮次可能以无报告结束,并显示因重启而中断。不要用重启来重试工具副作用。

任务可在桌面应用和独立的 CodeNomad 服务器上运行。面板显示任务控制台不可用时,其消息会指出原因:

原因 处理方法
OpenCode 工作区尚未就绪 重新连接项目,然后刷新。
OpenCode 尚未加载任务插件 稍后刷新;如果问题仍然存在,请在设置 → OpenCode 中使用重新加载 OpenCode 配置。
OpenCode 无法加载任务插件 在插件列表中查看其错误,修复后刷新。
CodeNomad 服务器无法打开其本地任务连接(127.0.0.1) 检查服务器日志;重新加载 OpenCode 无济于事。

暂停、停止和不确定结果

  1. 选择条目,操作前检查当前状态和对话。
  2. 使用暂停图标作可恢复暂停,或使用停止图标并确认作终止停止。一次性任务提示为暂停任务和永久停止任务;日程提示会指明日程。
  3. 结果未确认时,使用检查状态 / 检查控制状态读取已有结果。不要以替换操作绕过不确定性。
  4. 对一次性操作,标题栏的刷新并重新发送未确认的操作会先检查状态,仅在你显式点击时重发仍未确认的同一精确操作。

一次性暂停会中断任务原生会话族并挂起协调;停止还会取消排队的会话族输入/交付,且为终止状态。这些操作有边界:**部分子代理可能仍在运行。**表示停止不完整。检查保留结果并使用其显式重试,而非假定所有 Shell/工具影响已取消。继续会告知协调者哪些后代被中断;由它决定如何继续工作。

每日暂停/停止会取消调度并请求中断已注册根参与者,包括协调者和独立专家,但不能证明这些对话或其后代已停止。请检查原生会话族。停止是终止状态:停止的日程不能启动、继续或立即运行。检查本次运行会协调待处理运行,不会重新发送。临时计划检查失败会显示上次失败并自动重试;用户控制回复丢失不会引发自动控制重发。

对于空闲但无报告的一次性协调者,主 ▶ 操作可验证并恢复;任务符合条件时有针对性的缺失报告恢复。恢复先检查原生活动、后代和等待;活动未知时拒绝接纳。不会重放分配或替换计划。打开对话以解决未完成问题、权限、Shell 或后台工作。

创建未确认时,窗口保留已提交请求并禁用该项目进一步创建;工作树删除可能仍被阻止。刷新只读取状态。关闭/重新打开编辑器不能修复。重新加载窗口前检查任务列表:重新加载会清除本地锁,不证明创建失败。不要在重新加载或重启后盲目创建重复任务。

编辑、删除和清理对话

对可编辑的一次性任务使用编辑所选任务;冲突时关闭/重新打开编辑器以加载当前修订,不要覆盖。每日日程不提供编辑/删除控件。

  1. 对不再需要的一次性任务,选择**删除所选任务…**并检查确认内容。
  2. 确认前可选中同时删除为此任务创建的专家会话。
  3. 查看会话清理中的已移除/保留/待处理数量。提供重试时,只重试剩余的已记录清理。

删除任务不同于停止;请先停止并检查剩余工作。协调者和复用对话会保留。共享、移动、有子会话或无法验证归属的专家也可能保留。部分清理不会回滚,也不会在后台静默完成。已完成清理历史仍可在概览阅读器中查看。

原生工作和服务控件请参阅权限、对话和 OpenCode 设置。