AgentMemory RetrievalRanking召回策略RAG
记忆检索策略:最近优先、语义相似,还是任务相关?
记忆系统最常见的误区,是把“向量相似度最高”误当成“最该注入上下文的信息”。本文系统比较三类核心信号:最近性、语义相似度与任务相关性,并给出融合排序、误召回治理与评测方法,帮助 Agent 在调用历史经验时更稳、更准、更少污染。
2026年3月7日
Synthly 团队
预计阅读 15 分钟

📷 Photo by Kampus Production via Pexels
一、检索不是“找最像”,而是“找最该用”
很多记忆系统的第一版都会走向一个简单公式:
- 向量相似度最高的 top-k 直接注入 prompt
这在 demo 阶段有效,但上线后很快暴露问题:
- 召回结果看起来很像,却不是当前任务最需要的
- 过期信息因为语义接近被反复召回
- 不同阶段的状态被混进同一个回答
所以记忆检索本质上是一道排序题,而不是单纯检索题。
二、三类核心信号的优缺点
1)最近性(Recency)
优点:
- 能反映当前任务最新状态
- 对动态偏好和阶段切换更敏感
缺点:
- 容易高估“刚发生但不重要”的信息
2)语义相似度(Semantic Similarity)
优点:
- 对自然语言查询友好
- 能在长尾表达中找到表意接近的内容
缺点:
- 容易召回“像但无关”的信息
3)任务相关性(Task Relevance)
优点:
- 最接近业务真实需求
- 对多步骤 Agent 特别有效
缺点:
- 需要更强的任务建模与标签体系
三、融合排序:最常见也最实用的方案
实践中,最稳定的方案通常不是三选一,而是融合打分:
$$score = w_r \cdot recency + w_s \cdot similarity + w_t \cdot taskRelevance$$
重点不在公式,而在权重如何按场景调整:
- 任务状态型记忆:提高最近性权重
- 用户偏好型记忆:提高长期稳定信号
- 知识片段型记忆:提高相似度与任务相关性
也就是说,不同记忆类型应该有不同排序策略。
四、误召回治理:宁可少召回,也别把脏信息塞进去
记忆系统上线后最贵的问题,通常不是漏召回,而是误召回导致系统看似“记得很多”,其实越聊越偏。
建议至少加三层保护:
- 最低分阈值
- 记忆类型白名单
- 注入前二次校验(是否满足当前任务条件)
对高风险任务,还可以采用“先推荐、后确认”的方式,而不是直接把记忆当事实使用。
五、评测方法:别只看 recall@k
recall@k 很重要,但不足以评估记忆检索是否真的有用。建议同时看:
irrelevant@k:误召回率answer_contribution_rate:被召回记忆对最终答案是否真的有贡献pollution_regression_rate:召回后是否增加错误或偏移
只有把这些指标放在一起,才能判断当前排序策略到底是在帮忙,还是在制造噪声。
六、结论:优秀的记忆检索系统,本质上是“上下文排序器”
记忆系统的目标不是“召回更多”,而是“只注入最值得注入的信息”。
最近性、语义相似和任务相关性不是替代关系,而是三种互补信号。真正成熟的系统,会把它们融合成一套可调、可评测、可解释的排序机制。