记忆不只要存下来。
得在你需要时,及时出现。
10·02 的主线不是“调快一个搜索框”,而是把一条停滞的记忆链路重新接上:索引追上真实文件、查询走完端到端提速、结果质量有可重复的基准。从前一晚还在搜旧页、漏新页,到会话内 P50 约 1 秒。
开始时,坏掉的不只是速度。
索引自 9·28 起停更:旧文件仍被搜到,新写的页面搜不到,改过的项目页返回旧内容。与此同时,搜索每次都在重复付启动、串行等待和无关扫描的固定成本。
索引停在 9·28
搜索服务只读;没有任何进程把文件变化同步进索引。归档页仍会命中,新页面搜不到,修改过的页还是旧内容。
KNN 每次冷启动
子进程导入了用不到的模块,启动约 1.37s;老向量布局把 1,280 个候选反复从大块中取出计算。
串行等待 + 无关扫描
关键词搜完才发 embedding;即使只查记忆,也同步扫描数千个 session 目录做可见性过滤。
不是一刀优化,
是把三段链路分别修好。
把索引的新鲜度、查询关键路径、工具层多余工作拆开。否则单看“快了”,会把搜得快但结果过时也算成功。
把索引同步移出 Gateway
常驻 watcher 在 Gateway 外跟踪 memory/;按原生索引逻辑增量同步。副本稳态单页约 3 秒;V 上线后首次写入 6.2 秒,后续编辑 2.8 秒、删除 2.2 秒。几百文件副本约 1 分钟。每小时全量对账兜底,不让写索引卡住 Gateway 主线程。
缩短搜索关键路径
KNN 子进程去掉 3 个无用裸 import;embedding 与关键词搜索并发;索引重建采用 64 条/块布局,减少向量取块开销。搜索结果逐条保持一致。
删掉与记忆无关的工作
没有 session 记录的命中就直接返回,不再为每次记忆查询同步加载整份 session 目录;提前启动待命的向量子进程。48/48 查询结果一致。
三种计时口径,
各回答一个不同问题。
同一批 48 条真实查询用于搜索链路测试;Gateway 工具端到端单独测。清空全部页缓存的冷搜是压力场景,不等同日常冷查询。
搜得快之外,
第一条也更像答案。
索引追平后,用 48 条真实线上问题做盲评。匹配的新结构让结果不再指向已搬走的旧页;后来再用 54 题基准迭代排序。
| 48 条真实查询 · 盲评指标 | 索引停更时 | 同步后 | 变化 |
|---|---|---|---|
| 第一条有用(盲评) | 50% | 73% | +23 pp |
| nDCG@8 | 0.543 | 0.641 | +0.098 |
| 死链结果 | 4% | 0% | 清零 |
一天里反复测,
不把第一次变好当成终点。
真正的工作包括失败轮次、口径校正和基准防污染。每一轮都保留分歧,不只记最后一张漂亮成绩单。
恢复新鲜度
实时索引上线;新建、修改、删除都能很快反映到搜索结果。
拆掉固定耗时
KNN 冷启动、串行 embedding、session 扫描逐项定位;V 的真实工具路径中位数降到约 1 秒。
修关键词召回
#153 / #157 多轮排序修复:中文切词、IDF 和保守的三字候选回退。每轮都跑 54 题基准。
清理噪音并复测
54 题防污染、噪音目录软归档,再跑最后一轮;提升集中在首位质量和噪音率,仍留有真实问题。
真实提问仍是短板
最新 54 题里,real 组 hit@3 / hit@5 都约 46%,仍有 13/24 条进不了前五。还不能说“记忆已经都能找准”。
S12 语料敏感问题
软归档噪音目录后,S12 的正确页掉出前五;A/B 表明这是词组候选受语料统计影响,已转开发侧。不是为了刷分就把噪音目录塞回索引。
重启后的冷启动待补
重启后首次搜索曾慢到 13 秒,并触发一分钟暂停重试;自动预热还没做。常态 P50 提速不等于重启体验已收口。
主线之外,
只留下几件值得记的。
这些不和 Memory Search 的延迟/质量数据混成一个成绩。
Universal Memory
另一个检索面:归档 374 份旧导入内容,查明默认 0.35 分数门槛会挡掉纯关键词结果;按批准把查询改为 --min-score 0。与 V 的 memory_search 基准分开统计。
Memory Librarian
24 条当日 draft 完成编译;继续把日志压成项目页、人物卡与工程教训,不把搬运原文当成知识沉淀。
V Browser 口径更正
不是“停用了”。10/1 上午曾临时改走 Mac;v0.4.7 当天 12:49 修复、13:25 跨 harness 复验。此刻设备列表仍显示 Tianyi Mac Chrome online;修复后默认优先走哪条路仍需按任务确认。
今天真正加速的,是“记忆能参与下一次回答”的闭环。
索引新鲜、检索够快、结果更准缺一不可:实时索引让新事实及时进来;查询路径把会话内中位数压到约一秒;分题基准让每次排序修改都能被证伪。还剩 real 组召回和重启预热等尾项——所以这不是“搜索大功告成”,而是从停更、陈旧、慢,迈进了可测、可迭代的运行状态。