跳转到内容

设计原则

如果你想知道其余一切背后那个为什么——就是那几个挑大梁的决定,它们解释了 OMem 为什么存 Markdown 而不是数据库、为什么隔一阵跑一次而不是常驻 daemon、又为什么死活不让 LLM 来做解析——这一页讲清楚。

这几条是真正承重的想法——其他概念页里讲的一切,几乎都能顺着其中一两条推出来。点开任意一张卡片,把背后更深一层的道理展开来看:

其中两条分量比别的更重,值得用大白话单独说说。

大多数”AI 记忆”工具,都把你的记忆锁进一个你看不见的东西里——一个向量库,一个看不透的索引。OMem 偏要反着来,这一注借自 Andrej Karpathy 那个 LLM 读得懂的 wiki 的想法:核心产物就是一份人能读的 Markdown wiki,而它本身就是检索语料。agent 读的和你读的,是同一份东西。

这带来一个看得见摸得着的好处。索引都只是叠在上头的看法——全删了,它们能从 wiki 重建。wiki 本身又是从那份不可变的 raw/ 归档生成的——wiki 删了,它能从 raw/ 重建。没有一样东西被关起来:备份、版本控制、手动改一页、换台机器接着用,随你。你的工作上下文还是你的,而且是一种五十年后还打得开的格式。

一个挺在理的问题:前沿 LLM 直接读个 PDF、读个 PPT 都不在话下——那 OMem 干嘛还要先把每个文件解析成一份干净的 parsed.md,而不是把原文件往模型手里一塞了事?

最大的原因是省钱,而且分两半:

  • 解析这一步,本身不花 LLM 的钱。 OMem 用真实的库(python-docx、pymupdf 等)把文件抽取出来,不是调模型——把一份复杂的 PPT / Excel / PDF 转成 Markdown,基本是免费的。
  • 转成 Markdown 之后,AI 读 Markdown 比直接读原文件便宜得多。 把一份 30 页的 PPT、或一张大表格直接喂给模型,每查一次都烧掉一大把 token;而一页清爽的 Markdown,只是其中零头——何况它会被反复查。

所以”直接把文件丢给 LLM 看一眼”才是那个贵的做法,不是省事的做法。OMem 走的是便宜那条:解析一次(免费),转成 Markdown,之后 AI 每次读都便宜。

而真正难的地方在于:既要这么省,又不能掉质量。 办公文件的价值全藏在细节里,粗糙的转换器最爱把每种格式里最值钱的那部分悄悄丢掉——PPT 的演讲者备注和嵌入图表、Excel 的合并单元格和表内图片、老文档里的 EMF 矢量图、扫描的中英混排页、邮件里靠 cid 内嵌的图。所以 OMem 给每一种格式都做了专门的 parser,就为把这些 edge case 一个个捞回来:PPT 按页切、留住演讲者备注、嵌图交给视觉模型;Excel 按 sheet 渲染、留住图片;扫描件走为中英混排调过的 OCR;EMF 图先转 PNG 再让视觉模型看。“看懂图”是解析的一部分,不是事后挂的功能。 这是最不性感、却下了最多功夫的一层——而了不起的恰恰在这:那条又免费又便宜的路,同时还把你的文件解析得很准,所以 AI 才答得准。

(一个 parser-llm 插件留给了 v1.5,给那些宁愿拿这个去换”整文件版面理解”的人——明明白白的取舍,不是默认替你定。)

为什么你已经看过了。最后一块,是agent 究竟怎么用它:接着看 从 agent 查询,看一个真实的 agent 怎么趟过 OMem 这几层,把一个问题答出来。