Skip to content

[RFC] RSI 投机验证:覆盖推理引擎优化与 Agent/Skill 自我改进 #363

Open

Description

@amy-why-3459

Current state: RFC 提案。提出覆盖推理引擎优化和 Agent/Skill 自我改进的 RSI 投机验证机制;尚未实现,未测量加速或质量收益。
Decision needed: 请 InferRSI 维护者决定是否接受“一个待验证父候选 + 一个投机后继”的首期范围,以及与 #249 共享调度、预算和资源管理的接口边界;具体实现与验收负责人待指定。
Next action: 维护者评审候选依赖、验证边界和交付切片;范围接受后,先完成两条链路的离线控制逻辑,再安排分别冻结计划的真实试点。

Goal and acceptance

当候选优化通过快速开发检查后,在其完整开发验证尚未完成时,允许在隔离分支中提前生成下一轮候选。父候选验证通过,后继进入正常验证;父候选失败,取消依赖它的工作并保留记录。最终采纳仍需独立验收。

目标是在完整验收标准不变的前提下,缩短得到合格候选的时间,并将无效投机的开销约束在冻结预算内。这里的投机单位是候选改动及其依赖,不涉及 token 级投机解码。

同时覆盖两条链路:

链路 候选 完整验证依据
推理引擎优化 代码、算子实现、运行配置 独立正确性与质量检查,场景/E2E 测量,重复 AB/BA
Agent/Skill 改进 允许编辑的 Skill/提示资源及明确支持的执行策略 独立 grader、配对任务比较、质量/回归限制、可获取的执行成本

首期候选范围沿用对应适配器已有支持,不借此放宽 Skill 可执行内容、运行权限或产物执行边界。

每个 campaign step 仍只改变一个预先声明的 Harness / Model / Infra plane;投机调度不改变这项约束,跨 plane 改动拆成有明确依赖的步骤。

完成标准分为:可复现的软件契约、两条链路各自的真实试点证据,以及维护者对范围的接受。无收益或负结果可以构成完整试点结果;不预设正面收益或仓库统一数值门槛。

Scope and constraints

与现有工作的边界

共用流程与状态

flowchart TD
    A["生成候选并通过快速开发检查"] --> B["完整开发验证父候选"]
    A --> C["隔离生成一个投机后继"]
    B -->|通过| D["推进开发基线,允许验证后继"]
    C --> D
    B -->|失败或证据不足| E["停止推进,取消或挂起依赖工作"]
    D --> F["搜索结束,冻结最终候选"]
    F --> G["一次独立最终验收:采纳或保留原版本"]
Loading

维护三个不同含义的引用:

引用 含义
stable_head 已正式验收的版本,本次最终验收未通过时保留它
verified_head 完整开发验证通过、可用于后续探索的基线;不代表本次 campaign 已验收
speculative_head 尚未完整验证、仅能在隔离开发分支中使用的候选

首期仅允许一个正在完整验证的候选和一个投机后继。后继的完整验证等待父候选通过;初期只重叠候选生成和可隔离的快速检查。更深依赖链、多分支搜索、自适应投机深度和分布式租约留待后续。

验证阶段与两条链路的差异

