当前位置: 首页 > news >正文

给 AI Agent 加记忆之前,先决定它到底允许记住什么

给 AI Agent 加记忆之前,先决定它到底允许记住什么

Agent memory 是一个很容易被讲空的能力。

最简单的说法是:把对话存起来,下次检索相似内容,再塞回上下文。

但真正接到 AI 宿主里时,问题会立刻变具体:

  • 哪些内容只是当前会话上下文?
  • 哪些内容算长期事实、偏好或关系?
  • 哪些内容是 reasoning trace,而不是用户知识?
  • 记忆归属于用户、项目、工作区,还是全局?
  • 错误记忆如何纠正?
  • 删除路径在哪里?
  • Agent 下次使用某条记忆时,如何证明来源?

这也是我阅读 Doramagic 的 agent-memory manual 时认为最重要的点:它不应该被理解成“给 Agent 接一个向量库”,而应该被理解成“给 Agent 建立可审计的记忆边界”。

项目地址:

  • Doramagic 项目页:https://doramagic.ai/en/projects/agent-memory/
  • Doramagic manual:https://doramagic.ai/en/projects/agent-memory/manual/
  • 上游仓库:https://github.com/neo4j-labs/agent-memory

第一层理解:三类记忆不是一回事

Doramagic manual 把 agent-memory 的核心拆成三层:

层级 存什么 为什么重要
short-term memory 当前 session / conversation 的消息历史 帮 Agent 保持当前对话上下文,但不把一切都变成永久知识
long-term memory entity、preference、relationship 用于长期事实、用户偏好、领域关系,但也带来隐私、纠错和租户隔离问题
reasoning memory step、tool call、trace、similar trace 让 Agent 行为可复盘,而不是把“它为什么这么做”藏在黑箱里

这个拆分很关键。

“记住所有东西”不是工程方案,而是一个数据治理风险。

用户的一句话可能只适合留在 short-term memory。

一个明确确认过的偏好,才可能进入 long-term memory。

一次失败的工具调用和恢复过程,更适合进入 reasoning memory,而不是混进用户事实库里。

如果 AI 宿主不知道自己正在读写哪一层记忆,就不应该直接上生产。

Neo4j 图结构不是装饰

agent-memory 使用 Neo4j 作为图存储后端。这个选择并不是为了“看起来更高级”,而是因为 Agent memory 经常不是一堆文本块。

真实记忆往往有关系:

  • 某个人属于某个组织
  • 某个任务来自某次 session
  • 某次 tool call 影响了某个 entity
  • 某个 preference 只属于一个用户
  • 某条 reasoning trace 创建或更新了某个记录

manual 中提到 POLE+O 类型:PERSONORGANIZATIONLOCATIONEVENTOBJECT,并支持扩展实体类型。

这意味着长期记忆不是随便扔进一个 note,而是进入一个可描述、可检查、可演进的结构。

当然,图结构不会自动让系统正确。

它只是让错误更容易被看见。

这已经很重要。

后端选择就是边界选择

manual 提到两条后端路径:

  • 通过 Bolt 直连 Neo4j
  • 通过 hosted NAMS REST backend

这不是一个小小的部署选项,而是运行边界。

如果你走自托管 Neo4j,就要负责数据库配置、隔离、备份、权限和运维。

如果你走 NAMS,就要检查远程服务边界、workspace 所属、API 配置、本体版本等问题。

所以第一次评估时,不要先问“哪个更先进”。

应该先问:

这份记忆允许存在哪里?以后谁能读到它?

这个问题回答不清楚,就不要让 Agent 写入长期记忆。

Ontology 是容易被低估的部分

manual 中还提到 NAMS 的 typed、versioned ontology layer。

这部分很容易被忽略,但它决定了记忆能否长期维护。

没有 ontology 边界时,Agent memory 会悄悄漂移:

  • 同一个实体被记成多个名字
  • preference 和 fact 混在一起
  • tool result 被误当成用户意图
  • 过期知识继续被检索
  • 私有记忆和共享记忆混在同一个池子

ontology 不能自动解决这些问题,但它提供了一个地方来定义“什么是有效记忆”。

第一次试用时,我不建议直接设计复杂领域模型。

更合理的首跑是:

  • 一个测试用户
  • 一个测试 session
  • 两种 entity type
  • 一种 relationship
  • 一条 reasoning trace
  • 一个纠错案例

如果这样的小闭环都无法检查和纠正,扩大规模只会让问题更难发现。

一个安全的第一次运行

给 AI 宿主接入 agent-memory 之前,可以先做一个 sandbox dry run。

不要用生产凭据,不要用真实用户数据。

