关于 longmem
longmem 是面向 Cursor 和 Claude Code 编码助手的持久记忆 MCP 服务。它结合语义与关键词搜索,跨项目和会话复用解决方案,并提供用于配置、审查和交换数据的命令行工具。
主要功能
- 01语义与关键词混合搜索
- 02保存和检索过往方案
- 03跨项目共享记忆
- 04命令行配置、状态查看与审查
- 05导入和导出记忆条目
适用场景
- 01在不同项目复用修复方案
- 02查找重复问题的既有解法
- 03与团队共享已保存的方案
MCP 相关
IDE 会按需启动 longmem 作为 MCP 服务。它提供搜索、保存、修正、补充和管理已存方案的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
11收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tags | any | 否 | 用于缩小搜索范围的可选关键词——库名称、框架、错误类型、工具名称。例如 ['kubernetes','oom','python']。 |
| problem | string | 是 | 描述你要解决的问题。 |
| category | string | 否 | 问题领域。可选值:ci_cd、containers、infrastructure、cloud、networking、observability、auth_security、data_pipeline、ml_training、model_serving、experiment_tracking、llm_rag、llm_api、vector_db、agents、database、api、async_concurrency、dependencies、performance、testing、architecture、other。不确定时使用 'other'。 |
| language | string | 否 | 如适用,请填写编程语言,例如 'python'、'typescript'。 |
| threshold | any | 否 | 最低相似度(0–1)。默认使用 config.toml 中的 similarity_threshold(默认值为 0.85)。 |
详细介绍
六个月后,你的 AI 在另一个项目中再次解决同一个 Bug,编写同样的样板代码,解释同样的模式。而你早已知道答案。
longmem 为你的 AI 提供持久记忆,让它在所有项目和会话中都能使用。它会先搜索你已经解决的问题,而不是从头推理。问题解决后,它会保存解决方案。使用得越久,你重复的内容就越少。
You describe a problem
│
▼
search_similar()
┌─────────────────────────────────────────────────────┐
│ 1. pre-filter by category (ci_cd / auth / db / …) │
│ 2. semantic search (Ollama or OpenAI embeddings) │
│ 3. keyword search (SQLite FTS5 exact match) │
│ 4. merge + rank results │
└─────────────────────────────────────────────────────┘
│ │
score ≥ 85% score < 85%
│ │
▼ ▼
cached solution AI reasons from scratch
+ edge cases │
+ team knowledge "it works"
(any project) │
▼
confirm_solution()
saved once — surfaces
from every future project
为什么选择 longmem
| longmem | 其他工具 | |
|---|---|---|
| 成本 | 免费 — 使用本地 Ollama 嵌入 | 每个会话都需要 API 调用 |
| 隐私 | 数据不会离开你的设备 | 会将观察结果发送到外部 API |
| 运行方式 | 按需启动,无需守护进程 | 需要后台工作进程和开放端口 |
| IDE 支持 | Cursor + Claude Code | 主要支持一种 IDE |
| 搜索 | 混合搜索:语义 + 关键词(FTS5) | 仅向量搜索或仅关键词搜索 |
| 团队协作 | 导出 / 导入 / 共享 DB 路径 / S3 | 单用户 |
| 许可证 | MIT | AGPL / 专有 |
快速开始
1. 安装
pipx install longmem
2. 设置 — 检查 Ollama、拉取嵌入模型并写入 IDE 配置
longmem init
3. 在每个项目中启用 — 复制规则文件,告知 AI 如何使用记忆
cd your-project
longmem install
4. 重启 IDE。 记忆工具现已在每个聊天中启用。
需要 Ollama? 从 ollama.com 安装,然后运行
ollama pull nomic-embed-text。也可以使用 OpenAI — 请参阅配置。
工作原理
longmem 是一个 MCP 服务。你的 IDE 会按需启动它。以下两条规则驱动整个工作流:
规则 1 — 先搜索。 在 AI 推理任何 Bug 或问题之前,它会调用 search_similar。如果找到匹配项(余弦相似度 ≥ 85%),就会返回缓存的解决方案及任何边缘情况说明。低于阈值时,AI 会照常解决问题。
规则 2 — 成功后保存。 当你确认某个方案有效时,AI 会调用 confirm_solution。只需一个参数——解决方案文本。问题元数据会根据之前的搜索自动填充。
规则文件(Cursor 使用 longmem.mdc,Claude Code 使用 CLAUDE.md)会自动完成配置。无需手动输入提示词。
AI 忘了保存? 运行 longmem review — 使用交互式 CLI,在 30 秒内保存任意解决方案。
冷启动——从第一天起发挥价值
longmem 在积累条目后最有用。最快的初始化方式:
选项 1——边用边回顾。 本周每解决一个问题后,运行 longmem review 并描述你修复了什么。十条记录就足以让你感受到差异。
选项 2——团队导入。 如果有队友已经积累了条目,他们可以导出,你再导入:
# teammate
longmem export team_knowledge.json
# you
longmem import team_knowledge.json
选项 3——共享数据库。 将 db_path(或用于 S3/云存储的 db_uri)设置为团队共用的位置。每次保存的内容都会立即对所有人可用。
命令行
| 命令 | 功能 |
|---|---|
longmem init | 一次性设置:检查 Ollama、拉取模型、写入 IDE 配置 |
longmem install | 将规则复制到当前项目 |
longmem status | 配置、Ollama 可访问性、条目数、数据库大小 |
longmem export [file] | 将所有条目导出为 JSON——用于备份或共享 |
longmem import <file> | 加载 JSON 导出文件——用于团队成员入门或迁移设备 |
longmem review | AI 忘记时,手动保存解决方案 |
不带参数运行 longmem 会启动 MCP 服务(供 IDE 使用)。
配置
配置文件位于 ~/.longmem/config.toml。所有字段均为可选——默认设置适用于本地 Ollama 实例。
切换到 OpenAI 嵌入
embedder = "openai"
openai_model = "text-embedding-3-small"
openai_api_key = "sk-..." # or set OPENAI_API_KEY
安装附加组件:pip install 'longmem[openai]'
团队共享数据库
将每位团队成员的配置指向同一路径:
# NFS / shared drive
db_path = "/mnt/shared/longmem/db"
或使用云存储:
# S3 (uses AWS env vars)
db_uri = "s3://my-bucket/longmem"
# LanceDB Cloud
db_uri = "db://my-org/my-db"
lancedb_api_key = "ldb_..." # or set LANCEDB_API_KEY
没有共享挂载?使用 longmem export / longmem import 分发快照。
团队知识库
将适用于整个技术栈的事实保存到 project="shared",使其能在任何代码仓库中出现:
save_solution(
problem="why oauth2-proxy uses port 4181 not default 4180",
solution="General: 4180 is the oauth2-proxy default. 4181 means something else already occupies 4180.\n\nThis team's setup: Sinfonia always runs on 4180. Every other project uses 4181+ by convention.",
project="shared",
category="networking",
tags=["oauth2-proxy", "ports", "nginx"]
)
search_similar 会搜索所有项目——来自 shared 的条目会自动在任何代码仓库中出现,无需使用 search_by_project。
三层解决方案格式——编写解决方案,让发现它们的任何人都能使用:
| 层级 | 范围 | 保存方式 |
|---|---|---|
| 1. 通用模式 | 通用——适用于任何团队 | 始终写入解决方案文本 |
| 2. 团队通用事实 | 整个技术栈 | project="shared" |
| 3. 项目细节 | 仅限一个代码仓库 | project="<repo>" + enrich_solution |
调整
similarity_threshold = 0.85 # minimum score to surface a cached result (default 0.85)
duplicate_threshold = 0.95 # minimum score to block a save as a near-duplicate (default 0.95)
MCP 工具
该服务提供 11 个工具。你最常用的两个:
search_similar——语义与关键词混合搜索。返回按相关性排序的匹配项、相似度分数、边缘情况,以及当命中来自精确文本而非向量相似度时显示的keyword_match标记。confirm_solution——使用一个参数保存解决方案。问题元数据会根据前一次搜索自动填充。
完整列表:save_solution、correct_solution、enrich_solution、add_edge_case、search_by_project、delete_solution、rebuild_index、list_recent、stats。
达到 256 条或更多条目后,调用一次 rebuild_index,以压缩数据库并构建 ANN 索引,从而加快搜索速度。
类别参考
类别会在向量搜索前进行预筛选,无论规模大小,都能保持检索速度。
| 类别 | 适用场景 |
|---|---|
ci_cd | GitHub Actions、Jenkins、GitLab CI、构建失败 |
containers | Docker、Kubernetes、Helm、OOM 终止 |
infrastructure | Terraform、Pulumi、CDK、IaC 漂移 |
cloud | AWS/GCP/Azure SDK、IAM、配额错误 |
networking | DNS、TLS、负载均衡器、超时、代理 |
observability | 日志、指标、追踪、Prometheus、Grafana |
auth_security | OAuth、JWT、RBAC、密钥、CVE |
data_pipeline | Airflow、Prefect、Dagster、ETL、数据质量 |
ml_training | GPU/CUDA、分布式训练、OOM |
model_serving | vLLM、Triton、推理延迟、批处理 |
experiment_tracking | MLflow、W&B、DVC、可复现性 |
llm_rag | 分块、嵌入、检索、重排序 |
llm_api | 速率限制、令牌成本、提示词工程 |
vector_db | Pinecone、Weaviate、Qdrant、LanceDB |
agents | LangChain、LlamaIndex、工具调用、Agent 记忆 |
database | SQL/NoSQL、迁移、慢查询 |
api | REST、GraphQL、gRPC、版本管理 |
async_concurrency | 竞态条件、事件循环、死锁 |
dependencies | 版本冲突、打包、锁文件 |
performance | 性能分析、内存泄漏、缓存 |
testing | 不稳定测试、模拟对象、集成测试与单元测试 |
architecture | 设计模式、服务边界、重构 |
other | 以上类别均不适用时 |
参与贡献
非常欢迎贡献——这个项目会随着使用它的社区不断成长。
无论是修复错误、开发新功能、完善文档,还是分享你的使用场景,都能带来帮助。如果你不确定某个想法是否适合,先提出一个 issue,我们会一起商量。
开始参与:
git clone https://github.com/marerem/longmem
cd longmem
uv sync --group dev
uv run pytest
适合初次参与的贡献:
- 提出新的类别建议
- 分享你在实际项目中遇到的边界情况
- IDE 集成(JetBrains、VS Code、Neovim 等)
- 改进错误消息
- 种子数据集——导出你自己的条目,并将其作为入门包分享
无需编写代码也能参与:
- 如果觉得这个仓库有用,请点个 Star
- 分享给你的团队
- 如果有不清楚的地方,请提出 issue——不清晰的用户体验就是一个错误
许可证
MIT——详见 LICENSE。
mcp-name: io.github.marerem/longmem
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。