内容
<p align="center">
<img src="assets/logo.png" alt="Engram logo" width="120" height="120" />
</p>
<h1 align="center">Engram</h1>
<p align="center"><b>第二个大脑,让AI智能体读取和写入。</b></p>
<p align="center">
<video src="https://github.com/rwnalds/engram/raw/main/assets/demo.mp4" controls width="820"></video>
</p>
<p align="center"><sub><a href="https://github.com/rwnalds/engram/raw/main/assets/demo.mp4">▶ 点击观看演示</a> 如果视频无法内联播放。</sub></p>
---
Engram 是一个自主托管的 **MCP服务器 + 控制面板**,为 Claude Code、Cursor、Hermes 和任何 [模型上下文协议](https://modelcontextprotocol.io) 代理提供 **共享的长期记忆** —— 基于一个普通的、**git支持的文件夹** 存储 markdown 文件。无需数据库:您的笔记是事实的来源,一个内存索引支持全文搜索和维基链接 **知识图谱**,git 是持久存储。
想象 **Obsidian,但适用于智能体** —— 或者 **没有向量数据库的markdown RAG**。指向任何 `.md` 文件的 vault(或捆绑的 `sample-vault/`),您的团队中的每个智能体都可以搜索、读取和写入相同的知识。人类在快速控制面板中编辑它;智能体通过一个 MCP 端点编辑它。
[](https://railway.com/deploy/engram?referralCode=PEidIe&utm_medium=integration&utm_source=template&utm_campaign=generic)
[](https://render.com/deploy?repo=https://github.com/rwnalds/engram)
[](./LICENSE)
> **为什么它存在:** 自主AI智能体在会话之间会忘记所有内容。Engram 是 **持久记忆层** —— 一个人类和智能体共享的知识库,通过 git 版本控制,这样您的 Claude Code / Hermes / Cursor 智能体就能记住决策、上下文和它们学习的一切。
---
## 用途
- **Claude Code 的长期记忆** 和其他编码智能体 —— 停止在每个会话中重复解释您的项目。
- **多个AI智能体的共享内存** —— 一个知识库,许多智能体同时读取和写入。
- **智能体可以写入的团队知识库** —— 会议笔记、决策、客户背景、SOP。
- **自主托管、兼容Obsidian的第二大脑** 通过 MCP 公开 —— 您的笔记、您的服务器、您的 git 仓库。
- **没有向量数据库的 Markdown RAG** —— 全文搜索 + 链接图谱,基于人类可读的文件。
## 功能
- **MCP 服务器** — 13 个 `brain_*` 工具,通过一个带有身份验证的 HTTP 端点 (`POST /api/mcp`,可流式传输的 HTTP JSON-RPC)。将任何 MCP 客户端连接到单个 URL。
- **人类控制面板** — 文件树、笔记查看器,支持 **Obsidian 调用、维基链接和反向链接**,预览/编辑/分割编辑器,自动保存,⌘K 命令面板搜索,和一个 **强制有向知识图谱**。
- **Markdown 原生** — 普通 `.md` + YAML 前置信息 + `[[维基链接]]`。直接放入现有的 **Obsidian 知识库**,即可使用。
- **Git 支持** — 每个更改的自动提交和推送可选。完整的历史记录,无锁定,您的数据存储在 **您的** 仓库中。
- **无数据库** — 文件是事实的来源;内存 MiniSearch 索引 + 移植的维基链接图谱支持搜索和反向链接。不需要任何配置。
- **多工作区** — 连接多个 vault 仓库,并在 UI 中切换活动的一个。
- **自主托管** — 一个 Docker 容器。 Railway / Render / Fly / 任意带有卷的主机。**不** 是无服务器(它需要持久卷、文件监视器和内存索引)。
- **团队身份验证** — Google SSO + 电子邮件允许列表用于控制面板;每个智能体的 bearer token 用于 MCP(在 UI 中创建/撤销)。静止加密的机密。
- **可选的 AI 自动归档** (`brain_capture`) — 转储一个粗略的笔记,它会自动归档到正确的位置,并带有正确的前置信息。
- **运行时设置页面** — 在不重新部署的情况下,切换 git 同步、捕获和 OAuth 开/关。
## 兼容
**Claude Code · Claude Desktop · Cursor · Cline · Windsurf · Hermes · 任意 MCP 客户端。**
一个端点,带有 bearer-token 身份验证 —— 如果它支持模型上下文协议,它就可以使用 Engram 作为内存。
## 快速开始
```bash
bun install
bun dev # http://localhost:3000 — 运行于 ./sample-vault
```
指向您自己的知识库:
```bash
VAULT_DIR=/path/to/your/obsidian-or-markdown/vault bun dev
```
## MCP 工具
智能体只能看到活跃的知识库 —— 没有仓库、工作区或 GitHub 工具暴露。
| | 工具 |
|---|---|
| **读取** | `brain_search` · `brain_read` · `brain_list` · `brain_tree` · `brain_backlinks` · `brain_graph` · `brain_schema` |
| **写入** | `brain_write` · `brain_edit` · `brain_append` · `brain_move` · `brain_create_folder` · `brain_delete` |
连接一个智能体(控制面板的 **连接** 页面显示确切的命令 + token):
```bash
claude mcp add --transport http engram https://<host>/api/mcp \
--header "Authorization: Bearer <token>"
```
## 部署
在任何可以运行 Docker 容器且带有持久卷的主机上运行 —— Railway, Render, Fly, 或您的服务器。**无服务器(Vercel)不起作用**:Engram 持有卷、文件监视器和内存索引,服务器端函数无法保持活动状态。
1. 部署此仓库(根 `Dockerfile`),在 `/data` 处挂载卷,并设置 `ENGRAM_DATA_DIR=/data`。
2. 在控制面板中连接您的知识库仓库(工作区)—— 通过 URL + token,或 GitHub OAuth。
3. 使用 Google 登录,创建 MCP token 在 **连接** 页面,指向您的智能体到 URL。
大多数运行时配置(git 同步、AI 捕获、GitHub OAuth、应用程序名称)可在 **设置** 页面编辑 —— 只有身份验证/基础设施启动变量存储在主机上。完整的设置: **[DEPLOY.md](./DEPLOY.md)**。
- **Railway:** 新项目 → *从 GitHub 仓库部署* → 在 `/data` 添加一个卷。
- **Render:** 通过捆绑的 `render.yaml` 一键部署(Docker + `/data` 磁盘)。
## 常见问题
**如何为 Claude Code 提供长期记忆?**
部署 Engram,连接一个 markdown 知识库,并使用 `claude mcp add` 端点。`brain_*` 工具允许 Claude Code 在会话之间搜索、读取和写入持久性笔记。
**多个 AI 智能体可以共享一个知识库吗?**
是的。每个智能体都指向同一个 MCP URL,并读取/写入同一个活跃的知识库 —— 这就是它的用途。为每个智能体提供一个独立的 bearer token。
**它与我的 Obsidian 知识库兼容吗?**
是的。它读取带有前置信息和 `[[维基链接]]` 的普通 markdown,并渲染 Obsidian 样式的调用和反向链接。无需导入步骤。
**我需要向量数据库吗?**
不需要。Engram 使用全文搜索(MiniSearch)加上基于人类可读的 markdown 的维基链接图谱 —— 无需嵌入服务,无需运行向量存储。
**我的数据会被锁定吗?**
不会。它只是您自己的 git 仓库中的 `.md` 文件。关闭 Engram,您仍然拥有每个笔记及其完整的历史记录。
**它在哪里运行 / 它是自主托管的吗?**
您自己托管它。在 Railway / Render / Fly / 任意带有卷的 VM 上运行一个 Docker 容器。您的密钥,您的资料。
## 技术栈
Next.js 16(应用路由器)· React 19 · TypeScript · Tailwind v4 · shadcn/base-ui · bun · MiniSearch · d3-force · MCP SDK。 **MIT 许可。**
---
<sub>**关键词:** MCP 服务器 · 模型上下文协议 · AI 智能体的第二大脑 · 智能体内存 · Claude Code 的长期内存 · AI 智能体的共享内存 · 自主托管的知识库 · 兼容 Obsidian · markdown · 知识图谱 · 维基链接 · PKM · Zettelkasten · git 支持的笔记 · Hermes 智能体内存 · Cursor 内存 · 没有向量数据库的 RAG。</sub>