评测方法

靠测量,不靠承诺。

Klorn 公布的数字、每个数字的来源,以及每个数字无法说明的部分。 这里提到的每个数据集和脚本都在公开仓库中。

用一封邮件试试 →

三个数字及其来源

  • ≥90%
    紧急邮件召回率,CI 下限

    如果分类器的改动使合成门禁集上的紧急邮件召回率低于 90%,构建就会失败。

    来源:eval-floors.ts
  • 95.5%
    Silent 精确率

    在人工标注的真实邮件集上测得:Klorn 归入 Silent 的 22 封邮件中,有 21 封被标注为 silent。2026-08-26 运行三次,每次结果相同。

    来源:eval/README.md
  • 0
    未经批准的操作

    发送、永久删除以及转发到外部地址,都会等待批准,并记录一份与所发出内容哈希绑定的回执。你自己设置的自动回复规则也算作批准。

    由代码强制执行:attention-floor.ts

不公布总体准确率。真实邮件集早于 Meeting 和 Info 分类:它的标注 只使用三个分类,因此无法为另外两个分类打分,需要按全部五个分类重新标注。在重新标注之前, 我们不会引用它的总体准确率。上面的 Silent 精确率来自同一个数据集, 也有同样的局限。

评测如何运行

仓库中的数据集

packages/api/eval/ 中有两个数据集。真实邮件集(real-eval-set.json)包含 53 封真实邮件,经人工标注并清除了个人数据。合成门禁集 (judge-eval-set.json)包含 56 封虚构邮件,不含任何个人数据。

运行器

在 packages/api 中,pnpm eval:real 用真实邮件集为分类器打分; pnpm eval:judge 对合成集做同样的事。

CI 中的门禁

每个改动分类器的拉取请求,都会让模型跑一遍合成门禁集,并强制执行三项 下限:总体 80%、紧急邮件召回率 90%、Silent 精确率 90%。任何一项低于下限,运行即失败。 如果任务没有模型密钥(例如来自 fork 的拉取请求),会跳过并给出提示,而不是算作通过。

第二项检查不需要模型,每次 CI 测试都会运行:基于规则的快速路径和关键词兜底 在同一数据集上必须达到 70%;漏判的紧急邮件必须落入 Queue 而不是 Silent; 营销邮件绝不能被标为紧急。

真实邮件集也会在同样的拉取请求上打分,但仅作为报告。它的紧急分类只有 4 封已标注 邮件,太少,90% 的下限没有意义。

在 GitHub 上查看数据集、运行器和测量历史

已于 2026-10-14 对照仓库核实。发现有误?告诉我们。