Skip to content

Releases: chaterm/Token-Verifier

Token-Verifier 0.1.1-rc.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 05:35

Changelog

  • d625396 feat(cli): --progress 显式开启的采集进度条
  • 03ed154 feat(collect): 端点错误即时可见 —— 首例 WARN + 结束失败分布
  • ab08239 fix(adapter): 响应体大小封顶 512KiB,防恶意端点内存耗尽
  • 3a60325 fix(cli): 文件类错误自带路径且不泄露 OS 原文,配置结构性校验前移
  • 516b7f3 fix(report): verbose 分布取值渲染前剥控制字符
  • 515a7fd fix(transport): 不跟随重定向 + error_detail 落盘前 4KiB 截断

Token-Verifier 0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 10:04

Token Verifier 是一个无状态命令行工具,用于验证大模型 API 端点是否真的提供了它所声称的模型与配置。

它不依赖权重、不依赖评分标准、不依赖「答对」任何题 —— 只比较两侧端点在同一套刺激下产生的采样分布形状。分布对模型身份、量化、采样参数、prompt 改写都异常敏感,而对瞬时的网络波动相对稳健。这是它与 benchmark 的根本区别:benchmark 回答「这个模型有多强」,Token Verifier 回答「这还是同一个模型吗」。

经过三个 release candidate(v0.1.0-rc.1 ~ rc.3)的验证,本版为首个正式版。采集与比较链路已全部实现,覆盖全部五个探针。


五个探针,各自抓什么

探针 观测什么 能抓到什么
onetoken 温度 1.0 下极短答案的取值分布 换模型、换量化、采样参数被改
tokenizer 分词器敏感输入上服务端上报的输入 token 数 分词器/模型家族更换、中间层悄悄改写你的 prompt
needle 长上下文中按位置埋入的确定性派生标记的召回 上下文被静默截断、长上下文能力降级、窗口大小造假
think-effort 指定思考强度下的思考量分布 思考被关闭、预算被削减、强度参数被忽略
toolcall 工具选择、参数语法合法性、并行调用 agent 行为漂移、工具调用能力降级

请求格式(协议)与上下文长度是正交于探针的两个测试轴。 每个探针都会在所有声明的协议(openai-chat / anthropic-messages / openai-responses,流式与非流式)和所有上下文档位上各跑一遍,判定按 (探针, 协议, 上下文档位) 的切片独立做出。端点若只在某一种格式下、或只在某一段长度上做了替换/截断/降级,会在对应切片上单独暴露,不会被正常切片稀释成「整体没问题」。

设计要点

  • 无状态两步:collect 采集 → rawData;compare 离线比较,全程不发请求。基线可离线分发,官方发布的参考 rawData 与用户自建基线均可对标。
  • 采集计划带 SHA-256 digest:锁的是「实验设计」而非网关接线,所以你可以自由调整 base URL / API key / 阈值,而不丢失与官方基线的可比性。
  • digest 脱敏档:保留观测值与内容哈希,不含任何模型输出文本,rawData 可公开发布而不泄露响应。needle 埋点标记由题目 ID 哈希派生,题库与 rawData 中都不以明文出现。
  • 不带默认阈值:任何绝对阈值都是无意义的 —— 必须用同一已知可信端点采集两次标定「正常波动」量级。缺任一待比较探针的阈值,compare / run 会拒绝执行(exit 2)。
  • CI 友好的退出码:0 全 pass · 1 有 fail · 3 两侧不可比(配置问题)· 5 inconclusive · 6 子集比较(--allow-subset)—— 永远不会被静默当作 pass 消费。

版本周期内的主要变更

相对 v0.1.0-rc.1:

  • feat:档位级阈值 thresholds.<probe>.<bucket>,逐 context_bucket 独立判定(不再被跨档位稀释)。
  • feat:tv version 子命令(--version),显示注入的 tool_version。
  • feat:tv compare / tv run 新增 --allow-subset,两侧计划不必逐字节一致 —— context_buckets 取交集、repeats 取较小值降采样、min_n 闸门忽略,子集全 pass 退出码 6。
  • feat:openai-chat 流式请求默认携带 stream_options.include_usage,否则流式拿不到 token 数。
  • refactor:官方基线发布迁移至独立数据仓库 Token-Verifier-Data。

相对 v0.1.0-rc.3(本正式版新增):

  • fix(adapter):容忍 Bedrock 网关附加的空字符串 error 字段(已含于 rc.3,本版保留)。
  • docs:README 验证内容表新增「能抓到什么」列与协议/上下文长度正交性说明。

已知限制 / 未完成

  • raw_level: full 尚未实现 —— 配置它会被明确拒绝,而非静默降级。
  • 拥塞控制尚未实现。
  • 不提供聚合纯净度分:把 N 个探针压成一个数字需要标定数据支撑权重与掉分曲线,当前阶段不做。
  • needle 探针的卡方池化假设各埋点单元独立,实际存在正/负相关。

完整文档在 docs/:PROBES.md(各探针机理)· ARCHITECTURE.md · DATAFLOW.md · SPEC-CONFIG.md · SPEC-SUITE.md · SPEC-RAWDATA.md。

负责任地测试

只测试你有权访问的端点,遵守服务商条款、速率限制与隐私要求。不要公开密钥、私有提示词、原始思考内容。Token Verifier 给出的是差异证据,不是底层模型身份的证明。

Token-Verifier 0.1.0-rc.3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Sep 10:54

Changelog

  • 0ed525e fix(adapter): 容忍 Bedrock 网关附加的空字符串 error 字段

Token-Verifier 0.1.0-rc.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 09:43

Changelog

  • 60d2f8a feat: Token-Verifier v1 —— 多探针模型一致性验证工具
  • ef09ecd feat: openai-chat 流式请求默认携带 stream_options.include_usage
  • 059a616 feat: tv 新增 version 子命令(--version),显示注入的 tool_version
  • 4e44188 feat: 档位级阈值(thresholds..)与 bucket 粒度判定报告