memora
为 AI Agent 提供持久记忆:跨会话永不遗忘,基于 MCP 协议深度集成 Claude Code
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为 AI Agent 提供持久记忆:跨会话永不遗忘,基于 MCP 协议深度集成 Claude Code
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

Memora 是由 agentic-box 团队开发的开源项目,旨在为 AI Agent 提供持久化记忆能力。GitHub 斩获 417 颗星,被收录至 Awesome Claude Code 精选列表,获得了 Claude Code 用户的广泛认可。
想象一个场景:你正在用 Claude Code 开发一个复杂的多文件项目,中途去开会或休息,第二天回来 Claude 已经完全「失忆」——不记得之前做了什么决定、哪些文件改过、哪些问题需要跟进。Memora 正是为解决这一痛点而生:它为 AI Agent 构建了一个持久化的记忆存储层,让跨会话的上下文信息永不丢失。
从技术实现角度看,Memora 是一套基于 MCP(Model Context Protocol)协议的记忆服务器,底层用 SQLite 做持久化存储,通过语义检索和知识图谱组织信息。它不是简单地将对话历史存起来,而是将信息结构化为可检索、可关联、可推理的记忆节点,模拟人类大脑如何将零散的感知编织成连贯的经历。
Memora 的核心工作流可以概括为三个阶段:吸收(Absorb)、消化(Digest) 和 检索(Retrieve)。

吸收阶段:Claude Code 通过 MCP 协议调用 memory_absorb 工具,将当前工作上下文(代码片段、文件改动、问题分析等)写入 Memora 的 SQLite 数据库。每条记忆都是一个结构化节点,包含内容文本、标签、时间戳、层级路径和重要性评分。Memora 会自动检测重复记忆——如果新吸收的内容与已有记忆相似度超过 85%(基于 TF-IDF 或语义嵌入),会提示用户选择合并或保留。
消化阶段:Memora 自动构建记忆之间的关联关系,生成 typed edge(图关系边),将相关记忆链接成一个有机的知识网络。同时,它会自动推断层级结构——比如 project/backend/api、project/frontend/components 这样的命名空间路径,帮助 Agent 将记忆组织成树状结构而非扁平列表。
检索阶段:Agent 可以随时调用 memory_digest(topic) 获取某个主题的确定性摘要,该摘要聚合相关记忆节点、待办事项、关联边和来源 ID。与简单的关键词搜索不同,Memora 支持混合检索——将 BM25 全文检索与向量语义相似度加权融合,兼顾精确匹配和语义理解。
从源码来看,Memora 的架构非常清晰,核心模块分层明确:
| 模块 | 文件 | 职责 |
|---|---|---|
| MCP Server | server.py (112KB) | 基于 FastMCP 框架暴露所有工具,处理 MCP 协议通信 |
| 存储引擎 | storage.py (175KB) | SQLite 操作核心,实现所有 CRUD + 检索逻辑 |
| 后端抽象 | backends.py (42KB) | 多存储后端抽象(本地 S3/R2/D1) |
| 知识图谱 | graph/server.py (34KB) | 可视化图谱渲染和数据结构 |
| 文档存储 | document.py (19KB) | Markdown 文档的分片存储和片段管理 |
| 嵌入检索 | embeddings.py (14KB) | TF-IDF / sentence-transformers / OpenAI 三种嵌入后端 |
MCP 协议层(server.py):项目采用 FastMCP 框架实现 MCP 服务器,支持 stdio、SSE 和 streamable-http 三种传输方式。server.py 定义了 40+ 个 MCP 工具,从基础的 memory_create、memory_get、memory_delete 到高级的 memory_semantic_search、memory_digest、memory_insights,工具之间通过统一的数据模型交互。值得注意的是,server.py 对 Anthropic 的工具输入 schema 做了兼容性处理——递归展开 Optional[X] 类型,避免 anyOf / oneOf 导致的验证失败。
存储引擎(storage.py):175KB 的存储模块是整个项目最核心的代码库,实现了 Memora 的所有核心算法。记忆按层级结构存储,支持 section/subsection 嵌套;每条记忆包含内容、标签集、元数据字典和创建时间。存储引擎内置了全文检索(SQLite FTS5)、向量化检索(可切换 TF-IDF/sentence-transformers/OpenAI Embedding)、交叉引用生成和聚类检测。工具调用有冷却时间限制(Tool Cooldowns),防止资源耗尽攻击,比如 rebuild_embeddings 冷却 5 分钟,find_duplicates 冷却 2 分钟。
多后端支持(backends.py):除本地 SQLite 外,Memora 还支持将数据库同步到云端存储:AWS S3(通过 boto3)、Cloudflare R2(兼容 S3 协议)和 Cloudflare D1(SQLite 边缘数据库)。这使得多设备、多 Agent 共享同一记忆库成为可能。
知识图谱可视化(graph/server.py + graph/templates.py):内置图谱服务器(默认 8765 端口),用 Mermaid 渲染记忆网络的拓扑结构,支持集群着色和时间轴回溯。graph/data.py 负责将记忆节点和边转换为 D3.js 可视化数据。
Memora 的安装极其简单,一行命令即可完成:
pip install git+https://github.com/agentic-box/memora.git
install.sh 脚本提供了完整的安装流程:先通过 pipx 或 pip 安装 memora-server 可执行文件,再将 skills/memora/SKILL.md 复制到 ~/.claude/skills/,最后检查 .mcp.json 配置是否包含 Memora 服务器条目。
启动方式有两种:stdio 模式(MCP 默认,适合 Claude Code、Cursor 等 IDE 集成)和 HTTP 模式(--transport streamable-http),后者更适合独立部署或远程访问。启动后自动打开知识图谱可视化界面(默认 8765 端口),可以直观看到记忆网络的实时变化。

硬件需求极低:不需要 GPU,内存仅需 512MB,磁盘空间 100MB,Python 3.10+ 即可运行。唯一的可选依赖是 sentence-transformers(本地语义嵌入,约 2GB PyTorch 模型),如使用 OpenAI 嵌入则无需安装。
最适配的场景:
需要了解的局限性:
Memora 在 AI Agent 记忆领域找到了一个精准的定位——它不是通用知识库,也不是向量数据库的简单包装,而是一套专门为 AI Agent 工作流设计的记忆基础设施。通过 MCP 协议深度集成 Claude Code,围绕「吸收-消化-检索」构建了完整的能力闭环。
其代码质量可圈可点:采用 FastMCP 框架保证了 MCP 协议兼容性,分层模块化设计(存储/后端/图谱/嵌入各自独立),工具冷却机制防止滥用,向量检索支持多后端灵活切换。不足之处在于缺乏容器化支持限制了部署灵活性,图谱可视化仍有提升空间。
如果你使用 Claude Code 或其他 MCP 兼容的 Agent 工具,并且经常被「Agent 忘记上下文」的问题困扰,Memora 值得一试——它可能是目前最成熟的开源 Agent 记忆解决方案之一。
技术指标速览
| 指标 | 值 |
|---|---|
| 语言 | Python ≥ 3.10 |
| 核心框架 | MCP (FastMCP), Starlette, Uvicorn |
| 存储 | SQLite (本地/S3/R2/D1) |
| 嵌入后端 | TF-IDF / sentence-transformers / OpenAI |
| MCP 工具数 | 40+ |
| 许可证 | MIT |
| GitHub Stars | 417 |