跳转到内容

从 agent 查询

如果你想从 agent 的角度看看 OMem——Claude Code(或者随便哪个 agent)怎么够到你的工作上下文,所谓”用得好”一来一回究竟是什么样——这一页讲清楚。

其他几页讲的一切,归根结底都是为了让 agent 能做成这件事。一步步走一遍真实的查询——agent 扫一眼、只读它要的那点、然后从你真实的历史里把答案给出来:

Acme 第三季度评审里我们答应要再过一遍的待办项有哪些?

一个关于你真实工作的问题——这种问题 agent 平时是没有上下文可答的。

第 1 / 6 轮

值得留意的是这个套路:agent 先从便宜的来,真有需要才往深里挖。它扫一遍 L0 摘要,在 L1 打开一页,然后就收手了——因为 L1 已经够答了。这就是 渐进式披露 在干正事。

重排是 agent 干的——这才是真功夫

Section titled “重排是 agent 干的——这才是真功夫”

这一段最容易被略过。omem query 返回的命中是按索引分数排的,可那个分数只是先把候选捞出来,不是下判决。它擅长找出看着相关的页面;可你说的”那份文档”到底是哪份、你真正在乎的是谁、几个长得差不多的页面里哪个才是对的版本——这些它一概不知道。但 agent 知道。

所以一个被调教好的 agent,会把摘要——而不是分数——当成真正的信号:

  1. 先把网撒大。 omem query --limit 20,捞一个宽裕点的候选池。
  2. 每条摘要都过一遍(一条约 100 token,20 条加起来才 2k 上下——很便宜)。
  3. 挑出那 1–3 条摘要真正对上意图的——常常会把排第一的那条跳过去,就像上面那段演示里一样。
  4. 挑完了,才去 L1 把它们打开。

它还有一个特点:该出手时很主动,没命中时也很坦白。一个问题只要可能沾上你的工作,它就先查了再说(查一次空结果很便宜,漏掉一个命中可就贵了)。要是头一池子看着不行——分数都低、摘要都不对题——它会老老实实再试一次:换几个近义词重新问、把过滤条件去掉、把 --limit 提到 50。试到这份上还是没有,它才认了这次没命中,转而凭通用知识来答,但绝不会凭空捏一个引用出来。

agent 怎么够到 omem,只看你用的是哪个 agent。两条路都只是同一个 CLI 之上薄薄的一层:

一个 skill——薄薄一层封装,它的说明会教 agent:什么时候该触发、怎么对摘要重排、什么时候重试、什么时候往深里钻。任何支持 skill 的 agent 都能用;你的问题透着工作味,它就自动出手,无关的时候它就安静待着。大多数人走的是这条路。

agent 这一层说变就变——今年的心头好,明年未必还是——所以 OMem 有意不把你的记忆绑死在任何一个 agent 上(CLI 是唯一的接口)。换个 agent,记忆照样在。

到底为什么要有 skill——好让你永远不必开口

Section titled “到底为什么要有 skill——好让你永远不必开口”

OMem 本就是个 CLI,任何 agent 原本就能转头去调它。skill 之所以还要存在,是出于两个真正要紧的理由:

  • 话头一转到工作,它自己就上场了。 你不用说”用一下 OMem”,也不用提醒 agent 你还有这么一份上下文。skill 的描述会教 agent 认出一个带工作味的问题——一个同事的名字、一个项目、一个过去拍过的板——然后自己去够 omem query。“忘了开口问”这个老毛病,正是它要根治的。
  • 它教 agent 把查询查漂亮 没人管的话,一个 agent 就跑一次查询、信了排头那个分数、然后打住。skill 把这一页讲的功夫全编了进去:撒大网、读摘要、凭判断重排、池子不行就重试、顺着线索深挖、把来源引上。这份指导,才是 skill 的全部意义所在。

skill(还有 MCP server)只管查询这一件事——它们生来就是干这个的。哪天 agent 真要拿 OMem 做点别的,它也不需要什么特制工具:像对任何 CLI 那样读一下 omem --help,剩下的它自己就摸清楚了。(setup、ingest、重建索引,都是来跑的事,不是 agent 在对话半道上去做的——但这是因为那些本就是你该慎重去做的动作,而不是 skill 给你砌了一堵墙。)

到这儿,你已经把 OMem 从头到尾看了一遍:它是什么、它怎么 披露 你的工作、它怎么 出 wiki、有哪些 接缝 你能去扩、底下垫着哪些 原则,以及一个 agent 怎么把它使起来。

想要的话,还能再下一层:检索 讲一次查询究竟怎么找到对的那一页——也就是你上面看到的那些分数背后,那套多路召回(BM25 + 向量 + 重排)。不想深究的话,how-to 指南那边就开始动手了。