加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的经历:周一晚上你让 Claude Code 帮忙重构一个支付模块,它分析了目录结构、读了三个核心文件、给出了一份相当不错的重构方案;你审阅时顺手补了一句"这个项目所有金额都用分为单位,不要改成元"。周二早上你开新会话继续推进,代理完全不记得这条约定——它把金额从分直接换算成了元。你花半小时排查,最后干脆放弃用 AI,改回手工改。
这不是模型能力问题,而是上下文窗口的物理限制。代理的"记忆"本质上只是一段会被截断、压缩、丢弃的临时文本。于是行业里出现了一波"往系统提示词里塞规则"的变通做法,把架构约束、编码规范、决策记录全堆进上下文。结果是 token 成本飞涨、命中率反而下降,模型在长提示里丢失关键约束的比例反而更高。
Mind(GabrielMartinMoran/mind)就是针对这个痛点做的:把"该记住的东西"从上下文窗口里搬出去,落到一个本地 SQLite 文件里,让代理像人一样记住昨天的决定。
Mind 的定位和其他记忆类项目有个明显区别——它不是"向量数据库 + 检索"的简单封装。作者在社区帖子里写得很直白:标准 RAG 适合"读代码",但对"维持当前任务状态"这件事很糟糕;把海量内容塞进上下文窗口又会触发"中间丢失"效应。Mind 想做的是长周期状态管理,是给代理的"工作状态",不是知识库。


