优化
This commit is contained in:
+20
-2
@@ -39,7 +39,7 @@
|
||||
| routing_key | task_id | parent_routing_key | display_name | durable_scope | status | worktree/branch | last_update | notes |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
|
||||
当前暂无已登记的总控下属独立任务;后续只登记上述总控创建或明确接管的独立对话及其稳定职责。
|
||||
当前暂无符合 `thread_source=user` 条件的财务总控下属独立任务;后续只登记上述总控创建或明确接管、且未继承总控完整历史的独立对话。
|
||||
|
||||
### 下属任务生命周期
|
||||
|
||||
@@ -48,6 +48,22 @@
|
||||
- 总控发现旧任务需要修改时,直接向原 `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/` 检查是否存在可恢复的已归档用户任务。
|
||||
@@ -62,7 +78,7 @@
|
||||
## 登记规则
|
||||
|
||||
- 总控和下属独立任务都必须登记稳定 `routing_key`;下属任务还必须登记 `parent_routing_key` 和可长期识别的 `durable_scope`,并作为后续复用的强制路由。未由已登记总控创建或明确接管的普通对话不得登记。
|
||||
- 本表只登记本机元数据为用户独立任务的线程;`thread_source=subagent` 不得登记,完成或中止后由父线程归档。
|
||||
- 本表只登记本机元数据为 `thread_source=user` 的用户独立任务;通过子代理创建接口或全量历史分叉产生的 `thread_source=subagent` 不得登记,完成或中止后由父任务汇总并归档。
|
||||
- 独立任务创建成功并获得平台返回的稳定 ID 后立即登记;没有稳定 ID 不得写入临时名称或自行生成替代 ID。
|
||||
- 任务名称可以修改,`task_id` 不得复用、改写或转给另一项工作。独立任务本轮完成后保留登记并改为 `idle`;后续原范围返工继续使用原 ID。重要业务结论必须写入对应业务、验收或进度文档。
|
||||
- 跨任务共享契约由总控记录;独立任务回复必须带回自身 `routing_key`、`task_id`、`parent_routing_key`、状态、变更文件、验证结果、阻断项和建议下一步。
|
||||
@@ -76,8 +92,10 @@ role: controller | independent_task
|
||||
routing_key: <长期职责键>
|
||||
task_id: <已登记 ID>
|
||||
parent_routing_key: <所属总控键;总控自身填 self>
|
||||
work_item_id: <当前工作包稳定 ID>
|
||||
目标: <单一交付目标>
|
||||
范围: <目录/模块>
|
||||
完成条件: <可客观核验的结束门禁>
|
||||
共享契约: <依赖的接口、模型或文件>
|
||||
回传: <状态、变更文件、验证命令/结果、阻断项>
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user