02NylonME AI记忆引擎:你的 AI Agent 为什么总是交付不了?因为架构从一开始就错了
NylonME AI记忆引擎:你的 AI Agent 为什么总是交付不了?因为架构从一开始就错了
—
一个尴尬的现实
2025 年,几乎每一家技术公司都在做 AI Agent。2026 年,几乎每一家都在焦头烂额。
不是 demo 跑不通——demo 都很漂亮。是交付不了。客户验收的时候,Agent 要么答非所问,要么反复问同一个问题,要么完全不记得五分钟前客户说过什么。最致命的是:客户说不清哪里不对,但就是觉得"这东西不好用"。
以 AI 客服为例。客户打进电话:"我上个月反映过宽带故障,师傅上门换了光猫,现在又断了。"一个合格的 AI 客服应该立刻调出上个月的工单、确认光猫型号、结合本次故障现象做出判断。但现实中大多数 AI 客服的表现是——“您好,请问有什么可以帮您?”
它根本不记得上个月发生过什么。
这不是某个模型的能力问题。这是架构问题。
智能的本质被误解了
过去两年,整个行业陷入了一个集体认知偏差:把大模型等同于 AI,把 AI 等同于智能。
这个等式错得离谱。
大模型是什么?是一个推理引擎。它接收 token,输出 token,在参数空间中做概率推理。它不存储,不记忆,不积累。每次调用都是一次全新的计算,上下文窗口是一个昂贵的临时草稿纸,对话一结束,草稿纸就扔了。
但智能的构成远不止推理。我们稍微拆解一下人类的智能:
- 推理:逻辑运算、因果推断、规划——这是大模型最擅长的一层。
- 记忆:经验的存储、组织与检索——大模型完全不具备这一层。
- 直觉涌现:大量经验在高维空间中自动形成的模式识别能力——需要记忆作为基底。
- 情感情境:效价判断、情绪标记、社交语境感知——需要记忆提供参照系。

看到问题了吗?以 LLM 为中心的架构把推理当成了智能的全部,把另外三层全部外包给了"把历史对话塞进 context window"和"挂一个向量数据库做语义搜索"。这两个替代方案本质上是:
- 塞上下文:成本随对话轮次线性增长,且信息只是"被塞进去",没有被组织、没有被关联、没有被遗忘。
- 向量搜索:只能回答"哪些记忆和当前 query 看起来相似",不能回答"哪些记忆和当前情境有关联",更不能处理时序衰减和情感加权。
这就好比一个人只有逻辑推理能力而没有记忆——他可以解微积分,但他记不住自己叫什么名字,记不住昨天见了谁,记不住哪些事情让他高兴、哪些让他警惕。你会把这样的人放在客服岗位上吗?
但整个行业就是这么干的。
以 LLM 为中心的架构为什么注定失败
回顾一下目前主流 AI Agent 的技术栈:
用户输入 -> 预处理 -> LLM(推理) -> 工具调用 -> 后处理 -> 输出
|
向量数据库(语义搜索)
|
对话历史(上下文注入)

这个架构有一个根本性的缺陷:LLM 是架构的中心,记忆是外挂的附件。
外挂意味着什么?意味着记忆模块和推理模块是松耦合的。LLM 调用记忆的时候,是从外部"查询"一下,拿到几条结果,塞进 prompt,然后继续推理。记忆本身在两次调用之间是静止的——它不会因为这次对话而自动更新,不会因为时间流逝而衰减,不会因为新的信息而重组。它只是一个被动的检索库。
这导致了所有 AI Agent 产品的共同顽疾:
- 不记人:对话结束,用户信息归零。下次见面重新认识。
- 不记事:工单历史、偏好记录、交互轨迹,全在向量库里"沉底",除非 query 刚好命中关键词,否则永远调不出来。
- 不成长:Agent 用了一万次还是和第一次一样笨,因为它的记忆没有在生长。
- 不反思:一条记忆错了、过时了、和另一条矛盾了——Agent 不知道,也没能力修正。
客户花大价钱上一个系统,结果连人类实习生都不如(实习生好歹记得老板上周交代过什么),他怎么买单?
记忆应该成为架构的核心
正确的架构应该是:
用户输入 -> 记忆引擎(情境共振) -> LLM(推理) -> 工具调用 -> 输出
| |
记忆编织 + 更新 推理结果回写记忆
记忆引擎是中心,LLM 是记忆引擎的一个推理外设。
这个翻转的意义是根本性的:
- 用户输入先经过记忆引擎:不是先去调 LLM,而是先在记忆中搜索"这个用户是谁、上次聊到哪了、当前情境关联了哪些历史记忆"。LLM 拿到的不是 raw input,而是被记忆上下文包裹的 input。
- 推理结果回写记忆:LLM 的输出不是终点。重要的结论、用户的偏好、这次交互的关键信息,由记忆引擎自动编织成结构化的记忆丝,存入记忆网络。
- 记忆在后台持续演化:时间衰减、情感加权、关系索引更新、冲突检测——这些在后台自动运行,不需要 LLM 参与。
- 下一次交互,记忆已经不同了:Agent 真的在"积累经验"。
回到那个 AI 客服的例子:客户第二次打进来,记忆引擎在 3ms 内完成了以下事情——识别出这个客户 ID、调出上个月宽带故障的完整记忆网络(工单内容 + 光猫型号 + 师傅上门时间 + 客户当时的情绪强度)、沿关系图扩散发现还有一条"客户对网络延迟敏感"的偏好记忆、将这一组情境上下文交给 LLM。LLM 开口第一句就是:“王先生您好,三月份的光猫更换后现在又断网了是吗?我先看一下您小区当前的基站状态。”
这才是客户愿意花大价钱的东西。
NylonME:为 Agent 而生的记忆引擎
这就是我们在做的事情。
NylonME(Nylon Memory Engine)是一个开源的、Rust 原生的记忆引擎,为 AI Agent 提供一个类人脑的记忆层。
它的核心设计理念就是上面说的那句话——记忆不应该外挂,记忆应该成为架构的核心。
六丝记忆模型

