Files
docs/独立任务协作登记.md
T
2026-08-11 20:39:31 +08:00

10 KiB

独立任务协作登记

本文件登记用户可独立打开和查看的 Codex 总控与下属独立任务,不登记子代理。总控负责计划和调度,下属任务保留业务上下文并可自行使用子代理;任务名称始终只是展示标签。

启用门禁

默认对话是普通任务,不进入本登记流程。小任务直接在当前对话完成,不登记、不创建下属独立任务,也不因为任务看起来复杂就自行切换为总控。

只有以下任一条件成立时启用总控模式:

  • 当前稳定 task_id 已登记在下方“总控通道”。
  • 用户或任务启动指令明确声明当前任务是总控,并授权其规划、拆分和调度;尚未登记时必须先核对稳定 ID 并补充总控记录。

“总控下属独立任务”中的任务默认只是执行任务,可以使用自己的子代理,但不能继续创建用户可见的下属独立任务或自行升级为总控。需要升级时必须由用户明确指定并登记。只有已登记总控创建或明确接管的独立任务才进入本表,其他普通对话不登记。普通任务认为需要长期编排时只能先建议切换,用户确认前不得启动本流程。

总控通道

总控通道持有整体计划、任务拆分、共享契约、结果汇总和后续调度。idle、active、blocked 都表示通道可复用;只有 archived 表示不可继续下发。同一 routing_key 只能保留一个未归档任务。

routing_key task_id display_name durable_scope owner status last_update notes
admin-ui.control 019fea7a-979f-7252-8963-70687563385f Admin UI 总控 Admin 页面规范、公共组件、交互一致性和跨模块 UI 治理 Admin UI 总控 active 2026-08-11 后续 Admin UI 规划、拆分与汇总统一复用此 ID
phase3.control.release-acceptance 019fdf57-2f16-7cf1-88f0-a75854ed7629 三期总控|发布与验收 三期发布、测试环境验收、阻断分类与最终汇总 三期总控 idle 2026-08-11 后续三期发布与验收规划、拆分和汇总统一复用此 ID
finance.control 019feaa3-9f10-7ab0-8023-4b121ff9662c 财务总控 财务范围、跨端契约、后端/Admin/Client 协调与汇总 财务总控 active 2026-08-11 后续财务规划、拆分与跨端汇总统一复用此 ID
phase3.acceptance.real-full.control 019fdf0a-4933-7903-8a0c-10018c379f6f 三期真实全量验收总控 三期测试环境真实 HTTP 全量验收、返工复验、结果汇总和后续调度 三期真实验收总控 active 2026-08-11 后续同范围验收规划、拆分和汇总统一复用此 ID

总控编排规则

  • routing_key 按长期职责确定,格式为 <domain>.<unit>.<responsibility>;不包含序号、日期、批次、提交号或本轮动作。
  • 命中未归档总控后直接使用其 task_id 通信;标题相同或不同均不影响寻址。总控开始新一轮工作时改为 active,整体计划暂时没有待调度工作时回到 idle。
  • 总控通道不得使用 completed;一轮工作完成后回到 idle,继续保留复用资格。
  • 用户将任务指定为总控并授权其规划、拆分和执行后,总控可在已确认目标与范围内创建必要的下属独立任务,无需逐项再次确认;超出授权范围仍须用户确认。
  • 永久停用才标记 archived。创建替代通道时,在新旧记录备注中互相写明 ID,不覆盖或复用旧 ID。

总控下属独立任务

下属独立任务负责稳定、可再次进入的业务边界。它可以自行创建和归档内部子代理,但必须由所属总控通过稳定 ID 下发,并将结果回传总控。任务一轮完成后改为 idle 并保留,不自动归档;旧功能修改、返工或补验重新激活原任务。

routing_key task_id parent_routing_key display_name durable_scope status worktree/branch last_update notes

当前暂无符合 thread_source=user 条件的财务总控下属独立任务;后续只登记上述总控创建或明确接管、且未继承总控完整历史的独立对话。

下属任务生命周期

  • planned:已经规划和登记,尚未开始;active:正在执行或等待内部子代理;blocked:存在明确阻断;idle:本轮已回传并等待总控再次下发。
  • 独立任务回传后由总控验收并更新计划。验收通过只把该任务改为 idle,不删除登记、不归档聊天、不改写 task_id。
  • 总控发现旧任务需要修改时,直接向原 task_id 下发并改为 active;独立任务沿用已有上下文理解需求,内部子代理可根据本轮工作重新创建。
  • 只有职责永久撤销、任务损坏、任务被明确替代或用户要求停用时才归档;归档前在备注中说明原因和替代 ID(如有)。

