Harness 核心 · 模型周围的 Harness

长期记忆:向量检索

Embedding → 向量数据库 → 语义搜索,topK 与 minScore 的设计决策

本页解决的问题

先给结论

「长期记忆:向量检索」要解决的关键问题是什么?

Embedding → 向量数据库 → 语义搜索,topK 与 minScore 的设计决策

判断标准

让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。

下一步

写下一个问题:试完这个方法后,你能用什么证据回答它?

常见误区

结论听起来很完整,却没有检查最关键的假设。

一个类比
🗂
短期记忆 = 你的桌面
上下文窗口,放得下的信息有限
🗄
长期记忆 = 你的档案柜
向量数据库,需要时检索相关档案放到桌面上
桌面放不下所有东西,但你可以随时从档案柜里调取最相关的文件
交互演示:点击提问,观察检索过程
🗄 记忆库 8 条历史记忆
Embedding gemini-embedding-001
维度 768
存储 LanceDB
topK 5
minScore 0.3
点击模拟不同的用户提问
🔍 向量检索过程
三个设计决策
📌 设计决策 ①
什么信息该存入长期记忆?用户偏好、项目配置、历史 Bug、常用操作,这些决定了 Agent 的个性化程度。
📌 设计决策 ②
记忆检索质量取决于 Embedding 模型。「修登录接口」和「登录接口并发 500」,模型能匹配到同一条记忆吗?
📌 设计决策 ③
记忆太多也是问题:topK=5 意味着每次最多召回 5 条。如何保证最重要的记忆排在最前面?
Takeaway
Takeaway 短期记忆(上下文窗口)让 Agent 记住当前对话,长期记忆(向量检索)让 Agent 记住上个月的事。两者配合,Agent 才能像真正的助手一样:既了解你现在在做什么,也记得你过去的偏好。

「一个类比」为什么能找到相关内容

「Embedding → 向量数据库 → 语义搜索,topK 与 minScore 的设计决策」把检索问题从“把资料存起来”推进到“怎样找到真正相关的资料”。这一步决定了 RAG、推荐和以图搜图最后交给模型的输入质量。

相似度不是答案,召回之后还要核对

在「Embedding → 向量数据库 → 语义搜索,topK 与 minScore 的设计决策」对应的流程里,Embedding 负责把对象放到可比较的语义空间,近邻索引负责减少搜索范围,最终的回答仍然依赖召回片段是否覆盖问题、距离指标是否合适,以及内容有没有过期。

先区分找得到和找得准

把「Embedding → 向量数据库 → 语义搜索,topK 与 minScore 的设计决策」落成一次小测试:准备几条有明确答案的查询,记录召回的相关性、遗漏和无关结果,再决定是否需要换切分方式、索引或重排。

从「一个类比」走到「交互演示:点击提问,观察检索过程」

「一个类比」先把问题落在「🗂 短期记忆 = 你的桌面 上下文窗口,放得下的信息有限 → 🗄 长期记忆 = 你的档案柜 向量数据库,需要时检索相关档案放到桌面上 桌面放不下所有东西,但你可以随时从档案柜里 调取最相关的文件」上;到了「交互演示:点击提问,观察检索过程」,讨论继续推进到「🗄 记忆库 8 条历史记忆 Embedding gemini-embedding-001 维度 768 存储 LanceDB topK 5 minScore 0.3 点击模拟不同的用户提问 🔍 向量检索过程 —」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。

把这条判断带到下一个场景

检索系统也可以这样看:先确定什么算相关,再观察召回是否覆盖问题,最后检查排序、切分和时效性有没有把真正有用的内容挤出去。

  • 「一个类比」:🗂 短期记忆 = 你的桌面 上下文窗口,放得下的信息有限 → 🗄 长期记忆 = 你的档案柜 向量数据库,需要时检索相关档案放到桌面上 桌面放不下所有东西,但你可以随时从档案柜里 调取最相关的文件
  • 「交互演示:点击提问,观察检索过程」:🗄 记忆库 8 条历史记忆 Embedding gemini-embedding-001 维度 768 存储 LanceDB topK 5 minScore 0.3 点击模拟不同的用户提问 🔍 向量检索过程 —
  • 「三个设计决策」:📌 设计决策 ① 什么信息该存入长期记忆?用户偏好、项目配置、历史 Bug、常用操作,这些决定了 Agent 的个性化程度。 📌 设计决策 ② 记忆检索质量取决于 Embedding 模型。「修登录接口」和「登录接口并发 500」,模型能匹配到同一条记忆吗? 📌 设计决策 ③ 记忆太多也是问题:topK=5 意味着每次最多召回 5 条。如何保证最重要的记忆排在最前面? Takeaway Takeaway 短期记…

最后的「三个设计决策」把讨论落到「📌 设计决策 ① 什么信息该存入长期记忆?用户偏好、项目配置、历史 Bug、常用操作,这些决定了 Agent 的个性化程度。 📌 设计决策 ② 记忆检索质量取决于 Embedding 模型。「修登录接口」和「登录接口并发 500」,模型能匹配到同一条记忆吗? 📌 设计决策 ③ 记忆太多也是问题:topK=5 意味着每次最多召回 5 条。如何保证最重要的记忆排在最前面? Takeaway Takeaway 短期记…」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。

标记为已学完 阅读进度会自动记录
← 上一篇下一篇 →

继续阅读

同一条线上的下一篇。

文章讨论

读到这里,留下一个判断。

把刚想明白的地方、还没想通的问题,留给下一位一起学习的人。

正在讨论 长期记忆:向量检索 模型周围的 Harness
3条讨论文章讨论 · 与共学社区同步
在共学社区查看
AM
Asha Morgan内容编辑
观点实践记录

我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。

文章讨论7 有帮助
LH
Lin Harper独立开发者
观点观点

读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。

文章讨论5 有帮助
KM
Kiki Moore产品运营
问题问题

如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。

文章讨论4 有帮助