阶段 引擎侧 Skill 侧 可以产生的决定
输入检查 改动范围、构建/配置、源码身份 bundle、允许编辑范围、任务与模型配置 拒绝无效输入
快速开发检查 针对性正确性、小场景和短性能探测 小规模开发任务、独立评分、基本回归和用量检查 eligible_for_speculation,不能替代完整验收
完整开发验证 campaign 要求的 L0–L4 覆盖、质量与重复 AB/BA 完整开发集配对比较、质量优先选择、必要的组合重跑 推进 verified_head
最终验收 冻结候选对原始基线,独立工作负载与质量检查 冻结候选的一次独立 holdout 决定最终采纳
  • 引擎每步保留相对父候选的比较,最终候选直接对原始基线重测,不累加各轮百分比推导总收益。质量始终绑定冻结参考或绝对质量标准,避免逐轮容差累积。
  • Skill 延续现有质量优先规则,不能以更少 token 补偿不允许的质量回归。组合后的候选独立重跑,不从组件通过推导组合通过。
  • grader、参考答案、holdout、选择规则和控制器不属于候选可修改范围。若使用未验证 Skill 生成后继,记录其生成依赖;候选源码无依赖不等于提案依据无依赖。
  • 开发证据可以反馈搜索。最终候选冻结后,holdout 只决定接受/拒绝;结束本次搜索,不根据其结果选择另一候选或反复测试同一 holdout。跨 campaign 的 holdout 非复用也需管理,不能靠新输出目录证明独立。
  • 现有引擎 evaluator 的中位数/范围是描述性统计,不建立统计显著性。首期冻结重复次数,不根据中途好结果提前宣布通过;需要统计推断时另行定义并验证规则。

身份、失败与恢复

候选记录至少绑定:candidate_id、类型、父候选与生成依赖、产物身份、生产者上下文身份、比较基线、质量参考、计划与验证器身份。每次执行另有 attempt_id、代次、资源/用量和证据引用。

推进开发基线前,核对当前父依赖仍有效、验证绑定的实际候选/环境/计划匹配、完整证据通过,并原子更新引用。保留原始字节身份和适配器已有的操作/修改代次规则;内容 hash 不替代既有的 receipt 失效协议。

情况 行为
父候选通过 保留后继,完整验证其自身改动
父候选失败 取消依赖任务,后继标记 invalidated_dependency,保留代码、原始结果和开销
超时、环境异常、缺证据 停止推进,该验证范围保持 INCONCLUSIVE;补证必须遵守冻结计划与 attempt 规则
旧任务迟到结果 记录但不得推进已失效的分支
重放或重定位后继 创建新候选身份,重新核验受影响证据,不因补丁干净应用而继承通过结论
控制器重启 核对持久化 attempt/执行归属;无法判断的执行保持不确定,不重复启动、不重置总预算

invalidated_dependency 是调度状态,不是新的验收 verdict。父候选失败不能伪造后继已被证明错误的 FAIL。现有 PASS / FAIL / INCONCLUSIVE 保留,并显式标注开发验证或最终验收范围。

资源与总预算

  • 正式测量优先并独占其声明的资源域;必要时包括 CPU、内存带宽、I/O,而不仅是 GPU/NPU。
  • 投机工作只能使用不干扰测量的资源。代码分析、远端提案和轻量检查也需按实际资源条件判断;不能默认“CPU 工作不影响 GPU 测量”。
  • 独立 worktree 不足以证明运行隔离。校验实际加载的包、扩展、服务与依赖身份,复用并验证适配器已有执行隔离;构建/import/smoke 也属于相应执行边界。
  • 所有尝试共享 campaign 截止时间和总预算,并为最终验收预留额度。引擎 runner 的每次实验 deadline 需要受 campaign deadline 约束。
  • 并发任务在启动前原子预留适用额度;失败、取消和失效分支的实际消耗照常记账。外部支出/已消耗 token 与可释放的并发槽位、设备占用分别处理。
  • 未知用量保持未知,不填零;按冻结策略停止新任务或限制主张。停止新任务的 token 阈值不宣称是供应商硬消费上限。
  • 取消请求与实际退出、进程树清理和资源释放分别记录;未确认释放的资源不能重新分配给正式测量。

Inputs and deliverables

核查来源为 main 1246348f。这是设计依据的源码版本,不是实验 baseline/candidate pin。

现有模块 复用或扩展方向
harness/runner.py、harness/evaluation.py 引擎 AB/BA、质量命令、源码检查、范围化判定;继承总 deadline
harness/improvement.py、tools/skill_eval_compare.py Skill 选择、重跑、独立 grader、保留证据校验;真实客户端经适用的既有路径接入
tools/skill_eval_improve.py 保留离线入口限制;不通过移除保护来伪装真实多轮支持
infra/targets、现有 executor/process 与适用预算机制 候选快照、实际执行身份、隔离、清理和记账
campaign 记录、事件关联与 dashboard 候选依赖、验证阶段、失效原因、排队时间和无效开销

