标签: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+ 次 | 反复问同一类部署问题 |
| StructuredOutput | AI 输出了结构化内容 | 完整的配置文件、脚本 |
| 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 相关均为可选
📎 项目信息
| GitHub | github.com/Musenn/caps… |
| PyPI | pip 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…
如果觉得有用,点个 ⭐ 是对独立开发者最直接的支持。