验证记录 / Validation

September 20, 2026 · View on GitHub

日期:2026-09-20。版本:0.1.0。Node:22.20.0。Jev:jev-1.13.0

三层证据

层次验证什么不证明什么
离线单元与适配器测试规则、缓存、失效、能力过滤、预算、超时、熔断与竞争语义正确率或生产收益
真实 Pi RPC + 本机 SSE 假提供商扩展实际加载、生成前换模、流式失败、Pi 事件对接商业提供商质量或真实模型成本
真实 Jev + 合成模型目录API 合约、原始语义判断与本地策略组合下游代码质量、真实账单或独立生产准确率

没有把模拟输出伪装成 Jev,也没有把 Jev 的分类结果当成执行模型已完成任务。

离线与宿主测试

npm run typecheck
npm test
npm run test:pi

离线 92 项测试通过,类型检查通过。覆盖包括:

  • 缺少前文的中文/英文续接;已恢复会话;明确的 brief 和任务边界。
  • 精确缓存的重复命中、语序/否定变化、brief/状态/策略变化、过期和 preview。
  • 错误响应、非法概率、错误模型、认证失败、重试、长 Retry-After、超时与卡住的响应体。
  • context/output/tool/image/reasoning/scope 筛选、风险不确定性、最低能力与预算冲突。
  • 热上下文成本倾向、零价格视为未知、降档等待与换模上限。
  • 持久化健康、实际双进程恢复租约竞争、过期结果、并发成功/失败顺序。
  • 手动选模取消待定 Jev 判断;分类等待期间模型 scope 改变后的重新核对;报告不含任务正文。

真实宿主检查在 Pi 0.84.20.86.1 上运行,使用隔离的临时工作目录和 Agent 配置,无用户认证文件。服务只监听 127.0.0.1,执行模型为假提供商,Pi 自动重试关闭。

宿主用例检查:生成前实际激活目标模型;“继续”保持;手动选模 pin;最低档位覆盖较低的单次 tier;shadow 不换模;失败后持久化熔断且不重放;后续新任务跳过失败模型;preview 不调用执行提供商;流出部分文本后断连也不重放。

两个版本各通过 9 项宿主检查,记录见 pi-host-checks.json

首轮真实 Jev:保留原始结果

16 条任务由开发者预先编写和标注,包含中文、英文、续接、缺失信息、图片信息不可见和一个提示注入型分类案例。没有独立标注员,也不是随机抽取的真实项目任务。

  • 13 次真实 HTTP 调用,3 个由本地规则处理的案例。
  • 预设原始档位/本地规则标签符合 15/16;仅看远程原始档位为 12/13
  • 输入 9,282 tokens;输出 1,100 tokens
  • 16 例总流程耗时中位数 506.5 ms,其中包含三个零 API 的规则案例;不能把它写成所有 Jev 请求的 p50。
  • 以评估时公开的 $0.042/百万输入 tokens 估算为 $0.000389844,未对账;当前价格以 官方 models 文档 为准。
  • 执行模型只是合成的 test/quicktest/generaltest/frontier 目录;没有运行真实编程任务。

原始记录:live-v1.json。它保留合成任务、原始 Jev Choice/Noul、分类计数和当时策略决定,不含 API Key。第一次运行使用的风险门槛为 0.35,和最终策略不同;不要把这个原始文件当作最终策略输出。

初始 manifest 中的文件哈希标识修正与格式化之前的开发快照,不与最终源码相同;最终策略文件哈希见重放记录。三个语义问题和评估任务没有因结果而改写。

错误案例

“给购物车金额函数写单元测试”预期为 general,Jev 原始选择为 quick,confidence 0.60、上下文充分 Noul 0.65。未满足语义降档条件,实际策略保留 test/general。这是分类错误被策略拦截,不是分类正确。

即便原始 tier 正确,也可能被门槛拦住。例如中文短文案改写被判断为 quick,但上下文充分值为 0.82,低于 0.85,因此保留当前 general。不能把所有 raw-tier 命中都算成“已采用 Jev 路由”。

发现策略问题,再离线重放

“Fix it.” 与“仅依据不可见图片实现系统”均被正确选为 unknown,但高后果 Noul 分别为 0.460.57。第一版的 0.35 门槛使它们被不必要地升级到 frontier。

最终规则将高后果肯定门槛改为 0.80,并要求语义 quick 的后果值 ≤ 0.20;中间区间按不确定处理。新增了针对 0.5、不存在当前模型和能力底线的回归测试。这个修正依赖初始样本发现的问题,不能再把相同样本称为独立测试集。

使用 replay.ts 将原始 typed judgments 输入最终策略,不调用 Jev:

node --experimental-strip-types scripts/replay.ts \
  examples/live-v1.json results/new-replay.json

重放记录:policy-replay.json。两个 unknown 案例改为保留当前 general;原始语义误判仍保留在原始记录中。重放的新增调用与计费 tokens 均为 0。文件包含输入记录哈希和策略源码哈希,可复核来源。它证明的是程序组合规则的变化,不证明模型变聪明了。

仍缺少的验证

没有对照执行模型的任务完成率、长期缓存收益、不同供应商账单、真实多步骤项目、生产误降档频率或所有对抗输入。预算是分类准入/尝试限制,不是执行账单控制。CI 工作流已经提供;在本地开发阶段没有 GitHub Actions 运行结果可宣称。

English summary

Validation separates offline behavior, actual Pi host integration with a localhost fixture, and live Jev classification over synthetic tasks. The first live run used 13 HTTP requests plus three deterministic continuation cases: 15/16 combined predefined labels matched, or 12/13 raw remote tier labels. Usage was 9,282 input and 1,100 output tokens. No real executor task ran.

The unit-test task was assigned too low a raw tier but held on the existing general model. Two unknown tasks exposed an overly low consequence threshold; final policy treats midrange Nouls as uncertain. The same recorded judgments were replayed with no new API calls, preserving original outcomes separately. This is a regression check informed by the development examples, not an independent holdout or proof of production savings.