新增能力是一个有界投机策略及两条验证适配链路。是否新增 harness/speculation.py 或并入 #249 的共享控制层,在接口评审时决定;不预设一套重复执行框架。最小语义包括冻结候选、快速检查、完整开发验证、最终验收和取消,具体接口遵守既有身份及执行契约。

交付切片建议:

  1. 离线控制器: 两条链路的确定性 fixtures,固定一个投机后继,完成依赖、身份、预算、取消与恢复规则;不调用模型或加速器。
  2. 真实适配试点: 引擎接真实 AB/BA 与质量检查;Skill 接明确支持的真实客户端和独立任务验证。分别冻结任务、模型、环境、重复次数、质量门槛及预算。
  3. 后续策略: 只有在数据支持时,再提多分支、自适应深度和学习式排序;不作为首期完成条件。

可检查的完成清单

  • 与 task: parallel optimization rounds with orthogonal lanes for multi-agent harnesses #249 明确共享控制层及增量范围,并形成两条链路的接口与支持矩阵。
  • 两条离线链路覆盖父失败、依赖失效、迟到结果、身份变化、组合候选重跑及最终验收隔离。
  • 验证并发预算预留、campaign deadline、重启不重复执行/不重置用量、取消与实际清理的差异;缺少平台资格时明确不支持或保留未验证。
  • 快速检查不能冒充完整验证;开发通过不能冒充 campaign 通过;缺失证据不能产生通过结论。
  • 引擎与 Skill 各完成一个受支持的真实试点,保留全部失败/取消/未完成尝试;不以脚本化固定输出代替真实 Agent 效果证据。
  • 提供可复现入口、适用范围、已执行证据和限制,并由指定验收方记录接受或修订。

如何验证投机的实际价值

每条链路采用三个对照:①串行生成+完整验证;②快速筛选+串行完整验证;③快速筛选+投机后继。先用相同的预生成候选及固定依赖序列隔离调度收益,再做真实生成实验;后者会改变探索路径,报告为整体工作流效果,不能解释为纯并发加速。

记录到合格结果的总时间(未达到的运行也保留)、固定预算下最终质量/性能、模型调用与 token、设备时间、队列等待、投机失效率及浪费开销。预先抽定一部分快速淘汰候选进行完整检查,评估误杀风险并将审计开销记入预算。两种资源配置的对照保持一致;新增设备不能被隐藏成调度收益。

指标、重复次数、数值门槛和最终验收数据在具体 acceptance issue/冻结计划中确定。本 RFC 不声明任何已测得收益,不增加默认 CI 付费或设备实验。

Ownership and authorization

  • Proposed by / actual requester: 本 Issue 提交者;按请求由 Codex 整理并提交,范围明确覆盖引擎优化与 Agent/Skill 改进。
  • Status: Proposed。
  • Accountable parent / slice implementers: TBD,由维护者在接受范围时指定。
  • Goal-acceptance owner: InferRSI 维护者指定,具体负责人 TBD。
  • Accepted decision or scoped delegation: 当前授权为提交设计提案;实现范围、真实试点预算、付费调用、知识晋升和合并沿用各自授权流程。本 Issue 不改变关联 Issue 的所有权或验收状态。

Completion and closure

  • 由指定验收方核对交付清单与两条链路的证据后决定完成和关闭;软件测试通过、PR 合并和 campaign 验收分别记录。
  • 待决定:与 task: parallel optimization rounds with orthogonal lanes for multi-agent harnesses #249 的最小公共接口、首期候选支持范围、取消/恢复资格、两条真实试点的任务与资源配置。
  • 不包含自动知识晋升、自改 grader、holdout 反馈搜索、无限递归、目录迁移、自动代码合并或普遍服务收益承诺。

