跳转到主要内容

从真实会话到受控晋级

一份六章指南:从真实失败证据,到单次可比 Candidate 回归,再到外部部署交接。

从真实会话到受控晋级

一份六章指南:从真实失败证据,到单次可比 Candidate 回归,再到外部部署交接。

本书走完一次诚实的进化循环。它把诊断与晋级分开,并在每章都回答三个问题:你做什么、Harbor 记录什么、结果不能证明什么。

目录

1 为什么自我修改不等于进步

进步需要固定任务、有效证据、单个受控改动,以及独立于 Optimizer 的 policy。

Agent 可以重写 prompt、tool 或 Evaluator,却仍然变差。“发生变化”不等于“有所进步”。

可信循环会在改动前固定业务 case、执行身份与评分 contract,并把提出改动的 Optimizer 与决定晋级的 Gate 分开。

你做什么

说清业务失败,并指定最终部署决策 owner。

Harbor 记录什么

记录日后重访主张所需的身份与证据链。

这不能证明什么

Quick diagnostic 或 Candidate 被重写,都不能证明晋级质量。

2 定义四个概念

用业务语言理解 Dataset、Generator、Evaluator、Optimizer,以及训练集、验证集、测试集和元评测。

自进化不是“让模型改自己”,而是建立一条可检查的学习链:用 Dataset 规定问题,让 Generator 产出结果,让 Evaluator 依据证据判断,再让 Optimizer 只提出一个受控改动。 Evaluator 自己还要接受 Meta-Evaluation(元评测)。

先认识四个角色

  • Dataset(评测数据集):代表业务任务与失败模式的 case 集合,回答“测什么”。
  • Generator(生成器):运行 Candidate 并生成回答或 Artifact,回答“谁来答、怎样答”。
  • Evaluator(评估器):依据 criterion 与 Evidence 判断质量,回答“什么算好、证据是否够”。
  • Optimizer(优化器):从失败证据提出一个新版本改动,回答“下一步改什么”。

这四个名称来自评测与机器学习,但在 Agent 系统里都比单个模型更宽:Generator 包括 prompt、Skill、工具和运行环境;Evaluator 包括 rubric、Judge、解析与有效性规则;Optimizer 也可能是受 Skill 约束的 Coding Agent。

为什么要区分训练、验证与测试

把数据分层的核心目的是防止“看过答案之后再参加考试”。

数据层用途能否指导改动
训练 / 修复集暴露已知 badcase,修改 prompt、Skill、代码或工具策略可以,正是为了指导改动
验证 / 回归集比较多个 Candidate、调整阈值、选择方案可以看结果,因此会被逐渐过拟合
测试 / holdout 集在身份冻结后估计未知 case 的表现最终运行前不应向 Optimizer 暴露答案

同一 case 一旦被用于修改 Candidate,就不能继续假装是“从未见过”的测试样本。样本不多时,可以不机械地三等分,但必须记录每个 case 的用途和泄漏历史。

Historical Session 适合发现真实失败并形成训练/修复 case;它不是晋级证据。经过审查、脱敏和版本化后,这些 badcase 才能进入 Dataset。最终 Candidate 回归应使用固定 Dataset、Stack、Context 和 baseline。

插件怎样运行这一闭环

  1. 整理 Dataset:检查 Task 唯一性、路径、instruction 与 immutable source digest。
  2. 冻结 Generator:记录 Candidate manifest、模型绑定和 Host/Docker 环境。
  3. 执行 Evaluator:为每条 criterion 产生 observation、Evidence、validity、abstention 与 coverage。
  4. 约束 Optimizer:只允许在明确表面上提出一个受审改动,并生成新身份。
  5. 重新回归:不覆盖旧 Job,让 baseline 与 Candidate 证据可比较。
  6. 执行 Gate:固定输入下返回 PROMOTE 或 REJECT 建议,但不部署。

为什么 Evaluator 也要被评测

评估器不是神谕。Judge 可能受措辞、位置、模型版本或解析失败影响;确定性脚本也可能把错误字段当成成功。

插件允许建立独立 Ground Truth,把重复 Evaluator observations 与之比较,计算 ESF、SCE 和 RCR。用于改 rubric 的数据是 evaluator tuning set;证明 Evaluator 可靠的数据应来自独立 holdout。Candidate Evaluator 不能自己制造“标准答案”再证明自己正确。

你做什么

选择代表性 case,标记它属于训练、验证还是 holdout;定义 Agent 产物;为 criterion 写证据要求;指定允许改变的表面,并审查每次 proposal。

Harbor 记录什么

Dataset/Stack manifest、criterion 与 Evaluator 身份、Candidate/model binding、执行环境、Trial Evidence、coverage、元评测 provenance 与 Gate receipt。

这不能证明什么

Manifest 有效只证明结构与身份;训练集变好不证明泛化;测试集分数高不证明 Evaluator 正确;Gate 通过也不代表已经部署。可信改进需要这些边界同时成立。

更完整的术语、数据分层与插件映射见核心概念与可信分数。

3 诊断最近 Session

在整理晋级 Dataset 前,用充分披露的 Historical Job 找到重复失败。

Historical evaluation 降低冷启动成本。先预览 bounded Session metadata,检查哪些数据可能交给 Judge,再确认非晋级 Job。

你做什么

选择反映失败的最近 completed Session,检查排除项,并同意已披露 Judge/数据边界。

Harbor 记录什么

私有脱敏 Batch、冻结 Judge 身份、每条 Session 一个 Trial、criterion applicability、coverage 与 reason code。

这不能证明什么

Historical 分数不是可比 Candidate 回归证据,也永远不进入 Promotion Gate。

4 把 badcase 整理成 Dataset

把重复失败模式转成可审查 Task,而不是泄露原始私有历史。

Dataset 是经过整理的业务意图,不是私有 transcript dump。抽象失败、保留相关约束,并创建可独立审查的期望行为。

你做什么

去重失败模式,移除私有标识,分开 tuning/holdout,并审查每个 instruction file。

Harbor 记录什么

Task id、路径、instruction、敏感 metadata 检查与不可变 source digest。

这不能证明什么

干净 Dataset 不证明 population 完整,也不证明单一 metric 覆盖全部业务风险。

5 运行一次受控回归

冻结身份,建立可比 baseline,只改一个面,并检查 Trial 级证据。

Snapshot Candidate、验证 Dataset、Doctor Stack、预览 Context;新路径先运行 diagnostic,再运行 promotion-eligible Job。

你做什么

声明一个假设和一个允许的改动。保持 Dataset、criterion、provider 与 runtime 不变,除非改动明确要求新 baseline。

Harbor 记录什么

Manifest digest、Context v3、model/Judge 身份、Trial output、criterion Evidence、validity、coverage 与 governance impact。

这不能证明什么

如果证据无效、coverage 下降或 baseline 不可比,更高 raw reward 也不是进步。

6 读取 Gate 并交接

把 PROMOTE 或 REJECT 理解为 policy 建议,并把部署权限交给外部 CI/CD。

在显式 Promotion Policy 下,把 Candidate Job 与可比 baseline 比较。整体结论必须与 regression、coverage 与 invalid criterion 一起阅读。

你做什么

复核代表性证据,确认 policy 匹配业务风险,并决定外部 CI/CD 是否消费该建议。

Harbor 记录什么

Baseline/Candidate Job 身份、Policy 身份、比较细节与确定性 Gate Artifact。

这不能证明什么

PROMOTE 不是生产部署、Champion mutation 或通用质量保证。它只是针对冻结证据与 policy 的建议。

循环以显式交接结束;只有新证据值得下一次受控改动时才重新开始。