AskaEth
cb564fe981
fix(memory): 空 query 不再触发语义回退 + 回退有界(修真机 39 秒召回)
真因(agent-197,文件:行):只有附件的消息正文为空 ⇒ queryFromMessages 返回空串 ⇒
retrieve.go 的 vectorIndexScores 在问索引之前就 return ⇒ 上层分不清「没问过索引」与
「索引无命中」⇒ 打出误导的 no-candidate-hit ⇒ 转内存回退,把全库 302 条候选正文塞进
一个 embedding 请求(302 × 约 130ms = 39.3 秒,与实测 duration_ns 吻合)。
索引/维度/表/写入其实全是好的(PG vec_items 302 行全 dim=1024,与 SQLite 302 个 id 集合相同)。
修法:空/纯空白 query 整条语义路径跳过(不问索引、不 embed);回退改为有界
(分批 32 + 1 秒时间预算 + 正文到向量 FIFO 缓存 1024,不再每回合重算)。
文件:retrieve.go / retrieve_semantic.go + 新增 retrieve_fallback.go / retrieve_keyword.go /
retrieve_fallback_test.go(retrieve.go 曾达 501 行,按 ≤500 拆分)。
变异:去掉空 query 门 ⇒ 向量化 43 条文本(want 0);整库单请求 ⇒ 69 条超上限 32;停用缓存 ⇒ 重复嵌入。
2026-10-05 08:04:47 +08:00
..
2026-10-04 19:55:18 +08:00
2026-09-06 04:26:02 +08:00
2026-10-04 21:11:17 +08:00
2026-10-04 22:13:17 +08:00
2026-10-04 22:16:26 +08:00
2026-10-04 10:54:07 +08:00
2026-10-04 22:16:26 +08:00
2026-09-08 21:36:03 +08:00
2026-10-04 16:58:00 +08:00
2026-10-03 15:22:03 +08:00
2026-10-04 12:49:40 +08:00
2026-09-06 04:17:20 +08:00
2026-10-05 08:04:47 +08:00
2026-10-04 22:30:03 +08:00
2026-10-04 12:07:51 +08:00
2026-09-06 08:10:35 +08:00
2026-09-05 23:09:26 +08:00