Agent memory 是一个很容易被讲空的能力。
最简单的说法是:把对话存起来,下次检索相似内容,再塞回上下文。
但真正接到 AI 宿主里时,问题会立刻变具体:
这也是我阅读 Doramagic 的 agent-memory manual 时认为最重要的点:它不应该被理解成“给 Agent 接一个向量库”,而应该被理解成“给 Agent 建立可审计的记忆边界”。
项目地址:
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 宿主不知道自己正在读写哪一层记忆,就不应该直接上生产。
agent-memory 使用 Neo4j 作为图存储后端。这个选择并不是为了“看起来更高级”,而是因为 Agent memory 经常不是一堆文本块。
真实记忆往往有关系:
manual 中提到 POLE+O 类型:PERSON、ORGANIZATION、LOCATION、EVENT、OBJECT,并支持扩展实体类型。
这意味着长期记忆不是随便扔进一个 note,而是进入一个可描述、可检查、可演进的结构。
当然,图结构不会自动让系统正确。
它只是让错误更容易被看见。
这已经很重要。
manual 提到两条后端路径:
这不是一个小小的部署选项,而是运行边界。
如果你走自托管 Neo4j,就要负责数据库配置、隔离、备份、权限和运维。
如果你走 NAMS,就要检查远程服务边界、workspace 所属、API 配置、本体版本等问题。
所以第一次评估时,不要先问“哪个更先进”。
应该先问:
这份记忆允许存在哪里?以后谁能读到它?
这个问题回答不清楚,就不要让 Agent 写入长期记忆。
manual 中还提到 NAMS 的 typed、versioned ontology layer。
这部分很容易被忽略,但它决定了记忆能否长期维护。
没有 ontology 边界时,Agent memory 会悄悄漂移:
ontology 不能自动解决这些问题,但它提供了一个地方来定义“什么是有效记忆”。
第一次试用时,我不建议直接设计复杂领域模型。
更合理的首跑是:
如果这样的小闭环都无法检查和纠正,扩大规模只会让问题更难发现。
给 AI 宿主接入 agent-memory 之前,可以先做一个 sandbox dry run。
不要用生产凭据,不要用真实用户数据。
推荐的最小验证路径:
这里最重要的产物不是“demo 跑起来了”。
真正重要的产物是审计链:
“给 Agent 加 memory”听起来像一个功能增强。
实际上,它改变的是 Agent 的状态模型。
无状态 Agent 可能在一次运行里犯错。
有状态 Agent 可能犯错、记住错误,然后在下一次运行里更自信地复用这个错误。
所以 memory 不是不能加。
而是必须从更小的首跑、更清楚的权限、更可见的复核路径开始。
在让 AI 宿主使用记忆层之前,至少回答这些问题:
如果答案不清楚,下一步不是生产接入。
下一步应该是更小的验证闭环。
参考:Doramagic agent-memory manual:https://doramagic.ai/en/projects/agent-memory/manual/
说明:本文基于 Doramagic 对 neo4j-labs/agent-memory 的独立项目整理,不是 Neo4j 官方文档,也不代表上游项目背书。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。