Activity

  1. added
    kind:rfcProposal / design discussion; scope review before build
    area:workbenchCLI workbench: profile, A/B loop, quality gates, evidence reports
    area:knowledgeKnowledge line: packs, skill library, knowledge admission
    status:proposedWaiting for the decision named in the status block
    on Nov 6, 2026
  2. amy-why-3459 commented on Nov 6, 2026

    @amy-why-3459
    CollaboratorAuthor
  3. Dong1017 commented on Nov 6, 2026

    @Dong1017
    Collaborator

    增量设计评审(#363「如何验证投机的实际价值」;基于 main 1246348f、#249 与在途 #268 的静态资料,未运行实验): 三臂对照能区分快速筛选与投机策略,但「固定预生成候选」还需要显式的生成阶段时间/资源模型,才能将墙钟差异归因于父候选验证期间的后继生成重叠。

    1. P2 · 可触发的证据歧义: 如果离线 fixture 只回放预生成的候选字节,而生成步骤耗时为零,或各组计时起点不同,那么候选身份虽然相同,生成成本和关键路径却不同;报告的 time-to-qualified 不能证明(也可能低估)投机重叠收益。task: parallel optimization rounds with orthogonal lanes for multi-agent harnesses #249 之前已指出并行与串行可能观察不同 incumbent 历史,这里虽然固定了候选依赖序列,仍需另外冻结时间与资源口径。
    2. 最小补充建议: 三组共用候选字节/依赖、父候选的 PASS/FAIL/INCONCLUSIVE 结果、每步生成/快速检查/完整验证的可控时长与成本,以及相同的预算和并发资源上限;离线事件记录至少区分 generation_started/finished、validation_started/finished、失效/取消和资源释放。加两类反例:父失败导致投机成本浪费;无可用隔离资源时不应凭空得到加速。这样先验证状态机和调度时间账,再用真实试点衡量端到端效果。
    3. 边界: 这只是对 RFC 的可复现验收协议建议,不要求现在执行模型或硬件试验,也不替代 task: parallel optimization rounds with orthogonal lanes for multi-agent harnesses #249 当前负责人对其现有 PR 的审查和验收。

    相关范围:并行轮次与现有边界 #249 · 在途离线实现 #268。

  4. zengchuang-hw commented on Nov 6, 2026

    @zengchuang-hw
    Contributor

    回复 评审请求。我支持首期只允许一个待完整验证的父候选和一个投机后继,并先用离线夹具把两条链路的状态转换跑通。建议在拆实施 task 前明确下面四个合同。

    1. 共享执行事实,单独定义候选依赖。 task: parallel optimization rounds with orthogonal lanes for multi-agent harnesses #249 的共享层负责冻结输入、attempt 认领、截止时间、预算、租约、隔离和收据;[RFC] RSI 投机验证:覆盖推理引擎优化与 Agent/Skill 自我改进 #363 增加父依赖、失效代次和晋升规则。验证器交付绑定候选、计划与环境的判定,控制器据此推进引用。可先用同一组接口和假执行器验证两条链路。feat(harness): offline parallel-round coordinator #268 目前只提供部分离线 prepare/submit/serve,共享接口的设计可以先收敛,实际接入需要对应能力的验证。 #249 · #268 · 现有引擎 runner

    2. 把晋升和失效放进同一次原子状态更新。 推进 verified_head 时,同时核对预期旧 head、代次、候选和父依赖,以及当前认可的验证 attempt。父失败时先持久化依赖失效,再发送取消。迟到的旧收据继续归档并按原 attempt 结算。建议用夹具覆盖父失败和后继完成撞在同一时刻、相同字节重新提交,以及重启后旧成功收据晚于新 attempt 到达。三例都应能证明旧结果无法推进引用。

    3. 把重复投递、实际执行和资源释放分别验证。 先持久化 claim,再调用外部执行器。若重启时落在 claim 与调用确认之间,只在适配器能按同一个执行键查回原运行时续接。其余保留不确定状态与已占预算,等待可信结算;设备租约等进程树清理确认再释放。将同一绝对截止落实到预留、启动、产物收取和运行中止,尤其覆盖截止前预留、截止后启动以及取消后清理未确认。现有账本把已 claim 的 attempt 置于等待结算的路径。 预算状态机 · #249 的截止与清理反馈

    4. 为最终验收单独冻结候选和一次性使用记录。 引擎以冻结的最终候选对原始基线重测。Skill 先封存开发输出,再由独立验收方领取 holdout。建议把领取绑定候选、数据、grader 和 attempt;中断后若无法证明 holdout 尚未访问,保留这次消耗记录,按冻结计划处置。三组对照先固定候选序列和资源条件,分别记录首次得到合格结果的时间、未达标运行和取消成本。真实生成会改变探索轨迹,单列为工作流对照。 现有离线 holdout 边界

    本次是静态设计意见。首期范围、实施负责人和两条真实试点的授权仍由维护者在本讨论确定。

  5. Dong1017 commented on Nov 6, 2026

    @Dong1017
    Collaborator

    This is a strong proposal. It enables the parallelization of the evolution experiment, thereby increasing computational efficiency. Furthermore, it supports multiple optimization starting points within a single iteration, as different parallel instances utilize distinct bases (or heads).

  6. Dong1017 commented on Nov 6, 2026

    @Dong1017
    Collaborator

    增量范围评审|针对新增的“multiple optimization starting points”表述(非实施授权)

    当前 RFC 的首期契约仍是一个正在完整验证的父候选 + 一个投机后继,且明确将多分支搜索留到后续;#249 则处理同一已验证基线上的独立候选并行。新的“各并行实例使用不同 base/head”如果被理解为首期交付要求,将引入多个父依赖与晋升目标,而不只是现有两节点状态机的并发执行。父版本验证失败、旧 attempt 收据迟到或多个分支都验证成功时,单一 verified_head/speculative_head 的晋升/失效规则不足以说明应推进哪个引用。

    建议在拆实施 task 前明确一项 owner 范围决定:(A)首期维持单父/单后继,multiple starting points 仅作为后续方向;保留目前已讨论的父失败、乱序收据、预算与资源释放等离线验收反例。(B)若首期确需不同 base/head 并行,则先补充分支级 parent/attempt 身份、晋升冲突规则、失效传播及共享预算/租约约束,并冻结对应反例。不要把对总体方向的赞同直接当作 B 已获接受或已验证效率收益。

    依据:本 Issue 的 Scope/共用流程、新增表述、#249 并行轮次边界。以上仅静态设计意见;不触发实现、模型或硬件评测。

  7. Dong1017 commented on Nov 6, 2026

    @Dong1017
    Collaborator

    A clarification on “different bases/heads”: the proposed single-chain pipeline already uses different heads concurrently. For V → A → B, A is validated against the verified baseline V while B is generated from the still-unverified A. B’s full development validation waits for A to pass; if A fails, B’s dependency is invalidated.

    I suggest defining the first-phase boundary as one active dependency chain, with at most one candidate undergoing full development validation and one successor undergoing generation and isolated quick checks. Multiple independently advancing chains, such as V → A → A1 and V → D → D1, would be a separate scope decision requiring branch-selection and promotion rules. #249 addresses a different case: independent candidates starting from the same verified baseline.

    Could we add the V → A → B example to clarify which meaning of “multiple starting points” is intended? Any wall-clock benefit would still need to be measured under the proposed resource and budget controls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:knowledgeKnowledge line: packs, skill library, knowledge admissionarea:workbenchCLI workbench: profile, A/B loop, quality gates, evidence reportskind:rfcProposal / design discussion; scope review before buildstatus:proposedWaiting for the decision named in the status block

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions