Skip to content

第 42 章 Research Brief:Harness 的版本化、回滚和 A/B 测试

要解决的读者问题

Harness 的指令、Skill、工作流、模型选择、检索配置与评估规则都会改变 Agent 行为。真正困难的不是为这些文件增加一个版本号,而是回答四个可审查的问题:候选与基线究竟差在哪里,比较是否隔离了同时发生的变化,什么证据允许扩大暴露,以及质量下降时能否回到一个已知且可验证的状态。

本章将这些问题组织为 Release Experiment,而不是把软件发布、线上 A/B 测试或模型快照文档直接改写成 Agent 专用流程。版本标识只承担身份和契约沟通;离线评估、受控暴露、监控、停止与回滚各自需要独立记录。任何 approvedwinnerrolled_back 状态都必须指向其证据范围,不能从一次分数变化推导真实生产效果。

研究范围与非范围

读者问题本章研究的回答本章不回答
哪些 Harness 工件需要版本化?为指令包、Skill、工作流、模型/快照选择、评估规格和兼容性声明保存不可变候选身份、依赖与变更摘要。用一个统一数字自动表达所有自然语言行为、模型输出或外部依赖的兼容性。
怎样比较候选与基线?先固定任务集、输入版本、评估规格和随机分配单位,再区分离线对照、灰度观察与真实线上实验。将前后时间段差异、一次跑分、少量样本或未经核验的评分器当作因果证明。
什么条件允许继续或回退?预先声明质量、安全、成本和延迟的守护指标、停止条件、责任人、回滚目标与验证步骤。提供跨项目通用的流量比例、显著性阈值、实验时长或自动回滚数字。
回滚完成意味着什么?只在旧版本重新成为目标、实际状态被重新观察、未恢复的外部效果被登记后,记录有限的回滚结论。把配置指针切换、审批记录或补偿候选写成外部效果已完全恢复。

已核验的一手资料与受限用途

本地键来源明确表达的内容允许用于本章的范围不可外推
CH42-REF-01Google SRE 将 canary 描述为对变更进行部分、限时部署与评价;实践需要可将候选暴露给子集、评价好坏并把结果接入发布流程。该章还强调按候选/对照分开观察指标、隔离污染、暂停或回滚。支持小范围暴露、候选/对照、分版本监控、停止和回滚准备的工程背景。固定流量比例、时长、指标、SLO、自动回滚算法,或任何 Agent 系统已具备真实灰度能力。
CH42-REF-02OpenAI API 官方资料说明模型提示行为可能在快照之间变化,建议固定模型版本并为应用运行 evals;API、SDK 与模型家族的兼容范围也需分别理解。说明模型选择属于 Harness 版本身份,固定快照与应用评估是减少未记录漂移的受限产品背景。输出确定性、跨模型兼容、永久可用性、固定质量水平,或其他供应商的版本策略。
CH42-REF-03Semantic Versioning 2.0.0 要求先声明 public API,再用主/次/补丁版本表达不兼容变化、兼容新增与兼容修复;已发布版本不得原地修改。作为 Skill、工作流和评估工件声明公共契约、不可变发布身份和兼容性沟通的受限类比。自然语言 Prompt、模型输出或整个 Harness 自动满足 SemVer;版本号本身证明行为兼容。
CH42-REF-04Microsoft Research 的在线 A/B 测试论文指出,分析依赖随机化单位及其独立同分布假设;复杂随机化可能使该假设失效,并导致不可信的方差估计和结论。支持实验单位、分配机制、干扰与分析假设必须显式记录,且一次 A/B 结果需要统计与工程语境。论文方法适合所有 Agent 任务、固定显著性阈值、样本量、业务指标,或离线任务集可直接等同线上用户实验。

访问日期均为 2026-07-17。CH42-REF-01 至 CH42-REF-03 分别复用正式引用 REF-009、REF-014、REF-109;CH42-REF-04 已由主线程登记为 REF-116。完整 URL 与外推禁区见本章参考资料。动态产品和在线工程资料在 First Draft、Technical Review 与 Fact Check 阶段必须重读。

本书 Release Experiment 模型

下列工件是本书为 Harness 变更设计的教学模型,不是 Google、OpenAI、SemVer 或 Microsoft Research 的现成 API、发布平台、实验系统或权限机制。

