抛弃传统向量数据库!神经图谱 NeuralMemory 让 AI Agent 真正拥有大脑记忆

github热门推荐 › 抛弃传统向量数据库!神经图谱 NeuralMemory 让 AI Agent 真正拥有大脑记忆 (第 226 章)
文章工具

抛弃传统向量数据库!神经图谱 NeuralMemory 让 AI Agent 真正拥有大脑记忆


image

神经图谱可视化示意图

项目开源地址:https://github.com/nhadaututtheky/neural-memoryPyPI 地址:https://pypi.org/project/neural-memory

一、痛点:基于向量数据库的 Agent 记忆,只是 “检索缓存”,不是真正记忆

当前绝大多数 AI 智能体(AI Agent)长期记忆方案,底层架构统一范式:LLM 对话文本 → Embedding 编码向量 → 存入向量数据库 → 查询时相似度召回 → 拼接进 Prompt

这套方案支撑了 RAG、Mem0、Zep、LangMem 等主流 Agent 记忆框架,但天生存在无法根治的缺陷:

  1. 记忆是孤立碎片
    :向量库只衡量语义相似度,无法记录因果、时序、矛盾、从属关系;
  2. 依赖 Embedding 服务,持续产生成本
    :每次读写都需要调用嵌入模型,离线环境无法运行;
  3. 无法自动处理知识冲突
    :新旧矛盾信息会同时召回,需要 LLM 额外判断,结果不稳定;
  4. 检索模式是 “搜索匹配”
    ,而非人类大脑的联想回忆,缺少多跳关联推理能力;
  5. 没有遗忘机制
    :海量记忆堆积后检索效率持续下滑,无法模拟人脑选择性遗忘。

通俗来讲:向量数据库只能帮 Agent查找历史文本,无法让 Agent理解经历、关联经验、自主演化认知。它是文件检索器,不是大脑。

二、什么是 NeuralMemory(神经图谱记忆)

NeuralMemory 是一套受脑神经科学启发、不依赖向量数据库的认知记忆引擎。核心思想:把每一条记忆抽象为神经元节点,记忆之间的逻辑关联建模为带类型、有权重的突触边,整体形成动态生长的神经图谱。记忆召回不再依靠向量相似度搜索,而是扩散激活机制(Spreading Activation):以查询目标为激活起点,沿着突触向外扩散,权重越高、关联越强的记忆节点优先被唤醒,完美复刻人脑联想回忆。

核心架构分层图

【应用层】各类AI Agent|GPT/Claude/Gemini|开发工具MCP协议
     ↓
【记忆中枢层】NeuralMemory 核心引擎
    ├─ 神经元节点:情景记忆、事实记忆、决策、错误记录、用户偏好
    ├─ 突触边(24种关系类型):CAUSED_BY、LEADS_TO、CONTRADICTS、BEFORE、RELATED_TO等
    ├─ 扩散激活检索模块
    ├─ 赫布学习权重更新
    └─ 基于艾宾浩斯曲线的动态遗忘机制
     ↓
【持久存储层】本地SQLite(默认)|支持切换PostgreSQL,无向量引擎依赖

三、核心对比:传统向量记忆 VS NeuralMemory

对比维度
向量数据库记忆方案(RAG/Mem0/Zep)
NeuralMemory 神经图谱
存储结构
扁平化向量碎片,无显式关系
图结构:神经元节点 + 类型化突触连接
检索原理
向量近似相似度匹配
扩散激活图遍历,联想式召回
Embedding 依赖
强制需要,离线不可用
可选

,核心召回纯算法实现,断网本地运行
知识冲突处理
无法自动识别,依赖 LLM 二次校验
内置CONTRADICTS关系,自动降低旧记忆权重
多跳推理能力
弱,只能单次相似召回
原生支持链式溯源(因果链、时序链)
运行成本
持续消耗 Embedding API 费用
零额外模型调用,无持续 API 开销
记忆演化
静态存储,写入后关系不变
动态调整突触权重,模拟神经可塑性
遗忘机制
需要额外代码开发
原生内置指数遗忘曲线,自动弱化低频记忆