NylonME 中的每一条记忆不是文本块,不是向量,而是六条"丝"拧成的一股线:
| 丝 | 含义 | 做什么用 |
|---|---|---|
| 事实丝 | 记忆的内容本身 | 存储与展示 |
| 情感丝 | 效价(正/负)与强度 | 情感加权检索,高情感记忆更难遗忘 |
| 时序丝 | 创建时间与遗忘速率 λ | 艾宾浩斯指数衰减,久远的记忆自然沉底 |
| 关系丝 | 实体标签与跨记忆链接 | 图扩散——从一条记忆钩起一串相关记忆 |
| 置信丝 | 可靠度 | 低置信记忆在共振中权重低 |
| 频次丝 | 被提及次数 | 高频记忆晋升,抵抗遗忘 |
情境共振检索

检索不走"query -> embedding -> Top-K",走的是情境共振(Contextual Resonance):
- 从一组种子节点出发(词面匹配 + 向量匹配双通道)
- 沿关系图做多跳扩散
- 每一步按张力公式衰减:T(t) = T0 * e^(-λt) * (1 + alpha * freq) * 情感强度
- 张力低于阈值的分支自动剪枝
- 最终按累积张力排序返回
这模仿的是人脑的联想过程:一个线索勾起的不是你"看起来最相似"的记忆,而是在当前情境下张力最高的那一串。
工程选择
- Rust 引擎(Apache-2.0 开源):CSR 压缩图结构 + 自研 HNSW 向量索引 + WAL 持久化,单机百万节点 < 300MB 内存。
- 嵌入语义通道:打通 OpenAI 兼容的嵌入端点(本地 Ollama bge-m3 / 云端),词面 + 向量双种子融合召回。
- LLM 编织:DeepSeek 驱动的记忆自动分丝与冲突检测,从 raw event 到结构化六丝字段全自动。
- 协议先行:proto3 定义接口契约,引擎与网关解耦。
- 开放评测:在 LoCoMo 公开基准上全量跑通,语义通道 recall@10 = 60.2%(词面基线 47.1%,+13.1pp),数据管线全部开源。
我们做到了什么(Phase 1 & 2 完工)
截止 2026 年 8 月,NylonME 的公开仓库已经包含:
- 完整的 Rust workspace:图存储引擎 + HNSW 向量索引 + 嵌入模块 + WAL group commit
- 语义检索通道:Ollama bge-m3 / 任意 OpenAI 兼容端点
- LoCoMo 评测全管线:10 会话 1536 QA,词面 47.1% -> 语义 60.2%
- 写入 TPS:452 -> 12,494(WAL group commit + 倒排索引优化,27.6x)
- 关系丝倒排索引:weave 建边从 O(N) 全图扫描降为索引取候选
所有代码在 github.com/nylon-memory/NylonME 开源,Apache-2.0 协议。
结语:换个方向想
如果你的 AI Agent 项目正在交付困难期,不妨停下来问自己一个问题:
你的系统里,记忆是第一公民,还是 LLM 是第一公民?
如果答案是 LLM——你可能需要重新审视一下架构根基。大模型是这一代 AI 浪潮的引擎,但引擎不等于整台车。一辆没有方向盘的跑车,再快也到不了目的地。
记忆,就是 AI Agent 的方向盘。
NylonME 刚刚起步,地基打完了,欢迎来看 github.com/nylon-memory/NylonME。拍砖、提 Issue、贡献代码都欢迎。
本文为 NylonME 技术博客系列第 2 篇。第 1 篇《给 AI Agent 造一条"尼龙":记忆系统 Phase 1 完工,实测数据全公开》见同目录。
更多推荐


所有评论(0)