DeepFloodbeta

「开源」Memory Palace(3月10号升级版,大幅提升用户易用性) — 构建专属你ai agent的记忆宫殿,顺便求github star⭐

GitHub:https://github.com/AGI-is-going-to-arrive/Memory-Palace
协议:MIT | 技术栈:Python + FastAPI + React + SQLite + MCP


Memory Palace 2026-03-10更新公告

上次发帖之后继续做了一轮大的更新,大幅提升用户前端仪表盘易用性,同时对于backend进行了重构解耦,避免一个代码文件几千上w行。以及修复了一些可能会遇到的bug


仪表盘支持中英文切换

之前仪表盘只有英文,现在四个页面(Memory / Review / Maintenance / Observability)全部支持中英文一键切换,将近 500 条文案都做了双语化。同时写了一份前端仪表盘使用指南,降低上手门槛

对于前端仪表盘有任何疑问的强烈推荐食用该指南

链接如下👇

https://github.com/AGI-is-going-to-arrive/Memory-Palace/blob/main/docs/DASHBOARD_GUIDE_CN.md

仪表盘更新了i18n,支持了中文版

记忆

image

审查

image

维护

image

观测

image

全套英文文档

Getting Started、技术总览、部署配置、排障指南、安全说明、Skills 文档,全部补了英文版。弥补了之前除readme文档外,其他文档只有中文的问题,对英文用户不太友好。

接入流程更顺

