Codex 的廉价并行工作节点
调用:此技能仅在用户通过名称调用时运行;它永远不会自动应用。协调技能不会相互调用,工作节点也不会调用任何协调技能。当用户为同一任务同时调用 escalating-subagents 和此技能时,在分派前先询问哪个适用。
假定的协调者:父模型由用户选择,通常是 GPT-6.1 Sol;high 是初始努力建议,用于评估,而不是此技能更改的设置。ultra 级别的父模型可以主动委托:在第一行进度中披露这一点,建议 high,仅通过此技能的分派进行委托,并在“固定”下计入任何额外分配。在分类账标题中记录实际的父模型和努力级别。协调者负责编排:对等级进行分类,编写“完成意味着”标准,分解为项,修复接口和决策,向工作节点简要说明,分派批次,捕获快照,检查每个验收记录,分类,并报告。它从不编辑产品代码,也从不读取工作记录。它仅在验收需要时读取证据摘要,以及 D 级验收、争议验证和范围违反的集成补丁。
工作节点仅在一个廉价模型上运行,每个节点执行一个分配的任务。它们从不委托,从不调用此技能或任何编排技能,也从不运行快照助手。尊重主机权限和协作模式;计划模式不允许任何实现或产生变化的发现。
每个标准都带有 ID 和所需的证据类型:behavioral(执行测试、构建或运行,锻炼更改)、static(类型检查或 lint)、parse(语法或解析检查)、format(格式化检查)或 inspection(审查差异)。比标准类型弱的证据永远不能满足它;解析检查满足 parse 标准,仅此而已。
等级和分配矩阵
在第一行进度中命名等级。任何阶段都可以提升它;永远不要降级。升级会保留计数器,采用更高的预算,并修改受影响工作节点的标准。将任务大小调整到矩阵:一个工作节点可能拥有几个文件,因此合并任务而不是放弃工作。验证在每个周期运行一次,在完整的实现周期冻结后,而不是每批运行;中间批次会在下一批次开始前捕获并检查 post-N,而工人记录仅是临时的。
| 等级 | 工作 | 映射(只读) | 实现 | 每个周期验证 (V) | 预算 |
|---|---|---|---|---|---|
| A | 琐碎、完全指定、低风险的编辑,具有具体检查 | 0 | 1 在 low | 0;协调者运行捕获后检查 | 3 |
| B | 清晰的更改 | 0 | ≤ 4 在 medium | 1 在 medium | 7 |
| C | 不明确的错误或实质性功能;默认 | ≤ 3 在 low/medium | ≤ 4 在 medium | 1 在 medium | 10 |
| D | 认证、租户隔离、迁移、队列/同步、生产数据更改 | ≤ 3 在 medium | ≤ 4 在 medium | 2 在 medium,具有 distinct briefs(测试 + 标准;规范 + 回归);协调者读取补丁 | 12 |
每个新分配、重试或续命都算一次调用;并行工作节点单独计数;状态消息和等待不花费。设 M 为正在接纳的映射批次中的分片数(如果是实现批次,则为 0),U 为尚未分派的所需实现项,包括此批次中的项(在映射之前,计划计数,至少为 1),V 为每个周期的验证器;预留是一次修复及其重新验证,1 + V。接纳任何批次都需要 remaining ≥ M + U + V + (1 + V);如果不满足,则缩小宽度、合并项,或两者兼施。序列化更改并发性,而不是调用计数:接纳会计数每个剩余的必需项。验证器重试(不支持的 PASS、INCONCLUSIVE)会消耗预留调用。在 FAIL 之后,对于 r 个项:当 remaining ≥ r + V 时,运行 r 个修复和完整的全新验证集,无需进一步预留,再次 FAIL 则报告运行结束;当 1 + V ≤ remaining < r + V 时,修复 remaining − V 个项,验证,并将其余项报告为未解决;当 remaining < 1 + V 时,停止并报告失败的项未解决,无需重新验证未更改的补丁。工作示例:B 级,四个项,宽度为 4:7 → 3 实现后 → 2 验证后 → 两个项 FAIL,允许一个修复加一个验证器 → 0,一个项未解决。B 级,不支持 PASS:7 → 3 → 2 → 新验证器 → 1 → FAIL → 1 < 2,停止。C 级,一个 3 个分片的映射批次,有 4 个计划项:3 + 4 + 1 + 2 = 10 接纳 → 7 → 实现 4 个 → 3 → 验证 → 2 → FAIL 一个项 → 修复并验证 → 0。D 级:3 + 4 + 2 + 3 = 12 → 9 → 5 → 3 → FAIL 一个项 → 0。阶梯仅在预算允许时可用;在最大宽度下,预留只允许一次修复,而不是每一级,协调者在选择宽度时会说明这一点。分解永远不会增加预算。
努力阶梯
工作节点模型永远不会改变;努力级别会改变。medium 是默认值,也是通常应停留的位置。
| 级别 | 模型 | reasoning_effort | 使用 |
|---|---|---|---|
| 0 | gpt-6-luna | low | 机械工作:只读映射分片、重命名、移动、格式化、运行命名命令和报告;无需判断调用 |
| 1 | gpt-6-luna | medium | 每个发现、实现和验证项的默认值 |
| 2 | gpt-6-luna | medium | 具有具体更正和先前记录路径的新工作节点;单个遗漏重试 |
| 3 | gpt-6-luna | max | 仅在 1 级或 2 级确认推理失败后,或在没有进展的情况下第二次 PARTIAL 时使用 |
跳过的级别:high 被跳过,因为在独立编码评估中观察到的相对于 medium 的增益不足以证明一个级别,而 xhigh 被跳过,因为阶梯保留一个升级级别,并且 max 每美元购买更多分数。不要填补空白。
0 级简介说:没有判断调用;需要时返回 BLOCKED。验证器从每个等级的 medium 开始。正确的 FAIL 永远不会升级验证器。环境故障永远不会提升级别。没有模型升级:当阶梯用尽时,协调者停止并报告。
| 发现 | 操作 | 计数 |
|---|---|---|
| 0 级工作节点因需要判断而返回 BLOCKED | 尽可能预先做出决定;在 1 级重新分派项 | 调用;级别 → 1,不是失败 |
| 1 级工作节点遗漏要求或误解简介 | 2 级:具有更正和先前记录路径的新工作节点 | 调用 |
| 1 级或 2 级确认推理失败,或在没有进展的情况下第二次 PARTIAL | 3 级 | 调用 + 级别 |
| PARTIAL 具有合理的方法和进展 | 继续在同一级别 | 调用 |
| 验证器返回不支持的 PASS(证据类型太弱、快照过时或检查未运行) | 拒绝;在 2 级使用明确证据要求的新验证器;第二次出现 → 3 级;实现保持未修改 | 各一次调用 |
| 验证器返回正确的 FAIL | 成功验证;进入修复周期:失败的项根据其自己的阶梯升级,然后完整的全新验证集 | r + V 调用 |
| 验证器 FAIL 被协调者使用记录的证据驳斥 | 记录更正;不更改实现;仅在补丁更改时重新验证 | 无 |
| 验证器因环境原因 INCONCLUSIVE 或 BLOCKED | 在授权范围内补救,在同一级别重试一次;未解决的检查作为阻塞项带入报告 | 调用;无级别更改 |
| 3 级在项上失败 | 每个项一次:缩小项(更小的范围,预先做出的决定)并在 1 级重试(如果允许接纳);缩小的项继承历史记录和预算 | 调用 |
| 最终修复周期中失败 | 停止;报告未解决的项、证据和下一步;不再分派 | 无 |
| 阻塞歧义更改“完成”或 D 级风险 | 询问用户;命名阻塞项 | 无 |
并行批次
只有当以下三个条件都成立时,一个项才能加入批次:不冲突的所有权(文件或 globs);满足的依赖关系(在简介中固定的接口,没有项消耗另一个项的未完成输出);没有冲突的副作用(生成的文件、模式或迁移、数据库、端口、缓存、测试装置、CI 配置)。否则,序列化或合并。默认限制(可由用户调整)为每批 4 个写入者和 3 个只读分片;它们是来自异步委托研究的启发式方法,而不是硬性限制。容量来自运行时:使用主机宣传的插槽及其计数语义,并分派 min(cap, available slots)。在一批消息中分派整个批次。在部分分派的情况下,保留已生成的工作节点,按其名称注册,并在插槽空闲时分派剩余部分;切勿重新生成已在运行的项。
每个简介都包含协调者的决策列表(名称、接口、迄今已选择的约定),因为操作嵌入决策,而并行工作节点否则会分歧。没有工作树的共享工作空间执行是有意为之的权衡:所有权加上快照范围检查取代了物理隔离。
证据生命周期和冻结
批次在整个运行中编号,映射、实现和修复批次都一样。捕获 base 一次,并立即在批次 N 之前捕获 pre-N;将该快照名称和树 ID 放入该批次的所有简介中。映射工作节点针对 pre-N 报告。实现者的检查在验证之前是临时的;他们的记录会这么说并命名 pre-N。在批次 N 的所有写入者和后台命令停止后,捕获 post-N 并针对该批次的所有权检查 names0 pre-N post-N(对于映射批次为空);names0 post-N pre-N+1 也必须为空,其中的任何更改都是范围外的编辑。当其最后一个实现批次通过此检查时,一个周期被冻结:新的验证器接收该批次的 post-N 并根据该冻结状态生成验收记录,协调者还从该周期的第一个 pre 到该 post 检查周期的并集,并且在验证期间不发生写入。屏障:一个周期的验证器一起分派并一起等待,并且直到它们全部返回或已被中断并确认终止后,才启动修复。修复是其自己的批次:捕获其 post-N,检查它,并完整地全新运行验证器集。在验收之前,捕获 final;已验证快照和 final 之间的 names0 必须为空。帮助器检测范围违规,并在停止前最多重试一次。
…
[已截断,用于翻译]