Capsule Memory——一个开源项目,让记忆不再黑盒,让用户真正可控。

6 阅读4分钟

标签:AI、开源、MCP、Python、LLM、Claude


Claude Code 有个让人抓狂的问题:每次新开会话,它什么都不记得了。你上次教它的偏好、调过的工作流、踩过的坑——全部归零。

这不是 Claude 的问题,是所有 LLM 的结构性限制。但这个问题可以在外部解决。

于是我花了几周做了 CapsuleMemory,一个用户主权的 AI 记忆胶囊系统,今天正式开源。


🚀 一行命令让 Claude Code 拥有跨会话记忆

pip install 'capsule-memory[mcp]'
capsule-memory-mcp

然后在 Claude Code 的 MCP 配置里加上这个 server,之后的每次对话,Claude 会自动:

  • 对话开始时 recall 与当前话题相关的历史记忆
  • 对话中识别可复用的技能模式(代码结构、工作流、用户偏好)
  • 对话结束时自动 seal,把本次对话封装成胶囊持久化

全程零配置,MCP Server 内置了 system instructions,告诉 Claude 如何管理记忆,不需要手写 CLAUDE.md 或 .cursorrules。

同样支持 Cursor、Windsurf、Continue、Cline 等所有支持 MCP 协议的客户端。


🧠 核心设计理念:用户主权

市面上大多数 AI 记忆系统默认把一切都存下来,用户几乎没有控制权。CapsuleMemory 反过来:

Session 隔离,默认不持久化。 用户主动决定把哪次对话「封装」成胶囊。

对话过程                      用户决策
  │                             │
  ▼                             ▼
Session ──ingest()──► 技能检测 ──seal()──► Capsule(永久保存)
                          │
                     SkillTriggerEvent
                    (询问用户是否提取)

💡 技能提取:不只是记对话

CapsuleMemory 内置了一个规则引擎,实时从对话中识别可复用的技能模式

规则触发条件示例
UserAffirmation用户明确肯定了某个方案"就用这个方案"
RepeatPattern同类问题连续出现 3+ 次反复问同一类部署问题
StructuredOutputAI 输出了结构化内容完整的配置文件、脚本
LengthSignificance单次响应超长详细的架构解释

识别到技能时,系统触发 SkillTriggerEvent,可以选择提取为独立技能胶囊、合并到记忆、或忽略。


🗄️ 四种存储后端,按需选择

pip install capsule-memory                  # 默认 Local(文件,开发用)
pip install 'capsule-memory[sqlite]'        # SQLite + 384维向量检索
pip install 'capsule-memory[redis]'         # Redis(多服务共享)
pip install 'capsule-memory[qdrant]'        # Qdrant(生产级向量数据库)

SQLite 和 Qdrant 后端使用 sentence-transformers 做 384 维向量嵌入,支持语义相似度检索,recall("部署流程") 能匹配到你上周聊过的「容器化方案」。


📦 四种接入方式

1. SDK(Python)

from capsule_memory import CapsuleMemory

cm = CapsuleMemory()

# 被动模式:一行搞定 recall + ingest + 生命周期
result = await cm.remember(
    user_message="我偏好用 black 格式化代码",
    ai_response="好的,后续都用 black。",
    user_id="alice"
)

# 首次调用自动 recall 历史记忆
if "recalled_context" in result:
    print(result["recalled_context"])  # 注入给 LLM 的上下文

2. MCP Server(Claude Code / Cursor)

10 个 MCP tools,涵盖 ingest、recall、seal、export、技能确认等完整流程。

3. REST API(FastAPI)

pip install 'capsule-memory[server]'
capsule-memory serve --port 8000
# http://localhost:8000/docs 查看完整 Swagger UI

16 个端点,支持 Bearer Token 鉴权,可直接作为微服务接入任何技术栈。

4. CLI

capsule-memory ingest "怎么部署?" "用 docker-compose" -s my_session
capsule-memory seal -s my_session -t "部署指南" --tag deployment
capsule-memory recall "部署"

🔗 框架适配器

# LangChain
from capsule_memory.adapters.langchain import CapsuleMemoryLangChainMemory
memory = CapsuleMemoryLangChainMemory(cm, user_id="alice")

# LlamaIndex
from capsule_memory.adapters.llamaindex import CapsuleMemoryLlamaIndexMemory
memory = CapsuleMemoryLlamaIndexMemory(cm, user_id="alice")

# OpenAI / Anthropic 原生 SDK 同样有 adapter

📤 胶囊导出格式

格式说明
JSON可读,便于调试
MessagePack二进制,压缩率更高
Universal跨平台可移植格式
Prompt直接生成可注入 LLM 的文本片段

支持 Fernet 对称加密导出(pip install 'capsule-memory[crypto]'),PBKDF2 密钥派生。


🧪 工程质量

  • Python 3.11 / 3.12 / 3.13 全版本覆盖
  • 431 个单元测试,全部通过
  • mypy strict 模式,ruff lint 零警告
  • CI 跑 lint → type check → unit tests → integration tests 完整链路
  • 核心依赖只有 5 个(pydantic、msgpack、rich、aiofiles、typer),LLM 相关均为可选

📎 项目信息

GitHubgithub.com/Musenn/caps…
PyPIpip install capsule-memory
npm(TS SDK)npm install @capsule-memory/sdk
文档Musenn.github.io/capsule-mem…
协议Apache 2.0
版本0.1.1 Alpha

如果你也被 Claude Code 的「失忆」问题困扰过,欢迎试用,有问题直接开 Issue。

GitHub 地址:github.com/Musenn/caps…

如果觉得有用,点个 ⭐ 是对独立开发者最直接的支持。