一键安装脚本(shell / PowerShell)重写了路径检测和错误处理,出错时提示更明确。发布前新增了自动检查脚本,减少"装上了但跑不起来"的情况。(但是注意当前对于codex cli/claude code/opencode支持较好, 对于cursor/antigravity 还需要进行进一步测试完善安装脚本,会在近期更新

前端交互优化

四个页面都做了改动,检索结果展示更清楚,维护操作流程更直观,Review 的 diff 对比更加好用。


先说这东西干嘛用的

现在用 Codex、Claude Code、Cursor、Gemini CLI 这些 AI 编程工具的人越来越多了,但有一个问题一直很烦:

每次新开对话,AI 都忘了你之前说过什么。

你上次花半小时教它的项目架构、你的代码风格偏好、你反复纠正过的 bug 处理方式——全没了。下次还得重头来。

Memory Palace 就是干这个的:给 AI Agent 加一层持久化的外部记忆。不是简单存个 JSON 糊弄一下,而是一套完整的记忆操作系统,能写、能查、能回滚、能自动清理。

image


不是又一个 RAG 方案

可能有人会问:这不就是 chunk + embedding 的 RAG 吗?

不太一样。Memory Palace 是专门给 AI Agent 的「个人记忆」设计的,重点在这几个方面:

🔒 写入守卫(Write Guard)

不是 Agent 说存就存。每次写入操作都要先过 Write Guard 预检,有这几种判定:

  • ADD:确认是新内容,允许写入
  • UPDATE:发现已有类似记忆,建议更新而不是重复创建
  • NOOP:内容重复或无意义,拒绝写入
  • DELETE:标记应该删除

这样就不会出现 AI 往记忆库里疯狂写垃圾的情况。

🔍 混合检索,不只是全文搜索

支持三种模式:

  • keyword:关键词匹配,基于 SQLite FTS,零依赖就能跑
  • semantic:语义检索,接外部 Embedding 模型
  • hybrid:两种混合 + Reranker 精排

而且有自动降级机制——外部模型服务挂了,系统不会直接报错,会自动降级到关键词搜索,并在返回结果里告诉你发生了降级。

🧠 意图识别

搜索请求进来后,系统会先判断这是哪类查询:

  • factual(事实型):用高精度策略
  • exploratory(探索型):用高召回策略
  • temporal(时间型):加时间范围过滤
  • causal(因果型):扩大候选池

不是所有查询都用同一套参数硬搜。

♻️ 记忆有生命周期

每条记忆都有一个活力值(vitality score),会随时间衰减,半衰期默认 30 天。低于阈值并且超过 14 天没被访问的记忆会被标记清理。还有快照(snapshot)机制,改错了可以回滚。

eK94smQIgRDc4ukdTdVYNfOyuAqY6Mlk.webp


支持哪些 AI 工具

通过 MCP(Model Context Protocol)协议接入,一套接口对接多个客户端:

客户端 接入方式
Claude Code Skills + MCP stdio
Codex CLI Skills + MCP stdio
OpenCode Skills + MCP stdio
Gemini CLI Skills + MCP(建议 user 级安装)
Cursor / Antigravity Workspace Rules / Project Instructions

MCP 提供了 9 个标准化工具,包括读写(read_memorycreate_memoryupdate_memorydelete_memoryadd_alias)、检索(search_memory)、治理(compact_contextrebuild_indexindex_status)。


🎯 这次版本的重点:Skills + MCP 双层架构

这是当前版本我花精力最多的部分,也是我觉得真正提升用户体验的地方。

先说清楚 skill 和 MCP 的关系,一句话:

  • Skill = AI 脑子里的「出车规则」—— 负责判断"什么时候该用 Memory Palace"
  • MCP = 真正的「车和方向盘」—— 负责实际调用 read_memorysearch_memory 这些工具

只有 MCP 没有 Skill 会怎样?工具存在,但 AI 不一定知道什么时候该用,容易漏触发。

只有 Skill 没有 MCP 会怎样?AI 知道该用了,但手上没工具可调。

两个都到位,才叫真的能自动触发并且真的能干活。

image

Skill 到底帮 AI 做了什么

装了 skill 之后,AI 在对话中会自动遵循这套工作流:

  1. 启动:先调用 read_memory("system://boot") 加载核心记忆
  2. 召回:用 search_memory 搜索相关历史记忆
  3. 先读后写:每次写入前先检查有没有已存在的类似记忆
  4. 守卫感知:遇到 Write Guard 返回 NOOP(重复内容)时自动停下来检查,而不是强行写入
  5. 压缩恢复:长会话时自动压缩上下文,检索退化时触发索引重建

举几个例子:

✅ 该触发:「帮我把这条偏好记到 Memory Palace」
✅ 该触发:「查一下之前记过没有,再决定 create 还是 update」
✅ 该触发:「先从 system://boot 读一下,看看之前有什么记忆」
❌ 不该触发:「帮我重写 README」
❌ 不该触发:「修一下前端按钮样式」

不是所有涉及"记忆"这个词的场景都会触发,也不会在普通编码任务中乱触发。

安装一行搞定

仓库里整理好了 canonical skill bundle(docs/skills/memory-palace/)和安装脚本,不需要手动复制文件:

# 同步 skill 到当前仓库的各 CLI 目录
python scripts/sync_memory_palace_skill.py

# 安装 skill + MCP 到 Claude/Codex/OpenCode(workspace 级别)
python scripts/install_skill.py --targets claude,codex,opencode --scope workspace --with-mcp --force

# Gemini 建议用 user 级别安装(跨仓复用更稳)
python scripts/install_skill.py --targets gemini --scope user --with-mcp --force

安装完以后可以验证:

# 检查 skill 镜像有没有漂移
python scripts/sync_memory_palace_skill.py --check

# 跑四端 smoke 测试
python scripts/evaluate_memory_palace_skill.py

# 跑真实 MCP 端到端测试
cd backend && python ../scripts/evaluate_memory_palace_mcp_e2e.py

与 Claude Skills 规范的对齐

这套 skill 设计参考了 Anthropic 2026-03-03 发布的 skill-creator 规范:

  • 结构对齐:标准 skill-name/SKILL.md bundle 结构
  • 触发契约对齐description 写清"做什么"和"什么时候用",保留明确的 trigger hints
  • 渐进加载对齐:主 SKILL.md 保持短小,工具细节下沉到 references/ 目录
  • 跨客户端分发对齐:Claude / Codex / OpenCode 走 mirror,Gemini 保留 variant

不是只写了个 skill 文件就完事了,而是把 同步→安装→验证→迭代 这个闭环补齐了。


四种部署档位,按需选择

档位 检索模式 Embedding Reranker 适用场景
A 纯 keyword 最小资源验证
B hybrid 混合 本地哈希 默认起步,零外部依赖
C hybrid 混合 API 推荐档位,效果明显提升
D hybrid 混合 API 远程 API,生产环境

新手建议从 B 档位 开始,不需要任何外部模型服务就能跑通。想要更好的检索效果,强烈建议升级到 C 档位,接上 Embedding 和 Reranker 模型。

推荐模型:

所有端点都兼容 OpenAI API 格式,本地 Ollama / LM Studio 或者远程 API 都行。


Benchmark 结果

保留了和旧版本的同口径对照,高干扰场景提升比较明显:

场景 旧版 C 新版 C 旧版 D 新版 D
s8, d200 0.313 0.563 0.375 0.625
s100, d200 0.280 0.580 0.295 0.615

简单场景基本持平,干扰一多新版明显更稳。

C/D 档位在当前基准集的 SQuAD v2 上可以跑到 HR@10 = 1.000(完美召回),当然延迟会高一些,取决于模型推理速度。

image


仪表盘

不用全靠命令行,自带 React 前端仪表盘,四个主要视图:

📂 记忆浏览器 —— 树形结构浏览所有记忆,支持内联编辑和 Gist 视图

image

📋 审查与回滚 —— 快照的差异对比,改错了一键回滚

image

🔧 维护管理 —— 活力值监控、清理任务、衰减参数管理

image

📊 可观测性 —— 实时搜索监控、检索质量洞察、任务队列状态

image


快速上手

方式一:本地手动启动

# 1. 克隆
git clone https://github.com/AGI-is-going-to-arrive/Memory-Palace.git
cd Memory-Palace

# 2. 生成配置(档位 B)
bash scripts/apply_profile.sh macos b

# 3. 启动后端
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 127.0.0.1 --port 8000 --reload

# 4. 另开终端,启动前端
cd frontend
npm install && npm run dev

# 5. 浏览器打开 http://localhost:5173

方式二:Docker 一键部署

bash scripts/docker_one_click.sh --profile b

profile b 能正常使用后,强烈建议在.env中配置embedding/reranker/llm
使用profile c或者d,有非常大的提升。

部署完以后:

连接 AI 客户端

# stdio 模式(编程工具 内调用)
cd backend && python mcp_server.py

# SSE 模式
cd backend && HOST=127.0.0.1 PORT=8010 python run_sse.py

Skills 安装方式参考上面「Skills + MCP 双层架构」章节。


写入流程长啥样

简单来说就是:

写入请求 → Write Guard 预检 → 快照记录 → 写入数据库 → 异步索引重建

检索方向:

查询进来 → 意图分类 → 策略匹配 → keyword/semantic/hybrid 检索 → 返回结果 + 降级原因

这个项目的背景

最初的灵感来源于 nocturne_memory 这个项目。看到之后觉得「给 AI 加记忆」这个方向很有意思,就自己动手做了一个。

一开始想着 2 天搞定,结果发现想加的功能越来越多,第一版花了 5 天。后来又用了大量时间做升级,补齐了 Skills + MCP 的完整链路、Docker 部署、Benchmark、安全机制等等。

整个项目是一个人完成的,可能有没有测试到的地方,但是在我本机经过了实际测试是能够正常使用的,如果遇到任何问题,欢迎各位在github中提issue。


技术栈一览

技术
后端 Python 3.10+ / FastAPI / SQLAlchemy / aiosqlite
前端 React 18 / Vite / Tailwind CSS / Framer Motion
数据库 SQLite(单文件,零配置)
协议 MCP(Model Context Protocol)
部署 Docker / macOS / Windows / Linux

最后

如果你也在用 AI 编程工具,又被「每次对话都从零开始」这个问题困扰过,可以试试这个项目。

不管是想直接用,还是想学习一套「AI Agent 长期记忆系统」怎么落地,希望都能有点参考价值。

GitHub 地址:https://github.com/AGI-is-going-to-arrive/Memory-Palace

如果觉得还行,求一个 ⭐ Star,感谢!有 bug 欢迎提 issue,也欢迎 fork 二开(注明出处即可)。