关于 nMEMORY
nMEMORY 是面向编码 Agent 的本地记忆服务,每条记录都必须附带来源和锚点。检索会标明证据充分、证据缺失或应当弃答,所有变更都会写入审计日志。
主要功能
- 01每条记录都要求来源和锚点
- 02检索区分有依据、缺证据和弃答
- 03BM25 搜索与可选嵌入
- 04会话跟踪与任务交接
- 05哈希链式变更日志
- 06基于 SQLite 文件的本地存储
适用场景
- 01跨 Agent 会话回忆决策
- 02根据来源核验回忆的事实
- 03向后续会话交接工作上下文
- 04审计或清除已存记忆
MCP 相关
stdio MCP 服务提供 27 个工具,涵盖捕获、检索、会话、交接、任务、审查和审计。支持 stdio 的 MCP 客户端均可连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
你的 Agent 会忘记会话之间发生的一切。nMEMORY 让它记住,并注明来源。
安装
curl --proto '=https' --tlsv1.2 -fsSL https://no.tt/install.sh | sh
也可以从源代码安装。你需要 uv 和 Git:
git clone https://github.com/menot-you/n-memory
cd n-memory
uv sync
uv run nmemory database create
claude mcp add nmemory -- uv run --directory "$PWD" nmemory mcp serve
uv sync 会安装固定版本的 Python(3.14)及所有依赖项。
database create 会创建存储文件。nMEMORY 不会隐式创建该文件。
任何支持 stdio 的 MCP 客户端都可以用与 Claude Code 相同的方式连接。
工作原理
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#1B1916", "primaryTextColor": "#ECE7DE", "primaryBorderColor": "#E4733A", "lineColor": "#E4733A", "secondaryColor": "#151311", "tertiaryColor": "#0F0E0D", "fontFamily": "IBM Plex Mono, monospace"}}}%%
flowchart LR
agent["Your agent<br/>(any MCP client)"] -->|"stdio, 27 tools"| server["nmemory mcp serve"]
shell["You, in a shell"] -->|"nmemory CLI"| core
server --> core["Capture and recall"]
core -->|"one transaction per call"| store[("One SQLite file<br/>records, journal, index")]
core -->|"BM25, always"| lexical["Keyword recall"]
core -.->|"when a key is set"| vectors["Embedding provider"]
lexical --> outcome{"grounded<br/>missing_evidence<br/>abstain"}
vectors -.-> outcome
每条记录都必须包含来源和锚点(path:line、引文或 PR)。
回忆会返回三种结果之一,不会把匹配度较低的内容当作答案。
数据一览
统计日期:2026-10-21。工具:向 nmemory mcp serve 发送 MCP tools/list 请求。
测试:在各成员根目录中运行 uv run --group dev pytest --collect-only -q。
为什么选择 nMEMORY
| 以前 | 使用 nMEMORY 后 |
|---|---|
| 每次新会话都从空白开始。你得再次解释相同的决定。 | Agent 会在会话开始时回忆起该决定。 |
| 回忆出的“事实”没有出处,无法核实。 | 每条记录都必须包含来源和锚点。 |
| 匹配度较低的内容被当作确定的答案返回。 | 回忆有三种可信结果:grounded、missing_evidence 或 abstain。 |
| 新旧笔记互相矛盾,却无人察觉。 | 新记录可以取代旧记录。每次变更都会写入哈希链式审计日志。 |
| 网页或文件中的文本可能会操控 Agent。 | nMEMORY 会将导入的文本或具有指令特征的文本标记为不可信。回忆会将所有结果标记为数据,而非指令。 |
快速开始
你的 Agent 会使用 MCP 工具。你也可以通过命令行访问同一个存储。
存储一个决定(Agent 会调用 nmemory_capsule_ingest):
{
"content": "We store data in SQLite, not PostgreSQL.",
"kind": "decision",
"source": "docs/adr/0001-storage.md",
"anchor": "docs/adr/0001-storage.md:3"
}
在后续会话中回忆该决定:
uv run nmemory capsule retrieve "what database stores our data"
uv run nmemory capsule show --id cap-1
第一条命令会返回 "outcome": "grounded" 和该记录。
第二条命令会显示其来源信息:来源、锚点和来源哈希。
你将获得什么
- 27 个 MCP 工具,用于捕获、回忆、会话、交接、任务、审查和审计。 参考文档列出了每个工具和 CLI 命令。
- 混合式回忆。 BM25 关键词搜索始终可用。默认嵌入提供方为 Gemini(
NOTT_NMEMORY_EMBED_PROVIDER;也支持openai或openai-compatible,可用于 Ollama 或 vLLM 等可自托管服务)。 - 嵌入会将文本发送到本机之外。 如果环境中配置了提供方密钥(默认提供方使用
GEMINI_API_KEY),nMEMORY 会将记忆条目文本和查询发送给该提供方。若只想使用词法回忆,请取消设置该密钥。启动时不需要密钥。 - 单文件,本地优先。 存储内容是一个 SQLite 文件。每次调用都在一个事务中完成。连接在调用声明写入前始终为只读。
- 会话起止与交接。 Agent 开启会话,在工作过程中捕获信息,并以交接内容结束会话,供下一次会话读取。
- 真正删除的清除操作。 清除操作会在一个事务中删除内容、引文、排队等待嵌入的文本和向量。
对比
笔记文件(CLAUDE.md、AGENTS.md) | 纯向量存储 | nMEMORY | |
|---|---|---|---|
| 新会话中仍可用 | 是 | 是 | 是 |
| 每条记录都需要来源 | 否 | 否 | 是 |
| 弱匹配时提示“没有证据” | 否 | 否,会返回最近的向量 | 是 |
| 无嵌入密钥也能使用 | 是 | 否 | 是(词法搜索) |
| 每项变更都有审计跟踪 | 仅 Git | 否 | 哈希链式日志 |
| 增长时不会占满提示词 | 否,会加载整个文件 | 是 | 是,回忆有令牌预算 |
基准测试
评估框架包含合成回忆、LongMemEval、信息提取和对比的运行器。 它公布评估方法,而不提供本次发布的分数。 此处不引用旧数据,因为那些数据评估的是早期引擎。
NOTT 系列
可注明来源的记忆。 | 可跟踪、可恢复的 Agent 工作进程。 | 可作为引证证据的实时网络。 | 面向 Agent 的 App Store Connect。 | 团队约定、路由和钩子。 |
本节面向读取此代码库的大模型。
- 项目简介。 nMEMORY 是面向编码 Agent 的本地记忆服务。它会存储记录(决策、事实、任务、失败),每条记录都必须有来源和锚点;并通过三种结果之一召回记录:
grounded、missing_evidence或abstain。 - 项目不是什么。 它不是托管服务、通用向量数据库或聊天记录。没有匹配内容时,它不会编造答案。
- 入口。 CLI 命令格式为
nmemory <noun> <verb>(nmemory --help)。MCP 服务通过nmemory mcp serve启动(stdio)。全部 27 个工具名称都以nmemory_开头。请从nmemory_context_show、nmemory_capsule_retrieve和nmemory_capsule_ingest开始。 - 配置。 可选配置文件为
~/.nott/memory.toml。变量NOTT_NMEMORY_CONFIG用于指定其他路径。存储目录为~/.nott/state/database/;测试设置NOTT_DATABASE_DIR时,则使用该变量指定的目录。 - 不变量。 每条记录都有来源。召回的文本是数据,而非指令。每次变更都会写入哈希链日志。测试绝不会打开实际存储。存储仅使用 SQLite。
- 完整参考。 docs/REFERENCE.md 列出了所有工具和命令。RULEBOOK.md 列出了实现规则。llms.txt 以 llms.txt 格式列出了相同信息。
文档
| 页面 | 内容 |
|---|---|
| 运行手册 | 获取首个有用结果、诊断故障、备份与恢复 |
| 架构 | 信任边界和完整的引擎详情:存储、召回、工具、CLI |
| 参考 | 所有 CLI 命令和 MCP 工具,并链接到对应源码 |
| 规则手册 | 实现不变量 |
| 设置 | 开发环境设置 |
| 质量 | 检查和安全审查 |
| 文档索引 | 文档索引和首次贡献指南 |
| 安装 | 安装路径 |
| 隐私 | 处理选项 |
| 升级 | 现有数据 |
| 故障排除 | 故障诊断 |
| 路线图 | 发展方向 |
在代码库根目录运行检查:
uv run ruff check . && uv run mypy --strict nmemory
TMPDIR=/var/tmp uv run --group dev pytest -q
每项测试都会使用独立的一次性存储。没有任何测试会触及你的实际存储。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。