Neotoma 现已作为开发者版本提供
您可以检查、重放和信任结构化代理内存。开源、本地优先,可通过 npm 适用于 ChatGPT、Claude 和 Cursor。
要点
- 代理有能力,但内存是弱点:隐式更改、无出处、无回滚以及无跨工具访问使得正在进行的委派不可靠。
- 当前的方法(RAG、提供者内存、代理搜索)针对检索进行了优化。正在进行的代理工作需要具有规范 ID、来源和确定性查询的结构化状态。
- 此开发人员版本公开了 CLI、MCP 和 OpenAPI 以及仅本地存储:实体解析、架构注册表、时间线、双路径存储和完整的审计跟踪。
- 三个设计基础:隐私第一(机器上的数据)、确定性(相同输入、相同输出)和跨平台(跨 ChatGPT、Claude、通过 MCP 的 Cursor 的一个内存层)。
- 通过 npm 安装、连接您的工具并帮助巩固基础。关于担保失败的地方的反馈是目前最有价值的投入。

Neotoma 是人工智能代理的结构化记忆层。它以生产系统处理状态的方式处理个人数据:类型化实体、稳定 ID、完整来源、确定性查询。该开发者版本现已推出。通过 npm 安装,通过 MCP 连接您的 AI 工具,并在您的计算机上运行它。
文档和设置:neotoma.io。仓库:github.com/markmhendrickson/neotoma。
问题
在过去的一年里,我一直通过人工智能代理运行工作流程:电子邮件、任务、财务、联系人、内容。代理商有能力。问题在于信任。
记忆会隐含地改变。语境发生变化。代理在新会话中对同一问题给出不同的答案。它会覆盖联系人并且之前的状态消失。我无法追踪错误号码的来源。我无法使用不同工具中的相同记录。
这些不是边缘情况。一旦代理处理正在进行的状态:任务、交易、承诺、关系,它们就会出现。我委派的越多,限制就越尖锐。
不断破坏的不是智力。这是信任。我首先在为持久代理内存构建真相层 中写到了这一点。
当前内存不足的地方
如今大多数代理记忆都是检索:RAG、代理搜索、嵌入相似性、提供者控制的记忆。检索适用于探索和一次性问题。它因持续状态而崩溃。
当代理内存是有界的、连贯的流时,RAG 会填充冗余结果。 Top-k 返回重复而不是您需要的内容。修剪碎片证据链。相似性忽略了结构。
提供者内存(ChatGPT Memory,Claude Projects)仅用于对话且受平台限制。它是不透明的,没有来源或回滚,并且不能跨工具工作。您无法确定性地查询它或追踪事实的来源。
代理搜索 重新推断每个会话。没有持久的规范身份,无法保证相同的问题产生相同的结果。它适用于编码和探索。对于任务、联系人、交易和事件,您下周需要相同的答案、全套和审计跟踪。检索并不能提供这一点。
有用的分割 是检索与结构化状态,而不是图形与降价。检索优化相关性和发现。结构化状态优化了一致性、完整性和来源。主要项目(Zep、Mem0、Letta、LangMem)正在添加结构,但全面融合面临架构障碍。当代理人代表您行事时,您需要后者。
我单独写过关于六种结构趋势的文章,随着时间的推移,这些趋势使这一差距越来越大:代理变得有状态,错误变得定价,平台保持不透明,工具保持碎片化。
Neotoma 是什么
Neotoma 是一个真相层:位于你的代理之下的记忆基底。代理继续做他们所做的事情(浏览、编写、调用工具)。 Neotoma 拥有他们读写的状态。
您可以在代理对话中上传文档或共享信息。 Neotoma 解析跨源的实体。人员、公司、任务、发票、事件获得稳定的 ID。每一个事实都可以追溯到它的起源。时间线来自日期字段。更正保留历史而不是覆盖它。
该图与执行无关。它模拟的是存在的东西,而不是工作的完成方式。 Cursor、ChatGPT、Claude 或任何 MCP 客户端都可以提供相同的数据。当你切换工具时,记忆不会漂移。
它不是一个笔记应用程序或“第二大脑”。不是提供商控制的内存。不是向量存储或 RAG 层。不是自主代理人。它是您控制的模式优先的结构化状态。
此版本包含哪些内容
此开发者版本公开了核心合约:
- CLI 用于人类。
- MCP 用于代理(ChatGPT、Claude、Cursor、Claude Code);代理使用 MCP 作为备份。
- OpenAPI 作为单一事实来源。
具体功能:
- 双路径存储。 上传文件或将代理对话中的结构化数据写入一张图表中。
- 实体解析。 基于哈希的规范 ID 统一了所有源中的同一实体。
- 模式注册表。 类型化实体和类型化关系。模式随着数据的发展而发展。
- 时间线。 从跨实体的日期字段自动生成时间线。
- 完整出处。 每条记录均可追溯到其来源。修正会产生新的观察结果,而不是覆盖。
- 结构检索。 按实体类型、ID、关系或时间范围查询。用于跨实体推理的图邻域。
没有网络应用程序。这是基础设施,而不是产品。接口有 CLI、MCP 和 API。
原则以及为什么本地优先
设计的三个基础:
隐私第一。 您的数据保留在您的计算机上。仅本地存储:SQLite 和本地文件。没有云依赖。从未用于训练。您可以控制什么进入和什么留下。
确定性。 相同的输入,相同的输出。基于哈希的实体 ID。模式优先提取。存储或检索的关键路径中没有法学硕士。每张唱片都有完整的出处。
**跨平台。**跨工具的一个内存层。 ChatGPT、Claude、Cursor 和 Claude Code 通过 MCP 连接。没有提供商锁定。切换工具,内存保持不变。
此版本在设计上仅限于本地。信任始于控制。在添加远程基础设施之前,合同和保证必须是可靠的。仅本地意味着您可以验证系统所做的一切。对于声称值得信赖的层来说,这是正确的起点。
这是给谁的
开发人员和代理构建者熟悉 CLI 优先的工作流程。构建或操作代理系统的人们需要跨会话和工具的持久内存。任何将个人数据视为生产基础设施的人。
不适合(目前):UI 优先的用户、随意做笔记的用户或任何期望今天获得稳定性保证的人。重大变化是意料之中的。此版本的存在是为了对基础进行压力测试。
安装并连接
npm install -g neotoma # 安装
neotoma init # 初始化
neotoma # 启动交互式会话完整设置、API 文档、MCP 配置和架构参考:neotoma.io。
仓库:github.com/markmhendrickson/neotoma。
尝试一下,打破它,告诉我
我希望你能帮助强化这一点。运行它。遇到边缘情况。报告错误、令人困惑的行为或缺失的部分。
我最看重的反馈是:保证失败的地方、合同阻碍的地方、设计做出错误权衡的地方。在 GitHub 上打开问题、提交补丁或开始讨论。
这个版本是故意粗糙的。可靠性来自真实的使用和真实的反馈,而不是孤立的打磨。