直观案例演示

场景:项目权限模块迭代,多次变更技术方案

  1. 第一轮:确定使用 JWT 鉴权
  2. 第三轮:决定替换为 Session 机制(与旧方案冲突)

✅ 向量数据库表现查询「鉴权方案」,同时召回两条记录:JWT、Session,交由大模型自行判断,极易混淆出错。

✅ NeuralMemory 表现自动建立突触:JWT ←CONTRADICTS→ Session旧记忆节点激活权重自动衰减;查询时优先返回最新生效方案,溯源可见方案变更历史。

四、NeuralMemory 关键特性详解

1. 扩散激活召回(核心创新)

人类大脑回忆不是 “全局搜索”,而是一点触发、层层联想。NeuralMemory 执行流程:

  1. 将查询文本映射为初始激活节点;
  2. 激活信号沿着突触向周边节点传播;
  3. 信号随传播距离衰减;
  4. 汇总激活强度,排序输出高关联记忆。

优势:可以轻松召回间接相关、语义不相似但逻辑强关联的记忆,向量相似度检索很难做到。

2. 原生认知关系图谱

内置 24 种突触关系,分为五大类别:

  • 🕒 时序关系:BEFORE、AFTER
  • ⛓️ 因果关系:CAUSED_BY、LEADS_TO、RESOLVED_BY
  • 📖 语义关系:IS_A、HAS_PROPERTY、RELATED_TO
  • ⚠️ 冲突关系:CONTRADICTS、SUPERSEDED(方案替代)
  • 🧠 情景关系:EVOKES、FELT

3. 纯本地离线运行,零 LLM 强制调用

实体识别、记忆关联构建、召回、权重更新全部依靠启发式算法,不需要持续调用大模型 / 嵌入接口。

  • 隐私友好:记忆全部本地存储,无需对外传输数据;
  • 低成本:生产环境不会产生持续 API 账单;
  • 高可用:断网、内网隔离环境下 Agent 依然具备长期记忆。

4. 仿生记忆动态调控

  • 赫布学习规则
    :频繁共同激活的记忆节点,突触权重自动增强;
  • 自适应遗忘
    :长期未被激活的记忆权重缓慢衰减,避免图谱无限膨胀;
  • 记忆分级
    :支持设置优先级,重要记忆衰减速度大幅降低。

5. MCP 协议原生支持

内置 60+MCP 工具,可以无缝接入 Cursor、Claude Code、OpenClaw 等主流 Agent 运行环境,一行代码接入智能体。

五、快速上手示例

1. 安装

pip install neural-memory

2. 基础代码示例

C++ 片段需补全 main() 函数才能运行在实训台打开 →
<span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">from</span></span><span leaf=""> neural_memory </span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">import</span></span><span leaf=""> NeuralMemory</span><br  /><br  /><!--wapwm:666:793547632016--><span class="wap-wm" data-wmid="666" data-wmt="793547632016" aria-hidden="true" style="display:none;font-size:0;line-height:0;height:0;overflow:hidden;margin:0;padding:0;border:0;"></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf=""># 初始化记忆大脑</span></span><br  /><span leaf="">brain </span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span leaf=""> NeuralMemory</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">(</span></span><span leaf="">storage_path</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"./agent_brain.db"</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">)</span></span><br  /><br  /><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf=""># 写入记忆(神经元节点自动建立关联)</span></span><br  /><span leaf="">brain</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">.</span></span><span leaf="">remember</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">(</span></span><br  /><span leaf="">    content</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"系统鉴权初步方案:采用JWT令牌"</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">,</span></span><br  /><span leaf="">    memory_type</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"decision"</span></span><br  /><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">)</span></span><br  /><span leaf="">brain</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">.</span></span><span leaf="">remember</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">(</span></span><br  /><span leaf="">    content</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"评估后替换方案:改用Session会话鉴权"</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">,</span></span><br  /><span leaf="">    memory_type</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"decision"</span></span><br  /><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">)</span></span><br  /><br  /><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf=""># 联想召回相关记忆</span></span><br  /><span leaf="">related_memories </span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span leaf=""> brain</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">.</span></span><span leaf="">recall</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">(</span></span><span leaf="">query</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">=</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"项目鉴权方案"</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">)</span></span><br  /><br  /><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">for</span></span><span leaf=""> item </span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">in</span></span><span leaf=""> related_memories</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">:</span></span><br  /><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">print</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">(</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">f"记忆:</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">{</span></span><span leaf="">item</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">.</span></span><span leaf="">content</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">}</span></span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf=""> | 激活权重:</span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">{</span></span><span leaf="">item</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">.</span></span><span leaf="">activation</span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">}</span></span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">"</span></span></span><span style="white-space:pre-wrap;color: rgb(0, 0, 0);font: 16px / 24px Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;font-size: 16px;font-weight: 400;line-height: 24px;text-align: start;display: inline;flex: 0 1 auto;flex-direction: row;justify-content: normal;align-items: normal;padding: 0px;margin: 0px;background: rgba(0, 0, 0, 0) none repeat scroll 0% 0% / auto padding-box border-box;background-color: rgba(0, 0, 0, 0);"><span leaf="">)</span></span><br  />

