关于 Make0 Brain
Make0 Brain 是面向多种 AI Agent 用户的本地优先 MCP 记忆服务。它用 SQLite 共享记忆、支持离线运行,并记录每次变更及作者。
主要功能
- 01在多个 AI Agent 间共享记忆
- 02离线 SQLite 存储
- 03记忆版本历史与恢复
- 04语义与关键词搜索
- 05导入导出 Markdown 和 JSON
适用场景
- 01在不同 Agent 间共享项目背景
- 02查看或恢复较早的记忆版本
- 03导入规则文件和 Markdown 笔记
- 04离线使用记忆
MCP 相关
它向 MCP 客户端提供七种记忆工具,包括搜索、读取、新增、更新和归档。已连接的 Agent 共用同一本地记忆。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @make0-ai/brainMAKE0_BRAIN_HOMEData folder for the database, local models and .env (default ~/.make0)OPENAI_API_KEY密钥Optional. Turns on LLM features; Make0 Brain runs fully offline without it本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Make0 Brain
每个 AI Agent 共用一份上下文。 Claude Code、Claude Desktop、Cursor、Codex、Windsurf、VS Code 和 Gemini CLI 都读取并写入同一份记忆,每项更改都会进行版本管理。
一个本地优先的开源 MCP 记忆服务。它可离线运行,无需 API 密钥,所有内容都保存在一个 SQLite 文件中,并提供与托管版 Make0 Brain 相同的 7 个工具。
npx @make0-ai/brain init
为什么
每个 Agent 都保留自己的记忆。Claude 有 CLAUDE.md,Cursor 有规则,Codex 有 AGENTS.md,ChatGPT 有自己的记忆页面。你不得不在每个 Agent 中反复介绍自己的技术栈、偏好和上周做出的决定,而且这些副本会逐渐不一致。
Make0 Brain 是一份由所有 Agent 共享的记忆:
- 告诉一个 Agent,所有 Agent 都知道。 在 Cursor 中保存的信息,Claude Code 会在下一次会话中找到。
- 不会悄无声息地覆盖内容。 来自任何 Agent 的每次编辑都会作为一个版本保存,并记录写入者和时间。
- 它始终属于你。 一个保存在你设备上的 SQLite 文件,采用 MIT 许可,可导出为纯 Markdown。
快速开始
1. 连接你的 Agent。
npx @make0-ai/brain init
init 会查找 Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Codex CLI 和 Gemini CLI。如果检测到多个应用,它会询问要配置哪些应用。按 Enter 可配置所有应用,也可以传入 --clients 提前选择。init --yes 会自动配置所有检测到的 Agent,不会询问。随后,它会显示即将进行的更改,询问一次确认,为每个配置文件保留一份 .make0-backup 备份,并将 Make0 Brain 添加到所选应用。它会下载两个本地模型(约 50 MB,只需下载一次)并显示进度条,因此你第一次向 Agent 提问时无需等待下载。完成后重启这些应用。
仅连接服务还不够。Agent 还需要自定义指令,以便在回答前搜索 Brain,并将长期有用的信息保存到其中。init 会将这些指令写入 Claude Code(~/.claude/CLAUDE.md)、Codex(~/.codex/AGENTS.md)、Gemini(~/.gemini/GEMINI.md)和 Windsurf 的全局规则文件。Cursor、Claude Desktop 和 VS Code 将规则保存在设置中,因此 init 会打印相同的文本,供你粘贴:
Make0 Brain is my source of truth for durable memory. Always search it before answering about me, my work, people, preferences, or past decisions. Save lasting facts and decisions to Brain. Never guess or invent memories. Use Brain exclusively for durable memory.
| 应用 | 添加位置 |
|---|---|
| Claude Code | ~/.claude/CLAUDE.md,由 init 写入 |
| Codex CLI | ~/.codex/AGENTS.md,由 init 写入 |
| Gemini CLI | ~/.gemini/GEMINI.md,由 init 写入 |
| Windsurf | 全局规则,由 init 写入 |
| Cursor | Settings → Rules → User Rules。粘贴到此处。 |
| Claude Desktop | Settings → Profile → personal preferences。粘贴到此处。 |
| VS Code | 仓库中的 .github/copilot-instructions.md。粘贴到此处。 |
使用 init --no-rules 跳过规则设置。
2. 导入你已有的上下文。
npx @make0-ai/brain import --detect # CLAUDE.md, AGENTS.md, Cursor/Windsurf/Copilot rules
npx @make0-ai/brain import ~/Documents/MyVault # an Obsidian vault or any Markdown folder
pbpaste | npx @make0-ai/brain import - # e.g. a memory dump copied from ChatGPT
3. 查看内容。
npx @make0-ai/brain view
模型存放在 ~/.make0/models,数据存放在 ~/.make0/brain.db。如果跳过 init(或传入 --no-models),首次保存或搜索时会下载模型。
所有 Agent 共用一份上下文
每个应用中的工具都相同
init 后,每个已连接的 Agent 都会获得相同的 7 个工具:
| 工具 | Agent 使用它的方式 |
|---|---|
list_brains | 获取 brain id。本地服务只有一个 brain:personal。 |
search_brain | 在回答前针对特定查询查找记忆。 |
get_memory | 完整读取一条记忆。 |
get_memory_versions | 读取一条记忆的所有已保存版本,最新的排在最前。 |
add_memory | 按你的要求保存一条事实或简短的 Markdown 笔记。 |
update_memory | 修改一条记忆。之前的文本会作为一个版本保留。 |
delete_memory | 归档一条记忆。其版本会保留,并且可以恢复。 |
名称和架构与托管版 Make0 Brain 相同,因此提示词或 Agent 设置可以用于任一版本。
每条记忆都会记录写入者
Make0 Brain 会读取每个应用连接时发送的客户端名称,并将其记录为写入者:claude、chatgpt 或 cursor。其他应用会记录为 mcp,同时也会保留其自身的客户端名称。搜索结果会显示每条记忆的 addedBy,每个版本也会记录写入者。你可以查看每个 Agent 学到了什么。
上下文始终保持一致
- 矛盾内容会替换旧事实。 如果 Cursor 保存了“我不喜欢编辑器中的深色模式”,而 Claude 之前保存了“我喜欢编辑器中的深色模式”,则较新的记忆会胜出,旧记忆会被归档,同时保留其历史记录。
- 重复内容会合并(需要 API 密钥)。 LLM 裁判会比较相似内容,并将重复表述合并为一条记忆。合并后的文本只能使用两条原始内容中的词语,因此无法编造事实。没有密钥时,重复内容会保留,不会进行猜测。
- 相关记忆会相互链接。 相似记忆会自动建立链接,搜索时会沿着链接最多追溯两跳,因此询问某个项目时,也会显示与之相关的决策。
你现有的 Agent 规则会成为共享记忆
import --detect 会读取你已经为某个 Agent 编写的规则文件,并让所有 Agent 都能使用这些规则。Make0 Brain 自带的“先搜索 Brain”区块会被剥离,因此绝不会作为记忆导入。
记忆版本管理
每次写入记忆都会创建一个版本,无论操作来自 Agent、导入流程,还是你在查看器中的操作。内容不会被直接覆盖。
版本记录的内容
| 字段 | 含义 |
|---|---|
versionNumber | 每条记忆的版本号:1、2、3…… |
current | Agent 当前读取的版本。每条记忆恰有一个当前版本。 |
content、category、kind、entityType、confidence | 该版本记录的记忆内容。 |
writtenBy | user、make0、claude、chatgpt、cursor 或 mcp。 |
writerName | 当 writtenBy 为通用值 mcp 时,应用自身的客户端名称。 |
embeddingModel | 此版本为当前版本期间,对文本进行索引的嵌入模型。 |
createdAt | 写入此版本的时间。 |
当内容、类别、类型或实体类型发生变化时,系统会写入一个新版本。仅置信度发生变化不会新增版本。
Agent 可以读取历史记录
搜索结果包含 versionCount。当其大于 1 时,Agent 可以调用 get_memory_versions 查看某条事实如何变化以及由谁修改:例如,你上个月从 npm 切换到 pnpm,以及记录此事的是哪个 Agent。
不会丢失任何内容
| 操作 | 结果 |
|---|---|
update_memory 或在查看器中编辑 | 创建一个新的当前版本。旧版本会保留。 |
| 与其他记忆矛盾或合并 | 旧记忆会连同其所有版本一起归档。 |
delete_memory | 归档:从搜索和读取中隐藏,但保留版本。 |
| 重新导入已编辑的笔记 | 为该记忆创建一个新版本,而不是重复记忆。 |
| 重新导入已删除的笔记 | 跳过。已删除的内容仍保持删除状态。 |
make0-brain purge <id> --yes | 唯一的永久删除方式。Agent 无法执行此操作。 |
浏览和恢复
npx @make0-ai/brain history <id> # every version, current one marked *
npx @make0-ai/brain restore <id> --version 2 # make version 2 current again
npx @make0-ai/brain restore <id> # bring back an archived memory
* v3 2026-10-27T09:14:02.118Z claude
The project uses pnpm and Node 22.
v2 2026-10-20T16:40:51.502Z cursor
The project uses pnpm.
v1 2026-10-02T11:05:33.910Z user
The project uses npm.
恢复会将较旧版本设为当前版本并重新建立索引。不会删除任何版本。
npx @make0-ai/brain view 会打开一个本地页面(仅在 127.0.0.1 上),你可以在其中浏览、搜索、添加和编辑记忆,查看每条记忆的版本时间线,恢复某个版本,恢复已归档的记忆,检查存储的嵌入向量,并永久删除记忆。
搜索质量
在 SWE-ContextBench Lite 上测得,与 Make0 基准测试页面 使用相同的比较数据:300 个先前的编码会话和 99 个相关问题。分数表示搜索返回目标历史会话的频率。本地安装使用离线 MiniLM 嵌入模型和 ms-marco MiniLM 重排模型;模型加载完成后,CPU 上每次查询的平均检索时间为 0.44s。
排名第 1,即目标会话是首条结果:
Make0 Brain (cloud) █████████████████████████████░░░░░░░░░░░ 71.7%
Make0 Brain (local) █████████████████████████░░░░░░░░░░░░░░░ 62.6% 0.44s
LangMem ██████████████████████░░░░░░░░░░░░░░░░░░ 55.6%
OpenViking ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 38.4%
Free summary search ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 34.3%
Mem0 ██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 25.3%
Supermemory █████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 23.2%
总体而言,目标会话出现在结果中的任意位置:
Make0 Brain (cloud) ██████████████████████████████████████░░ 93.9% top 10
Make0 Brain (local) █████████████████████████████████████░░░ 92.9% top 10 0.44s
LangMem █████████████████████████████░░░░░░░░░░░ 73.3% top 10
Supermemory ████████████████████████░░░░░░░░░░░░░░░░ 59.6% top 15
OpenViking █████████████████████░░░░░░░░░░░░░░░░░░░ 51.5% top 3
Mem0 ████████████████░░░░░░░░░░░░░░░░░░░░░░░░ 39.4% top 3
Free summary search ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 36.4% agent chooses
LangMem、OpenViking、Mem0、Supermemory 和免费摘要搜索的数据来自该论文的表 5。“总体”统计各系统自身结果列表中任意位置的命中;Make0 cloud、Make0 Brain 和 LangMem 均返回 10 条结果。在完整基准测试(1,007 个历史任务、357 个相关问题)中,托管版 Make0 的排名第 1 命中率为 71.4%,总体命中率为 88.2%。更强的嵌入模型和重排模型可提高准确率。
搜索工作原理:混合 MiniLM 嵌入和 BM25 关键词分数,使用交叉编码器对候选列表重新排序(也可使用需要密钥的 LLM 过滤器),剔除低质量结果,并沿记忆链接扩展两跳,获取排名靠前的结果。
导入和导出
导入
- 文件夹和知识库。 每篇笔记都会成为一条记忆。较长的笔记会按标题拆分,每个部分都会保留笔记标题。Frontmatter 标签或文件夹名称会成为类别。Obsidian 的
[[wikilinks]]会转换为记忆之间的链接。会跳过.obsidian/和.trash/。 - Agent 规则文件。
--detect会查找主目录下的全局规则,以及当前文件夹中的项目规则。 - 可安全重复运行。 未更改的部分会被跳过,已编辑的部分会获得新版本,你删除的记忆仍保持删除状态。
--extract(需要 API 密钥)会将文件转换为一条事实对应一条记忆,而不是按笔记大小创建记忆。--dry-run会显示将要发生的更改。导入超过 200 条记忆时会先询问;--yes会跳过询问。
导出
npx @make0-ai/brain export ./my-brain # one Markdown file per memory, opens as an Obsidian vault
npx @make0-ai/brain export --json brain.json # every memory, version, and link (the Make0 port format)
导出的 Markdown 可以重新导入。JSON 包含归档的记忆和完整版本历史,但不包含嵌入;读取者会使用自己的模型重新生成嵌入。
可选 API 密钥
所有功能都可离线使用。使用密钥后,Make0 Brain 还可以合并重复记忆、选择更合适的类别、使用大模型筛选搜索结果,并支持 import --extract。
将 .env.example 复制到此文件夹中的 .env,或复制到 ~/.make0/.env,这样所有应用都可以共用一个文件:
cp .env.example ~/.make0/.env
OPENAI_API_KEY=sk-... # or OPENROUTER_API_KEY, or MAKE0_BRAIN_API_KEY
MAKE0_BRAIN_BASE_URL= # any OpenAI-compatible endpoint (optional)
MAKE0_BRAIN_LLM_MODEL= # default gpt-6-luna
MAKE0_BRAIN_EMBEDDINGS=api # API embeddings instead of local MiniLM
MAKE0_BRAIN_LLM_SEARCH=0 # keep search on the local reranker
Make0 Brain 会先读取 ./.env,然后读取数据文件夹中的 .env(MAKE0_BRAIN_HOME,默认为 ~/.make0)。环境中已设置的变量(包括 MCP 客户端的 env 块中的变量)优先。切换嵌入器是安全的:使用其他模型索引的记忆会在下次搜索时重新生成嵌入。
本地或云端
| 此仓库 | Make0 云端 | |
|---|---|---|
| 适用场景 | 本地 Agent、离线使用、在自己的设备上使用 | 每台设备和 Web 应用,包括 ChatGPT 和 Claude 网页版 |
| 设置 | npx @make0-ai/brain init | 在 make0.ai 登录 |
| API 密钥 | 无需 | Make0 账户 |
| 大脑 | 一个 | 个人、项目和自定义大脑 |
| 存储 | ~/.make0/brain.db | 托管 |
| 搜索 | MiniLM + BM25 + cross-encoder,0.44s | 更强的嵌入器和重排序器 |
即将支持一条命令从本地迁移到 Make0 云端。export --json 导出包将作为迁移格式,并包含历史记录和归属信息。
参考
CLI
make0-brain Run the MCP server over stdio
make0-brain init Add Make0 Brain to your AI apps and download the models (--dry-run, --yes, --clients, --no-rules, --no-models)
make0-brain import <path…> Import files, folders, or a vault (--detect, -, --extract, --dry-run, --yes)
make0-brain export [dir] Markdown export (--json [file] for the bundle)
make0-brain view Open the memory viewer in a browser (--port, --no-open)
make0-brain stats Show memory and link counts
make0-brain history <id> List saved versions of a memory
make0-brain restore <id> Restore an archived memory (--version <n> for an older version)
make0-brain purge <id> --yes Permanently delete a memory and its versions
在终端中,init 会列出找到的 Agent,并询问要配置哪些 Agent。按 Enter 可配置全部 Agent,也可以输入编号(1,3 或 1-3)或 ID。init --yes 会配置所有检测到的 Agent,无需询问。init --clients 会跳过提示,并接收以逗号分隔的 claude-code、claude-desktop、cursor、windsurf、vscode、codex、gemini 列表。
手动设置
如果 init 不支持你的应用,请添加一个 stdio 服务,并将快速入门中的自定义指令粘贴到该应用的规则中:
{
"mcpServers": {
"make0-brain": { "command": "npx", "args": ["-y", "@make0-ai/brain"] }
}
}
环境
| 变量 | 默认值 | 用途 |
|---|---|---|
MAKE0_BRAIN_HOME | ~/.make0 | 数据文件夹:数据库、模型、.env。 |
MAKE0_BRAIN_DB | $MAKE0_BRAIN_HOME/brain.db | 数据库文件。 |
OPENAI_API_KEY / OPENROUTER_API_KEY / MAKE0_BRAIN_API_KEY | unset | 启用可选的大模型功能。 |
MAKE0_BRAIN_BASE_URL | OpenAI,或使用 OpenRouter 密钥时为 OpenRouter | 兼容 OpenAI 的端点。 |
MAKE0_BRAIN_LLM_MODEL | gpt-6-luna | 聊天模型。 |
MAKE0_BRAIN_EMBEDDINGS | local | local(MiniLM)或 api。 |
MAKE0_BRAIN_EMBEDDING_MODEL | text-embedding-3-small | 使用 api 时的嵌入模型。 |
MAKE0_BRAIN_LLM_SEARCH | 使用密钥时开启 | 0 表示继续使用本地重排器进行搜索。 |
开发
npm install
npm test # fast suite, no model downloads
npm run test:models # real local models
npm run test:e2e # build, then drive the stdio server
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。