mcpField
L
longmem

longmem

本地服务
github.com/marerem记忆与知识128 周前更新

关于 longmem

longmem 是面向 Cursor 和 Claude Code 编码助手的持久记忆 MCP 服务。它结合语义与关键词搜索,跨项目和会话复用解决方案,并提供用于配置、审查和交换数据的命令行工具。

主要功能

  1. 01语义与关键词混合搜索
  2. 02保存和检索过往方案
  3. 03跨项目共享记忆
  4. 04命令行配置、状态查看与审查
  5. 05导入和导出记忆条目

适用场景

  1. 01在不同项目复用修复方案
  2. 02查找重复问题的既有解法
  3. 03与团队共享已保存的方案

MCP 相关

IDE 会按需启动 longmem 作为 MCP 服务。它提供搜索、保存、修正、补充和管理已存方案的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"marerem-longmem": {
"command": "uvx",
"args": [
"longmem"
]
}
}
}
启动命令uvx longmem

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypilongmem0.2.1

工具

11

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagsany否用于缩小搜索范围的可选关键词——库名称、框架、错误类型、工具名称。例如 ['kubernetes','oom','python']。
problemstring是描述你要解决的问题。
categorystring否问题领域。可选值: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'。
languagestring否如适用,请填写编程语言,例如 'python'、'typescript'。
thresholdany否最低相似度(0–1)。默认使用 config.toml 中的 similarity_threshold(默认值为 0.85)。

详细介绍

longmem

为 AI 编码助手提供跨项目记忆。
别再重复解决相同的问题。

PyPI Python 3.11+ License: MIT Tests Coverage Open Issues Closed Issues marerem/longmem MCP server


六个月后,你的 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单用户
许可证MITAGPL / 专有

快速开始

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 reviewAI 忘记时,手动保存解决方案

不带参数运行 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_cdGitHub Actions、Jenkins、GitLab CI、构建失败
containersDocker、Kubernetes、Helm、OOM 终止
infrastructureTerraform、Pulumi、CDK、IaC 漂移
cloudAWS/GCP/Azure SDK、IAM、配额错误
networkingDNS、TLS、负载均衡器、超时、代理
observability日志、指标、追踪、Prometheus、Grafana
auth_securityOAuth、JWT、RBAC、密钥、CVE
data_pipelineAirflow、Prefect、Dagster、ETL、数据质量
ml_trainingGPU/CUDA、分布式训练、OOM
model_servingvLLM、Triton、推理延迟、批处理
experiment_trackingMLflow、W&B、DVC、可复现性
llm_rag分块、嵌入、检索、重排序
llm_api速率限制、令牌成本、提示词工程
vector_dbPinecone、Weaviate、Qdrant、LanceDB
agentsLangChain、LlamaIndex、工具调用、Agent 记忆
databaseSQL/NoSQL、迁移、慢查询
apiREST、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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。