DEV Community

VinsonChen
VinsonChen

Posted on

Wangdefa.Memory — 本地优先的 Agent 五层记忆体组件

我改了下


title: "Wangdefa.Memory — 本地优先的 Agent 五层记忆体组件"
published: true
description: "我们做了一个无向量、无云端依赖的 Agent 记忆体,想试试\"像人一样记住事情\"这条路能不能走通。"

tags: showdev, dotnet, ai, opensource

人类最需要的 Agent,不是理解明面上的指令,而是能洞察未表达的需求。

我们认为人类对于记忆力的感知关系永远不应该通过向量计算而得出,所以我们避开了当前主流RAG实现方式,尝试使用无向量技术路线进行了一次技术探索。

希望让Agent获得更贴近人类记忆索的运行机制。


人类是怎么记住事情的

你还记得十年前的某个下午和谁聊过什么吗?当时的场景、天气、氛围又是如何的呢?

比如十年前的一次对话,我能记得的是:当时跟谁、在哪、大概聊了什么、对方当时的语气、我当时的情绪。具体说了哪些字,早就忘了。

但那些记忆还在,只是被压缩了。

等某个场景触发,我能重新想起来,而且想起来的内容是"整块的",不是碎片。

人不会一下子记住所有细节,而是会通过对现在场景的需求进行浅、中、深不同程度的回忆。

基于认知的快速回应,
基于事件的开阔性描述,
基于细节的全盘回忆探索。

——这套机制跟关键词检索、向量匹配完全不是一回事。

一个人记住事情,通常是这样几个步骤:

  1. 感知:发生了什么
  2. 特征提取:什么值得记
  3. 近义关联:跟已有的记忆连上
  4. 压缩存储:只保留关键信息
  5. 遗忘:时间久了权重下降
  6. 重新激活:被触发时整段调出

所以,人类实际的记忆感知与 RAG 应该是大相径庭的。

而实现类人的Agent记忆,就需要找到人类与机器之间的共性存在,什么是他们的共性?

记忆特征,人类对画面对事件的所有细节特征,转化成机器语言就是【特征标签】。

而机器又是比人类更适合处理大量特征标签的存在。


基于上述内容做了这个东西

Wangdefa.Memory 是按照这套"人类记忆模型"来设计的五层记忆体组件。

五层对应的是:

  • 认知层:记录发生了什么
  • 特征推演层:从记录里提取特征,建标签
  • 思考层:把当前对话跟已有记忆做关联
  • 阅历层:存完整事件和知识
  • 传递层:控制记忆怎么被读取

核心不是关键词匹配,是特征推演

它通过标签池、密码簿、特征统计三者配合,实现精准匹配、近义扩展、多轮循环匹配,最后按时间衰减排序。

你不需要教 Agent 怎么搜索——它会自己沿着特征关联找到相关记忆。


它的设计选择

  • 无向量:不做向量检索
  • 无云端:全部本地存储,SQLite + JSON
  • 无依赖:只需要 .NET 10 和两个基础包
  • 只为记忆:它不是一个 Agent 框架,只是一个记忆组件

你可以接入现有的 Agent 系统,也可以单独测试。


代码和示例

Repo 里有一份完整的 README 和 ConsoleDemo,三分钟可以跑通整套写入-查询流程。

GitHub: https://github.com/VinsonWild/Wangdefa.Memory

目前是 Apache 2.0,.NET 10。


最后

我做的这件事,出发点其实很简单——人是怎么记住事情的,能不能让 Agent 也这样记住

现在还在很早期的阶段,但它已经能跑了。如果你也在做 Agent 方向,欢迎试,欢迎提 Issue,欢迎指出我理解不对的地方。

Top comments (0)