内容提要
jevcache 是围绕 TypeSafe Jev 模型的命令行缓存工具,将 Jev 返回的类型化决策按脱敏状态指纹存入本地账本,命中即返回,不再调用模型。Jev 只做选择不生成文字,速度快、成本低,但概率值存在漂移。jevcache 缓存离散答案而非概率,可发布共享决策,但需注意阈值漂移与指纹粒度问题。
延伸解读
缓存的是离散答案,不是概率
jevcache 缓存的是 Jev 返回的类型化决策,如选项、分数或布尔值,而非概率值。Jev 的概率存在漂移,但离散答案在多数情况下稳定。只要 Jev 对同一状态连续两次选择相同选项,缓存就存储该选项。然而,若概率漂移跨过决策阈值,缓存答案可能与重新调用 Jev 的结果不一致。漂移中位数 0.010,但 p99 达 0.050,最坏 0.070,意味着大规模决策集中总有一部分答案处于阈值附近,缓存无法解决这种不一致。
分享缓存即分享决策责任
jevcache 的 publish 命令允许将本地缓存的决策打包成 JSON 文件分享,他人加载后 recall 会直接命中这些决策,无需调用 Jev。这节省了成本和延迟,但意味着他人得到的答案来自你的 Jev 运行结果,而非他们自己的。如果某个决策因漂移处于不稳定位置,你缓存了“是”,他人会一直拿到“是”,直到遇到未命中状态。salt 机制可防止状态空间被枚举,但不防决策漂移。此外,若 TypeSafe 更新 Jev 权重,旧缓存不会自动失效,需手动清理。
指纹粒度决定命中边界
jevcache 在哈希前对状态进行脱敏和规范化,去除邮箱、电话、ID、时间戳等。这使内容不同但决策相关的状态可能落到同一指纹而命中,反之决策相同但结构不同的状态可能无法命中。jevcache 未公开规范化算法细节,指纹的粒度和语义等价性边界需自行测试。对于隐私敏感场景,状态留在本地、决策可流动的切割是价值,但命中质量取决于指纹设计,建议先用真实数据验证。
类型化答案稳定性数据缺口
文章引用的测试显示,732 个判断中仅 24% 的概率值三次完全相同,但该测试未单独报告类型化答案的稳定性。类型化答案的稳定率可能远高于 24%,因为多数决策的概率漂移未跨过分类边界;也可能有决策恰在边界上被漂移推来推去。这个数据缺口影响 jevcache 在生产中的命中质量和答案一致性。在有人单独测试类型化答案跨运行一致性之前,建议先用自己的 schema 和二十条真实状态跑三遍,评估稳定性后再决定是否分享缓存。
Q&A
jevcache 是什么?它和普通 AI 缓存有什么区别?
jevcache 是一个围绕 TypeSafe Jev 模型的命令行缓存工具,用 Rust 写成单个二进制文件,体量 2-3MB,无运行时依赖。它把 Jev 返回的类型化决策按脱敏后的状态指纹存入本地账本,命中即返回,不再调用模型。与精确匹配缓存(存提示词字符串)和语义缓存(存向量做相似度查找)不同,jevcache 不存提示词、不存向量、不存生成文本,只存类型化决策(选项、分数、布尔值)和对应的状态指纹。
jevcache 如何生成状态指纹?为什么改邮箱和时间戳后还能命中缓存?
指纹生成先对状态做脱敏和规范化:去掉邮箱、电话号码、长串数字、ID 和时间戳,然后对处理后的内容做哈希。因此个人信息和易变字段永远不会进入缓存键。当你修改工单中的客户邮箱或更新时间戳后,脱敏规范化后的内容不变,哈希指纹不变,jevcache 直接返回缓存答案,一次模型调用都不发生。语义缓存做不到,因为文本在向量空间会漂移;精确匹配缓存也做不到,因为字符串已变。
Jev 本身不是确定性的,jevcache 凭什么说能确定性重放?
Jev 返回类型化答案加一个校准概率。类型化答案是离散的(退款/不退款、高/低优先级、是/否),概率是连续的且会漂移。jevcache 缓存的是离散答案,不是概率值本身。只要 Jev 在某个状态下连续两次都选同一个选项,即使置信度从 0.72 变成 0.68,缓存里存的都是同一个选项。因此 jevcache 的“确定性重放”指的是冻结某一次 Jev 运行的类型化输出,而不是 Jev 本身具有确定性。
jevcache 的 publish 命令分享缓存文件时,会带来什么风险?
publish 把本地账本中已缓存的决策打包成 JSON 文件(只有指纹和答案,无原始状态),别人用 jevcache add 加载后,recall 命中时拿到的是你的 Jev 算出的答案,而不是他们自己的 Jev 算出的。如果 Jev 的漂移恰好让你的某个决策处于不稳定位置,你缓存了“是”,别人会一直拿到“是”,直到遇到未命中状态。salt 机制可防止别人枚举你的状态空间,但防不了决策漂移。此外,如果 TypeSafe 更新 Jev 权重或采样参数,旧缓存不会自动失效,会一直命中直到手动清掉账本。
jevcache 的指纹粒度会如何影响缓存命中?
jevcache 在哈希之前做脱敏和规范化。这意味着两个内容不同但决策相关的结构,如果脱敏规范化后落到同一个指纹上,就会命中;反过来,两个决策相同但结构化方式不同的状态,可能落到不同指纹上,就不会命中。jevcache 没有公开规范化算法细节,指纹的粒度和语义等价性的边界是这套系统里最需要自己动手测的部分。
在实际生产中使用 jevcache 前,应该先做什么测试?
文章建议先拿二十条真实状态跑三遍,看看你的类型化答案有多少是稳定的,再决定要不要把缓存分享给别人。因为已有的 732 个判断测试只测了概率值(三次完全相同仅 24%),类型化答案的跨运行一致性没有被单独报告。这个数据缺口决定了 jevcache 在实际生产里的命中质量和答案一致性,在有人单独测出类型化答案的稳定性之前,只能自己用自己的 schema 和状态去试。