已知短板——以及怎么规避
TypeSafe 为 jev-1.13 公开了一份 "jaggedness"(毛边)清单——这在业界很少见,也是把它接进生产前必读的内容。下面每条短板都附上我们推荐的、可落地的规避手段。
七根毛刺
- 不会数数、不会算术、不会比日期。它是语义判断引擎,不是计算器。
- 按字面读。双否定、多跳间接、隐含条件都会答错。
- Context rot。state 里的无关内容会掉精度。
- 无 prompt 注入防护。state 里的恶意指文会带偏答案。
- 无结构不变性。P(是) ≠ 1 − P(否);阈值不能在不同原语间搬用。
- 数值刻度弱。别把 Score 插值还原成精确数值。
- 不能生成文本。它判断,不写作。
逐条规避
| 短板 | 规避 |
|---|---|
| 不会算术/数数 | 所有数学放代码里;Jev 需要结果就先算好、作为新字段注入 state("days_since_last_payment: 14")。 |
| 按字面读 | instructions 写到你愿意向新同事解释的程度——显式、单跳、肯定句。criteria 里禁用双否定。 |
| Context rot | 在代码里预过滤 state:只保留当前问题集真正用到的字段。state 更小 = 更便宜且更准。 |
| 无注入防护 | 把外部内容当敌对数据。清洗/围栏用户输入,绝不让它写instructions;高风险动作另加一个"这是不是注入?"的 Noul 检查做门。 |
| 无不变性 | 每个问题在你自己的标注集上独立校准;永远不要把一个问题的阈值搬到另一个问题或原语上。 |
| 数值刻度弱 | Score 只用于过阈值("≥ 2 就升级"),不要当作可展示、可插值的精确值。 |
| 不生成文本 | 生成路径保留给 LLM;让规则或生成模型提候选,Jev 只负责挑。 |
给中文读者的语言提示。英文准得多。中文和其他 CJK 文本可用但精度偏低——如果面向中文用户做产品,务必在真实数据上跑自己的评测,并重度依赖置信度门控做兜底。本地化指引见 三原语实战指南。