下发容量与上下文门禁

  • 一个下属独立任务同时只能执行一个 work_item_id。active 期间,总控不得继续追加新的执行包;只允许针对当前工作包发送必要纠偏、取消或状态查询。
  • 尚未下发的工作留在总控计划中,不用消息提前堆进执行任务。当前任务必须先回传最终结果或明确阻断,总控验收并改为 idle 后,才能向同一 ID 下发下一工作包。
  • 每个工作包必须具备单一目标、稳定范围、完成条件和回传格式。连续发送“请继续”、把多个目标合并到一个执行包,或在执行中改变职责范围,均视为无效调度。
  • 新建下属独立任务必须使用不继承总控完整历史的用户任务创建方式,并让它运行在同一工作区;初始消息只发送职责、当前工作包、共享契约和文档入口,不复制总控完整聊天记录。
  • 复用前核对 thread_source=user、状态、职责匹配和最近一次回传。thread_source=subagent 即使能跨任务通信,也不是可复用独立任务;它完成当前内部工作后由父任务汇总并归档。
  • 出现完整继承总控历史、近期单轮输入接近模型上下文窗口一半、反复压缩后遗忘事实、响应持续明显变慢或职责漂移时,启动受控换代:当前任务先形成持久化交接摘要,随后创建用户独立后继任务;旧任务归档,新旧记录通过 supersedes_task_id 互相指向。累计 tokens_used 只作负载参考,不单独触发换代。

默认归档策略

  • 总控通道和已登记的 thread_source=user 下属独立任务:默认不归档,一轮完成后转为 idle。
  • thread_source=subagent:完成或中止且结果已被父任务汇总后默认归档;不得登记或重新唤醒为独立任务。
  • 普通用户对话:不纳入本表,由用户按需要归档;不批量恢复,也不因为业务名称相似自动登记。
  • 已归档的真实独立任务只有在职责完全一致且上下文仍健康时才恢复原 ID;不健康时按受控换代创建后继任务。

已归档任务恢复门禁

归档用于收起明确停用的对话,不等于删除任务或废弃其稳定 ID。准备创建独立任务时,在查询总控通道和下属任务之后、实际创建之前,必须先用本机 ~/.codex/session_index.jsonl、~/.codex/state_5.sqlite 和 ~/.codex/sessions/ 检查是否存在可恢复的已归档用户任务。

  • 用户明确要求继续、返工或补验原任务,并且前序目标、交付物与上下文属于同一项工作时,取消归档原 task_id,把它重新加入“总控下属独立任务”并标记为 active,再向原 ID 下发。
  • 只是业务域相同但职责边界不同的新事项时,不占用历史任务;由总控复用其他匹配任务或在授权范围内创建新的下属独立任务。标题、关键词或模块相同不能单独作为恢复依据。
  • thread_source=subagent、已确认中止的子代理、已经被新任务明确替代的任务,以及损坏或无法读取的任务不得恢复为独立任务。
  • 恢复动作不得生成新 ID,也不得把旧 ID 转给另一项工作。恢复后仍沿用原任务的范围和上下文,本轮结束后回到 idle;只有满足明确停用条件时才再次归档。

创建前判定顺序固定为:确定总控与子任务 routing_key → 查询未归档总控和下属任务 → 本地检查已归档同任务 → 复用原任务、恢复原任务或判定无匹配 → 核对总控的范围内拆分授权 → 创建并登记 → 下发。

登记规则

  • 总控和下属独立任务都必须登记稳定 routing_key;下属任务还必须登记 parent_routing_key 和可长期识别的 durable_scope,并作为后续复用的强制路由。未由已登记总控创建或明确接管的普通对话不得登记。
  • 本表只登记本机元数据为 thread_source=user 的用户独立任务;通过子代理创建接口或全量历史分叉产生的 thread_source=subagent 不得登记,完成或中止后由父任务汇总并归档。
  • 独立任务创建成功并获得平台返回的稳定 ID 后立即登记;没有稳定 ID 不得写入临时名称或自行生成替代 ID。
  • 任务名称可以修改,task_id 不得复用、改写或转给另一项工作。独立任务本轮完成后保留登记并改为 idle;后续原范围返工继续使用原 ID。重要业务结论必须写入对应业务、验收或进度文档。
  • 跨任务共享契约由总控记录;独立任务回复必须带回自身 routing_key、task_id、parent_routing_key、状态、变更文件、验证结果、阻断项和建议下一步。

通信与汇总格式

总控下发消息至少包含:

role: controller | independent_task
routing_key: <长期职责键>
task_id: <已登记 ID>
parent_routing_key: <所属总控键;总控自身填 self>
work_item_id: <当前工作包稳定 ID>
目标: <单一交付目标>
范围: <目录/模块>
完成条件: <可客观核验的结束门禁>
共享契约: <依赖的接口、模型或文件>
回传: <状态、变更文件、验证命令/结果、阻断项>

汇总时按 parent_routing_key → routing_key + task_id 聚合,不按 display_name 聚合;同一 ID 的最新状态覆盖旧状态,但保留重要阻断和验证记录。总控验收回传、更新整体计划后,再决定向原任务返工或安排下一项工作。