Repository navigation
fix(benchmark): omit host countdowns from planning input - #6671
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
受影响的是由 benchmark Host 启动规划、随后接续研究的 Agent。
此前初始规划额外收到宿主截止时间、剩余时间和执行预留,恢复后的会话可能继续带着旧倒计时;现在只传回原任务规划包,不再额外注入这层宿主时钟。
当前精确头已验证规划输入不随宿主 epoch 改变,原任务包与题目自身时限保留,执行输入及宿主预算和准入路径保持原语义。
本次预防新的规划时钟注入,不自动中和旧归档中的历史文字,不重开终态 Goal,也不宣称模型持续研究行为或分数已经改善。
旧归档的时间残留仍需其特定、已授权恢复边界处理;模型采用、科学效果与 Linux 完整捕获资格未由本 PR 建立。
本次完整审查绑定 6567172 的全部六条路径。评审按最终简化方案重新进行:不采用已撤回的 clock-wake 或每轮 HOST_RUNTIME_GUIDANCE 方案。
改动思路
宿主时钟、预算和停止效果继续由现有 Python benchmark Host 适配层执行;最小修复是删除额外规划投影,不再叠加每轮提示层或另建控制面 owner。
当前 PR 只预防新的初始规划倒计时注入,执行 wake 输入相对主干不变;旧归档恢复和模型效果分别保留原 owner 与实验证据边界。
最小替代方案确实是删掉 planner 自己加的时钟文案,而不是过滤原任务中的时间文字、不断告诉模型忽略历史,或重写已有会话。没有额外用户操作、配置或重复授权。Python 保留在现有 benchmark Host 领域适配层,没有新增共享控制面决策源。
具体改动
未发现当前头的阻塞问题。先读 原 benchmark 契约,spec_revision 为 6a4b4e7。SForge phase-clock participant 要求保留捕获点剩余时长与原激活 deadline,恢复不能补充预算;Explicit warm worker composition (qualification in progress) 要求接续仍受当前准入、原生会话及资源 owner 约束。两项在本 PR 保持 implemented,新的 README 仅披露规划默认变化,不能自行放宽原契约。
关键代码讲解
- render_planning_prompt 保留 LOOPX_PLANNING_TIMEOUT_SEC 的退役拒绝,以及 Host epoch 有限且为正的校验;删除 time import、absolute/remaining/reserve 计算及那组额外指引,只序列化原 planning packet。原题自带的提交时限或运行时间约束不被删改。
- run_once 只调整 stage=plan 中唯一 render 调用,去掉不再使用的 execution_reserve_seconds 参数。执行分支、phase reserve、timeout、预算耗尽返回、checkpoint、session 和 settlement 路径没有额外改动。对不可变 base/head 的整个 worker AST,只规范化这个已删除 keyword 后完全相同。
- validate_plan_readback 未变:input digest 必须一致,Todo 必须实际存在、唯一且属于 ready/blocked 的合法状态。删提示不允许用 prose、虚构 Todo 或旧 terminal 状态冒充完成。
三个测试文件覆盖规划输入、真实 retained-session transport、fresh/resume worker 和 checkpoint preloading;原来的默认窗口测试按真实默认变化重命名。README 明确仅防止新注入,执行 wake 输入不变、旧档案不自动中和、终态仍需显式 resume,也没有模型采用或收益承诺。
对主干的风险
最强反例是误把“不要向模型额外投影宿主时间”实现成“取消宿主预算”或“删除原题时限”。独立同输入比较中,没有 epoch 时 base/head 文本逐字节相同;给两种不同 epoch 时,base 带 Host execution window,当前头完全一致且不含该窗口,解码后的原任务包在三种条件下一致,原题 deadline 保留。旧窗口中关于 acceptance、时间与权限的限定没有变成新的授权:真实预算、原任务和 product admission 的原 owner 继续执行,而执行 prompt 没有任何替代 guidance。
当前头 task-entry/resume/shared-runtime 139 项通过,常规套件有 1 个 optional native skip,随后用真实 Codex 和本地确定性 provider 补跑;该组共 5 passed / 1 external-controller skip。真实 native 工具、CLI、历史绑定及原 guard 只执行一次;Darwin native/full 是明确拒绝捕获后正常继续,不能称 Linux 完整捕获通过。Ruff、advisory 后完整 semantic drift 和 whitespace 通过;未查询、等待或驱动 CI,未调用付费模型、启动研究实验或热改冻结运行。
作者另报告 Linux 的 Envelope-off native capture 被原 guard 拒绝。本轮独立源码核对显示,codex_checkpoint.py 在本 PR base/head 是同一 blob,_verify_interrupted_guard 仍硬编码预期 turn_envelope=True;执行路径也没有被本 PR 改写。Linux 复现及独立修复未在此资格化,仍归既有捕获 owner。这一说明不把作者的 Linux 失败当成已修复,也不以 Darwin 继续路径替代 Linux 资格。
我的整体评价
APPROVE,批准范围是新的初始规划输入修正。long_horizon 为 preserved:宿主预算、原任务、会话身份、终态及结算约束保持;user_experience 为 improved:已有意图和准入不需增加一轮操作,不再常驻多余宿主提示。它尚不证明模型会更长期有效研究。
旧归档的时间残留仍需其特定、已授权恢复边界处理;模型采用、科学效果与 Linux 完整捕获资格未由本 PR 建立。
有界未来重构检查已采用删除未使用参数和时钟投影,避免为撤回方案保留空控制或第二套说明。现有状态 vocabulary、receipt、archive 与 session schema 不变;单一共同部署的内部调用不需要保留无效兼容参数。六路径 +80/-48 与这一有界问题相称。当前结论不授予合并、实验采用、安装或其他账户操作权限。
English verdict: APPROVE — head 6567172. Removes only the planner-added Host countdown, without replacement guidance; original task constraints and Host admission/budget/terminal semantics remain intact. Current 139 runtime tests and 5 real-Codex local-provider cases pass, with the external-controller skip retained. Old-archive neutralization, Linux full capture and model/outcome benefit remain unqualified; CI was not consulted.
Planning currently injects the host deadline, remaining time and execution reserve into model context. A resumed session can retain that old countdown and treat it as a reason to finish research after the host has admitted further work.
Remove this clock projection and return the original task-planning packet directly, with no replacement runtime guidance. Execution wake prompts are unchanged. The host continues to enforce the same finite budget; task-defined time constraints, evaluation cooldowns, checkpoint state, TurnEnvelope and terminal admission are unchanged. This is a planning prompt default change.
Old archives may still contain time-window messages. This PR prevents new injection; it does not rewrite historical context, reopen a terminal Goal or qualify old-archive recovery. Address stale historical context at the specific authorized restore boundary. Model adoption and outcome improvement remain untested.
Validation:
Placement: existing Python benchmark host adapter, no new capability or settings surface. The bounded cleanup removes the unused rendering argument and clock-projection code rather than adding another prompt layer. No live-run changes or benchmark launches.