工件最小内容解决的问题不承担的责任
Harness Version Manifest候选 ID、父版本、工件摘要、模型/快照、依赖、评估规格、兼容性声明与不可变摘要。让一次比较能回答“比较了什么”。不证明内容安全、兼容或已经发布。
Release Experiment基线、候选、固定任务集、分配单位、暴露范围、守护指标、停止条件、责任人与证据位置。让离线评估、灰度与线上实验不被混为同一结论。不执行随机分配、流量切分、模型调用或统计分析。
Compatibility Matrix消费者、输入/输出契约、允许变化、破坏性变化、迁移与回退目标。让版本号背后的实际兼容假设可审查。不保证自然语言行为、第三方 API 或模型输出兼容。
Release Decision Record证据版本、指标、未覆盖项、决定、批准范围和刷新条件。防止 winnerapproved 脱离证据复用。不授予发布权限,也不表示外部动作发生。
Rollback Runbook已知良好目标、触发条件、操作前检查、回退步骤、回读、残留效果、升级与停止。区分“计划回退”“切换目标”和“验证恢复”。不保证所有副作用可逆,不执行真实回滚或补偿。

状态与责任断点

  1. 版本存在不等于兼容。 只有 Compatibility Matrix 与消费方验证能支持受限兼容结论。
  2. 离线更优不等于线上更优。 固定任务集只覆盖声明的输入与评估规格;真实使用中的干扰、漂移和尾部风险仍未知。
  3. 批准灰度不等于已暴露。 Release Decision Record 记录一次决定;实际路由、模型调用、监控和效果需要独立执行与观察证据。
  4. 触发回滚不等于恢复完成。 只有回退目标已生效、关键状态已回读且残留效果已登记,才能给出受限的 rollback_verified
  5. A/B 胜出不等于因果已证实。 分配、样本、干扰、指标选择、多重比较和分析假设都可能改变结论;本章不把统计标签当作自动发布许可。

计划案例、图示与纯内存示例

教学案例: 两种上下文压缩策略在同一组注入任务上比较。基线与候选必须绑定同一任务集版本、模型快照、评估规格和成本口径;先执行离线对照,只形成 offline_candidateneeds_evidencerejected。即使候选在教学数据上更好,也只能进入人工审查的有限暴露计划。若守护指标下降,Rollback Runbook 只返回待执行的回退请求;本章不调用模型、路由真实流量、修改配置或制造线上效果。

计划图示: Mermaid 图展示 Version Manifest → Offline Evaluation → Release Decision → Limited Exposure → Monitoring 主链,并为兼容性缺口、证据不足、守护指标下降、回滚回读失败和人工升级分别保留出口。图中必须明确“候选通过 ≠ 已发布”“回滚请求 ≠ 已恢复”“对照差异 ≠ 因果结论”。

计划示例: Example Implementation 阶段可实现纯内存函数 assessHarnessReleaseExperiment(input)。它只读取注入的 manifest、baseline、candidate、evaluation、compatibility、exposure、guardrails 与 rollback 对象,返回 needs_evidenceready_for_reviewrollback_requestedrollback_verification_required 或保守停止。测试不得调用模型、网络、文件、Git、实验平台、特征开关、监控、发布或回滚工具。

风险、非范围与后续核验

  • 伪版本语义: Prompt、Skill、工作流、模型和评估规格的变化速度不同;不得只用一个版本号掩盖工件级差异和依赖。
  • 实验污染: 候选与对照共享缓存、记忆、外部工具、数据或用户状态时,结果可能互相影响;研究模型只能要求记录,不能保证隔离。
  • 指标投机: 质量、成本、延迟和安全指标若在看到结果后更换,就不能支持原先的比较;但本章不规定跨项目统一指标或阈值。
  • 不可逆副作用: 写入、消息、付款、权限、记忆和外部 API 调用可能无法随配置指针一起恢复;Rollback Runbook 必须登记残留效果与人工入口。
  • TODO(verify): First Draft 当天重读 Google SRE Canarying、OpenAI Backwards Compatibility 与 Microsoft Research 页面;不沿用过期产品路径、示例模型名或动态声明。
  • TODO(verify): 若正文加入统计显著性、功效、样本量、多重比较或序贯检验,必须新增对应原始统计资料;当前研究只允许说明假设与限制。
  • TODO(verify): Example Implementation 前确认仓库的 Node 纯内存示例惯例;没有授权和隔离时,不模拟真实流量、模型调用、特征开关或回滚。

下一阶段建议

Chapter Outline 应把版本身份、兼容矩阵、离线对照、实验隔离、有限暴露、守护指标、决定记录、回滚 Runbook 和残留效果拆成逐节蓝图。每节都要分开来源事实、本书工件、虚构压缩策略案例和未运行外部动作;不得把 canary、SemVer、模型快照或 A/B 论文改写为一套自动发布算法。

从同一套 Markdown 书稿生成。