3. CLI 工具快速调试

# 查看记忆健康状态
nmem health
# 手动新增记忆
nmem remember "用户偏好:优先使用轻量化模型"
# 主动检索联想记忆
nmem recall "模型选型"

六、适用落地场景

  1. 长期持续运行自主 Agent
    :自动化运维智能体、业务流程机器人,需要跨会话持续累积经验;
  2. 个性化 AI 陪伴、数字人
    :长期记住用户习惯、历史对话、情感偏好;
  3. 企业知识库 Agent
    :追踪方案迭代、记录历史决策,自动识别新旧方案冲突;
  4. 离线私有化 AI 系统
    :内网、涉密环境,无法调用外部 Embedding 服务;
  5. 代码智能助手
    :持续记忆项目架构、历史 Bug、技术选型变更。

七、局限性与客观说明

  1. NeuralMemory不彻底否定向量检索:在纯文本全局粗筛场景,可以选择向量检索作为补充;
  2. 复杂开放域场景,若需要高精度实体抽取,可以搭配 LLM 增强(非强制);
  3. 当前版本更适合时序持续交互的 Agent 场景,海量非结构化文档知识库场景,传统 RAG 向量方案仍有优势。

最佳实践:文档知识库使用向量检索,Agent 动态经验、情景记忆、决策链路交给 Neural 神经图谱。

八、总结

向量数据库解决的是信息检索问题;NeuralMemory 神经图谱解决的是认知记忆问题。

AI Agent 想要从 “执行指令的工具” 进化成具备持续学习、持续思考的智能体,不能只依靠碎片化文本检索。以神经图谱为核心的仿生记忆架构,代表 Agent 长期记忆重要演进方向。

📌 开源项目地址:https://github.com/nhadaututtheky/neural-memory欢迎 Star、体验、参与开发。

如果你需要,我可以额外生成:1)适合公众号发布的排版精简版本;2)配套 PPT 大纲;3)增加一组基准测试性能表格;4)补充向量方案与神经图谱混合部署架构图文字描述。



#AIAgent #神经记忆 #RAG 优化 #AI 智能体 #大模型技术


⚠️ 版权声明

本文为免费文章,欢迎转载。转载请注明出处:一木科技(https://www.pingquan.vip/2026/08/18/%e6%8a%9b%e5%bc%83%e4%bc%a0%e7%bb%9f%e5%90%91%e9%87%8f%e6%95%b0%e6%8d%ae%e5%ba%93%ef%bc%81%e7%a5%9e%e7%bb%8f%e5%9b%be%e8%b0%b1-neuralmemory-%e8%ae%a9-ai-agent-%e7%9c%9f%e6%ad%a3%e6%8b%a5%e6%9c%89/),并保留原文链接。