推荐的最小验证路径:

  1. 创建临时测试用户和 session。
  2. 写入一条 short-term conversation message。
  3. 写入一个明确的 long-term entity,例如一个假的用户偏好。
  4. 记录一次 reasoning step 或 tool call。
  5. 在下一轮检索上下文。
  6. 检查返回内容分别来自哪一层 memory。
  7. 修改或删除一条错误记忆。
  8. 再次检索,确认纠正生效。

这里最重要的产物不是“demo 跑起来了”。

真正重要的产物是审计链:

  • 写入了什么
  • 为什么写入
  • 存在哪里
  • 如何被检索
  • 如何被纠正
  • 哪些东西 Agent 不允许记住

最大的坑:把 memory 当成开关

“给 Agent 加 memory”听起来像一个功能增强。

实际上,它改变的是 Agent 的状态模型。

无状态 Agent 可能在一次运行里犯错。

有状态 Agent 可能犯错、记住错误,然后在下一次运行里更自信地复用这个错误。

所以 memory 不是不能加。

而是必须从更小的首跑、更清楚的权限、更可见的复核路径开始。

接入前检查表

在让 AI 宿主使用记忆层之前,至少回答这些问题:

  • 启用了哪些 memory tier?
  • 哪些写入是自动的,哪些写入需要确认?
  • 后端存储在哪里?
  • 记忆按用户、workspace、tenant 还是项目隔离?
  • 用户能否查看和纠正被记住的事实?
  • reasoning trace 是否和长期用户知识分开?
  • 检索结果是否显示 provenance?
  • 删除路径是否明确?
  • 是否有一个 sandbox test 能证明这些边界?

如果答案不清楚,下一步不是生产接入。

下一步应该是更小的验证闭环。

参考:Doramagic agent-memory manual:https://doramagic.ai/en/projects/agent-memory/manual/

说明:本文基于 Doramagic 对 neo4j-labs/agent-memory 的独立项目整理,不是 Neo4j 官方文档,也不代表上游项目背书。

http://www.jsqmd.com/news/1057233/

相关文章:

  • 南京馨琪冷暖:南京专业靠谱的锅炉地暖系统安装避坑指南与节能攻略 - 速递信息
  • 2026大理本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 终极指南:DDrawCompat如何让Windows经典游戏在现代系统重生
  • 2026益阳本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 2026西宁本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 面向对象设计与结构-第二单元总结
  • 在太原吃小龙虾哪家好吃?本地实测高口碑店推荐 - 速递信息
  • 丽水本地AI流量获客效率低?2026优质GEO优化公司推荐与行业选型指南 - 936品牌测评网
  • 设计师如何把AI变成设计反射弧:三阶段协作心法
  • 基于NXP KL46Z与DA7212的USB音频适配器设计与实现
  • 图聚类算法时空权衡实战:从Louvain、谱聚类到工程选型
  • TranslucentTB开机启动失败?Windows任务栏透明工具自启动终极解决方案
  • 小红书代运营赛道升温 专业服务商加速布局 - 速递信息
  • 023、权限审批系统:文件读写、命令执行、网络访问的三级安全模型
  • GLM-5.1生产级Agent替换实战:工具调用稳定性与中文结构化解析优化
  • 2026景德镇本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 电动车托运避坑指南 2026 这5个套路专坑寄车人 - 快递物流资讯
  • 南京馨琪冷暖:南京专业靠谱扥暖气系统安装10年精工专家 - 速递信息
  • GLM-4.7-Flash本地部署实战:量化选型、vLLM优化与SGLang结构化输出
  • 3分钟学会qmcdump:轻松解锁QQ音乐加密文件,让你的音乐自由播放! [特殊字符]
  • MC68HC05K3 EEPROM编程:汇编代码解析与K3EEPROG工具链实操
  • Ubuntu 18.04 Postfix 邮件服务器部署与生产级调优实战
  • 武汉科谷技工学校2026年官方:城市轨道交通与管理专业招生——初中毕业学地铁、轻轨,武汉轨交岗位持续缺人 - 武汉中职最新信息发布
  • pycharm2026设置terminal自动切换到conda指定环境
  • 武汉科谷技工学校2026年新能源汽车检测与维修专业-招生简章电话 - 武汉中职最新信息发布
  • Seraphine终极指南:如何用Python快速打造英雄联盟数据查询与游戏辅助工具
  • 举办摄影比赛用什么微信投票工具?免费平台汇总|云帆投票vs腾讯投票,防刷票免费无广告 - 投票小程序
  • 172号卡新增总部直营官方邀请码08888 — 附官方网站 全渠道服务入口 - 嗨是我
  • 基于NXP LPC5411x的USB音频设备开发实战指南
  • MPC5XX异常表重定位与多处理器地址映射实战解析