技术上是 Bun + TypeScript 项目,核心存储是本地 SQLite(mind.db),Schema 版本已迭代到 v8。在这一份数据之上,它同时提供四套访问方式:
mind create / add / search / query 等)mind serve start,默认 30303 端口)四种方式共享同一个本地事实源——这点很关键,你在 CLI 里加的记忆,Claude Code 通过 MCP 立刻能读到,反之亦然。
每条记忆都带一个 tier 字段(SQLite 里是 CHECK (tier BETWEEN 1 AND 3) 的约束)。T1 是当前任务最相关、最该被优先召回的内容;T3 是沉淀下来的历史归档。读取记忆时会触发访问计数与层级提升(memory_read 返回 tier、pinned、changed_at 等高信号字段)。这套机制的价值在于:代理不需要把所有历史都塞进上下文,它只需要在合适的时机捞出当前层的内容。
这是 Mind 最贴近真实工作流的特性。代理干活到一半,可以用 checkpoint_save 存一个快照,记录"目标是什么、还剩什么没做、卡在哪";下次会话通过 checkpoint_load 恢复。checkpoint_done 更进一步——它会把一个已完成的检查点收尾成同空间下的 session-* 摘要记忆,标记 type:session + cat:summary 并沉到 T3 层。
换句话说:上下文被压缩之后,代理能找回"我刚才在干什么",而不只是"文档里写了什么"。 这正是压缩(compaction)场景下最痛的缺口。
每个记忆空间都带一个只读的关系图视图。数据层面,记忆之间通过 links 表建立有方向的连接(source_id → target_id),有独立的 link-repository 管理,还能反向查出"谁指向了我"。Web 端 web/src/features/graph/ 下是完整的图布局、缩放、拖拽、标签渲染实现。
作者在文档里很克制地写:这是"per-space 的只读图视图,让你理解记忆如何连接,而不宣称构建了全局知识图谱"。这种不吹牛的表述,在当下的开源项目里反而显得可信。
内置 SQLite FTS5 全文索引(porter unicode61 分词器),配合元数据过滤、标签过滤、分页。语义检索是可选插件——需要在 .env 里打开 MIND_RAG=true 并提供 OPENAI_API_KEY,之后用 text-embedding-3-small 做向量化,与全文检索做混合召回。
默认关闭是个值得点赞的设计:本地优先,隐私可控。语义检索实现放在 src/helpers/rag.ts,纯手写余弦相似度,没有引入重型向量库。
curl -fsSL https://raw.githubusercontent.com/GabrielMartinMoran/mind/main/scripts/install.sh | bash
一行命令装到用户目录(~/.local/share/mind + ~/.local/bin/mind),不需要 sudo,若机器上没有 Bun 1.2+ 会自动装。三分钟就能开始用:
mind create projects/my-project "我的项目"
mind add projects/my-project architecture "CLI 采用命令注册表 + 原子化命令模块"
mind search architecture
mind serve start # 打开 http://localhost:30303
接代理也很直接:mind setup claude-code / opencode / cursor / codex / gemini-cli / windsurf / vscode / antigravity,一键完成。这里有个细节体现了作者的工程态度——mind setup 不带参数会先打印一张能力矩阵,把每个集成拆成三层来标注:
每层明确标 supported / unsupported / unverified。目前只有 OpenCode 和 Claude Code 是 Complete(三层全通),Claude Code 的 L3 hooks 还需要设 MIND_SETUP_CLAUDE_ENABLE_HOOKS=true 显式开启。其余如 Codex、Cursor、Windsurf、Gemini CLI、VSCode、Antigravity 都标为 Partial——作者没有把没做的能力包装成"支持",这一点在同类项目里相当罕见。
想用容器化也有现成方案,仓库根目录带 docker-compose.yml,基于 oven/bun:1-alpine 构建 Web 服务,端口 3000,数据目录通过卷挂载持久化:
services:
web:
build: { context: ., dockerfile: web/Dockerfile }
ports: ['3000:3000']
environment: [MIND_DATA_DIR=/data, PORT=3000]
volumes: [${BRAIN_DATA_DIR:-./data}:/data]
第一,项目还年轻,且几乎是一个人写的。 仓库 2025 年 4 月创建,目前 150 star、12 fork、约 106 次提交。GitHub 贡献者数据显示仓库有 2 位贡献者。核心逻辑(记忆存储、检索、Agent 集成)高度集中在单一作者身上,这是开源项目最典型的 bus factor 风险。README 里那句"maturity 各不相同"的自述是诚实的,但读者需要自己判断。
第二,"记忆"的价值高度依赖写入质量。 Mind 提供了机制,但"哪些内容值得被存下来"仍需要代理自己判断,或者由人写进 Memory Protocol 指令里。RAG 类项目常见的失败模式在这里同样存在:垃圾进、垃圾出。如果代理把无意义的中间产物全部写进记忆库,召回到上下文的噪音反而会挤占 token。
第三,多代理集成是能力矩阵里的"半成品集合"。 八个 Agent 里只有两个是 Complete,其余六个 L2/L3 缺失或未验证。对只想用 Cursor 或 Windsurf 的用户来说,"支持 MCP"和"开箱即用"之间还隔着配置工作。
第四,实验特性有明确边界。 Autosync(把空间镜像成版本化的 .mind/ 目录,支持 Git 审查和双向同步)在 README 里被标注为 experimental,作者自己也用了 > [!NOTE] 提示框强调"仍在积极开发中"。它的设计很聪明——但双向文件同步历来是 bug 温床,生产使用前建议先在测试仓库验证。
第五,语义检索会引入外部依赖。 一旦开启 RAG,记忆内容就要发往 OpenAI API。对"本地优先隐私"这个卖点来说这是个内在张力,需要按自己的合规要求权衡。
Mind 的 150 star 在整个开源生态里不算大,但它的出现时间点很关键——2026 年前后,几乎所有主流 AI 编程工具都在解决同一个问题:让代理在长任务中不丢状态。而主流方案无一例外是把状态外置到文件系统、Git、issue tracker 或向量库。
Mind 选择了第三条路:一个专门为代理设计的、带分层模型和检查点语义的本地记忆层,并通过 MCP 这个正在成为事实标准的接口暴露给所有 Agent。这个"代理记忆中间件"的定位,比"又一个记忆框架"更有延展性——它不关心你是 Claude Code 还是 Cursor,只关心记忆本身。
从产品设计角度看,Mind 传达的一个更重要的信号是:代理记忆的核心不是"存了多少",而是"什么时候该想起什么"。 三层热度模型、访问计数提升、方向性链接、检查点恢复——这些机制都在回答同一个问题。这也解释了为什么作者要在 README 里反复强调"per-space 图视图,不宣称全局知识图谱":克制,是这类基础设施项目能被信任的前提。
如果你是重度使用 AI 编程代理的开发者,Mind 值得花半小时试一下;如果你在企业环境里做 Agent 平台,它的分层模型和检查点设计也值得当作参考实现读一读——尤其是那份把每个集成能力都如实标注的 capability matrix,它本身就是一份诚实的 Agent 生态兼容性地图。
项目地址:https://github.com/GabrielMartinMoran/mind | MIT 协议 | TypeScript / Bun | 最新版本 v1.6.1