engram
给AI编程工具装一个外挂大脑,通过SQLite+MCP协议实现跨会话持久记忆
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
给AI编程工具装一个外挂大脑,通过SQLite+MCP协议实现跨会话持久记忆
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Engram —— 给 AI 编程工具造的「外挂大脑」
想象一下:你让 Claude Code 帮你开发了一个功能,关掉终端后,第二天再来问它「昨天那个功能你是怎么实现的」,它一脸茫然——「什么功能?我不记得了。」这不是它的错,而是 AI 编程工具的天然缺陷:对话结束,记忆清零。
Engram 正是为解决这一痛点而生。它是一个持久记忆系统,专门为 AI 编码智能体设计。形象地说,它就像给 AI 编程工具装了一个「外挂硬盘」——不是模型自己的参数记忆,而是一个可以随时读写、结构化存储项目上下文、工作进展和技术决策的外部记忆库。
这个项目由 Gentleman-Programming 团队开发和维护,在 GitHub 上已获得超过 4000 颗星。Engram 的核心设计哲学是「Agent 无感知(Agent-agnostic)」——它不绑定任何特定的 AI 工具,而是通过标准化的 MCP(Model Context Protocol)协议与各种编码智能体通信。目前支持 Claude Code、OpenCode、Pi、OpenAI Codex、VS Code(Copilot)、Cursor、Windsurf、Gemini CLI 等主流工具,兼容性非常广泛。
Engram 还有一个独特的「记忆压缩协议(Memory Protocol)」机制:当检测到对话上下文接近极限时,它会自动触发「记忆压缩」——将过去的上下文提炼为结构化的记忆条目,存入 SQLite 数据库,确保每次新会话都能从上一个断点无缝衔接。
Engram 提供四种交互接口:TUI(终端交互界面)——在终端里直接浏览和编辑记忆条目;HTTP REST API——供 Web 应用或脚本调用;MCP Server——与各 AI 编码工具通过标准协议对接;以及 CLI——一条命令完成安装和配置。
本地模式使用 SQLite + FTS5(Full-Text Search 5)作为存储引擎,单文件数据库,默认保存在 ~/.engram/engram.db。数据完全本地存储,不经过任何第三方服务器。进阶用户可以部署 Engram Cloud:基于 Docker Compose 启动 PostgreSQL + Web Dashboard,在团队中共享记忆库,支持多用户协作。
部署极简是其核心优势之一。项目提供一个多阶段 Dockerfile(基于 Alpine Linux,最终镜像仅约 20MB)和配套的 docker-compose.cloud.yml,一条 docker compose up -d 即可在本地启动完整的 Engram Cloud 环境,包含 PostgreSQL 数据库和 Web 管理界面。也可以通过 brew install 在 macOS/Linux 一键安装为系统命令,整个工具链零外部依赖——只要一个编译好的 Go 二进制文件和一个 SQLite 数据库。
Engram 的代码库采用 Go 1.25 编写,代码结构非常清晰。核心模块分布在 internal/ 下:cloud/ 处理 Engram Cloud 逻辑和 Web Dashboard(使用 a-h/templ 模板引擎),llm/ 负责与大型语言模型交互,mcp/ 实现 MCP 协议服务端,store/ 管理 SQLite 存储层,server/ 提供 HTTP API,setup/ 处理各 Agent 的自动化配置,obsidian/ 与 Obsidian 笔记工具集成,project/ 和 sync/ 分别处理项目和同步逻辑。plugin/ 目录包含各 Agent 的插件实现(Claude Code、OpenCode、Obsidian、Pi),cmd/engram 是唯一的入口点。这种高度模块化的架构使得代码易于理解和扩展。
值得注意的是,Engram 的 TUI 界面使用了 charmbracelet/bubbletea 框架——一个非常流行的 Go 终端 UI 库,搭配 lipgloss 样式系统和 bubbles 组件库,构建出了交互体验流畅的终端界面。
Engram 目前的局限:本地 SQLite 模式适合个人使用,但多 Agent 共享同一数据库时存在并发写入问题,需要借助 Engram Cloud(PostgreSQL)来支持团队协作。此外,记忆压缩(compaction)功能依赖 LLM API,成本和延迟随项目规模增长。Cloud 模式的 Docker 部署对完全没有 Docker 经验的用户仍有一定门槛。
从行业角度看,Engram 代表的趋势是AI Agent 的长期记忆与状态管理。随着 AI 编程工具从简单的「单次问答」向「持续协作开发」演进,如何让 Agent 在多会话、多项目中积累和复用知识,成为一个关键命题。Engram 以极简的架构给出了自己的答案——不需要复杂的向量数据库,不需要 RAG Pipeline,只需要一个 SQLite 文件和一套清晰的结构化记忆协议,就能在很大程度上解决「AI 记不住」的问题。