三份"真相"会对不上
AI 系统里通常有三处数据 ✔:**缓存**(上次结果 ✔)、**索引**(检索用的资料 ✔)、**数据库**(业务记录 ✔)。
三者更新时机不同 ✗ → 就会出现"对不上" ✔:
用户改了资料 → 索引还没更新 → 答案还是旧的 ✔;
缓存没失效 → 结果比库里的还老 ✔。
**要让三者有明确的"版本与失效约定"** ✔。
一、三种典型不一致
| 现象 | 原因 |
|---|---|
| 回答依据旧资料 ✔ | 索引未重建或版本未切 ✔ |
| 结果与库里不一致 ✔ | 缓存键没带数据版本 ✔ |
| 同一问题两次答案冲突 ✔ | 一次命中缓存、一次回源 ✔ |
**第 ③ 项最容易被误判为"模型不稳定"** ✗→✔ ——
其实是缓存 ✔(见缓存那篇 ✔)。
二、四条约定
1. **缓存键必须包含数据版本** ✔(索引版本 + 提示词版本 + 模型 ✔ —— 见可复现那篇 ✔);
2. **索引切换用版本号,不用"就地覆盖"** ✔(新版本建好再切 ✔ —— 见新鲜度那篇 ✔);
3. **写操作要触发失效** ✔(资料变了 → 主动清相关缓存 ✔);
4. **留一条"旁路"**(跳过缓存直读 ✔)—— 供排查与对照 ✔。
三、怎么验证一致性
四、三个反模式
五、一条判据
> 同一条问题,**间隔 5 分钟问两次** ✔,答案会在什么情况下不同 ✔?
> 说不清(缓存?模型?数据?),说明三者的失效约定还不明确 ✗。