Metadata-Version: 2.4
Name: mcp-mem0
Version: 0.2.0
Summary: Cross-session memory system for AI Agent tools, powered by mem0 + Qdrant + MCP
Project-URL: Homepage, https://github.com/ccperdst-lab/agent-mem0
Project-URL: Repository, https://github.com/ccperdst-lab/agent-mem0
Project-URL: Issues, https://github.com/ccperdst-lab/agent-mem0/issues
Author: aishu
License-Expression: Apache-2.0
Keywords: agent,ai,claude,mcp,mem0,memory
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Requires-Dist: click>=8.0.0
Requires-Dist: mcp>=1.0.0
Requires-Dist: mem0ai<3.0.0,>=2.0.0
Requires-Dist: ollama<1.0.0,>=0.4.0
Requires-Dist: platformdirs>=3.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: qdrant-client>=1.9.0
Requires-Dist: rich>=13.0.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Provides-Extra: litellm
Requires-Dist: litellm>=1.0.0; extra == 'litellm'
Provides-Extra: reranker
Requires-Dist: sentence-transformers>=2.0.0; extra == 'reranker'
Description-Content-Type: text/markdown

# agent-mem0

[![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
[![PyPI version](https://img.shields.io/pypi/v/mcp-mem0.svg)](https://pypi.org/project/mcp-mem0/)
[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE)

[English](README-en.md)

**为 Claude Code 提供跨 Session 记忆能力。**

Claude Code 每次对话都是全新的 — 它不记得你的偏好、技术决策、项目上下文。agent-mem0 通过 MCP Server 为 Claude 注入持久记忆，让它在新 Session 中也能延续之前的对话上下文。

## 架构

```mermaid
graph LR
    CC[Claude Code] <-->|MCP / stdio| MCP[MCP Server]
    MCP --> mem0[mem0]
    mem0 --> LLM[LLM<br/>记忆提取 & 冲突检测]
    mem0 --> EMB[Embedder<br/>文本向量化]
    mem0 --> QD[Qdrant<br/>向量存储]
```

**工作原理：**
- **mem0** 负责记忆的语义理解 — 提取关键信息、检测新旧记忆冲突、自动合并更新
- **LLM** 为 mem0 提供语义能力（判断"用户喜欢用 pytest"和"用户偏好 pytest 框架"是同一条记忆）
- **Embedder** 将文本转为向量，供 Qdrant 进行相似度搜索
- **Qdrant** 存储和检索记忆向量，支持 Docker、纯本地和外部连接三种模式

## 快速开始

### 前置条件

- Python 3.10+
- Docker（推荐，用于运行 Qdrant）或使用纯本地模式
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code)

### 1. 安装

```bash
pip install mcp-mem0
```

或从源码安装：

```bash
git clone https://github.com/ccperdst-lab/agent-mem0.git
cd agent-mem0
pip install -e .
```

### 2. 全局配置（一次性）

**交互式向导：**

```bash
agent-mem0 install
```

向导会引导你完成：
- 选择 LLM Provider（Ollama / OpenAI / Anthropic / LiteLLM）
- 选择 Embedding Provider（Ollama / OpenAI / LiteLLM）
- 配置 Qdrant 存储模式（Docker / Local / External）
- 自动检测并安装 Ollama、Docker（如需要）
- 自动拉取所需模型和镜像
- 写入配置文件和 CLAUDE.md 记忆规则

**非交互模式（CI/自动化）：**

```bash
# 使用推荐预设（自动检测硬件选择模型）
agent-mem0 install --default

# 指定预设
agent-mem0 install --default --preset cloud --api-key "sk-..."
```

可用预设：`recommended`（自动选择）、`light`（轻量本地）、`cloud`（云端 API）。

### 3. 项目配置（每个项目一次）

```bash
cd your-project
agent-mem0 setup
```

这一步会在项目目录下创建：
- `.mcp.json` — Claude Code 的 MCP Server 配置
- `.claude/skills/agent-memory/` — `/agent-memory:init` Skill

### 4. 开始使用

启动 Claude Code，记忆系统自动生效。首次可运行：

```
/agent-memory:init
```

生成项目级上下文（CLAUDE.md），帮助 Claude 更好地理解你的项目。

## 功能特性

### 跨 Session 记忆

Claude 自动记住你的偏好、技术决策、项目上下文。新 Session 开启时自动检索相关记忆，无需重复交代背景。

### 项目级隔离 + 全局共享

每个项目的记忆互相隔离，同时支持全局记忆（如个人偏好、通用规则）。搜索时项目记忆和全局记忆按相关性统一排序，公平竞争。

### 智能记忆管理

- **场景驱动的工具选择**：5 条强制规则确保 Claude 在正确的时机使用正确的记忆工具
- **冲突检测**：修改已有架构/决策时自动检索并更新相关记忆，而不是创建重复记忆
- **搜索管线**：宽取候选 → 相关性阈值过滤 → TTL 时间过滤 → score 排序 → 截断返回
- **可选精排**：支持 Reranker（sentence-transformer / LLM / Cohere），在向量检索后二次精排提升结果质量

### 多 Provider 支持

| 类型 | 可选 Provider |
|------|--------------|
| LLM | Ollama, OpenAI, Anthropic, LiteLLM |
| Embedder | Ollama, OpenAI, LiteLLM |
| 向量存储 | Qdrant (Docker / Local / External) |
| Reranker | sentence-transformer, LLM, Cohere, HuggingFace（可选） |

### 异步写入 & 自动 GC

记忆写入通过后台队列异步执行，不阻塞 Claude 的响应。过期记忆（超过 TTL）在搜索时自动标记，累积到阈值后批量清理。

### 记忆规则注入

安装时自动向 `~/.claude/CLAUDE.md` 写入 5 条强制记忆规则，覆盖 search / add / update / delete / list / history 全部 6 个工具的使用时机，确保 Claude 在每个 Session 中主动管理记忆。

## MCP 工具

安装后，Claude Code 可通过以下 MCP 工具操作记忆：

| 工具 | 说明 | 关键参数 |
|------|------|---------|
| `memory_search` | 语义搜索记忆 | `query`, `project`, `days`, `top_k` |
| `memory_add` | 添加记忆（自动去重和合并） | `text`, `project`, `metadata` |
| `memory_update` | 更新已有记忆内容 | `memory_id`, `text` |
| `memory_delete` | 删除指定记忆 | `memory_id` |
| `memory_list` | 列出所有记忆 | `project`, `days` |
| `memory_history` | 查看记忆变更历史 | `memory_id` |

> 这些工具由 Claude 根据记忆规则自动调用，通常不需要你手动操作。

## 配置

配置文件路径因平台而异：

| 平台 | 配置目录 | 数据目录 | 日志目录 |
|------|---------|---------|---------|
| macOS | `~/Library/Application Support/agent-mem0/` | 同配置目录 | `~/Library/Logs/agent-mem0/` |
| Linux | `~/.config/agent-mem0/` | `~/.local/share/agent-mem0/` | `~/.local/state/agent-mem0/log/` |
| Windows | `%APPDATA%\agent-mem0\` | `%LOCALAPPDATA%\agent-mem0\` | `%LOCALAPPDATA%\agent-mem0\Logs\` |

采用 **shadow config** 机制：代码内置完整默认值，用户配置文件只需写你想覆盖的字段。

### 常见配置场景

**使用 OpenAI：**

```yaml
llm:
  provider: openai
  model: gpt-4o-mini
  api_key: "sk-..."

embedder:
  provider: openai
  model: text-embedding-3-small
  api_key: "sk-..."
```

**使用 Ollama（本地部署，无需 API Key）：**

```yaml
llm:
  provider: ollama
  model: qwen2.5:7b
  base_url: http://localhost:11434

embedder:
  provider: ollama
  model: nomic-embed-text
  base_url: http://localhost:11434
```

**使用 LiteLLM 代理（如 Azure OpenAI）：**

```yaml
llm:
  provider: litellm
  model: azure_openai/gpt-4o
  base_url: https://your-litellm-proxy.com
  api_key: "your-key"
```

**调节搜索参数：**

```yaml
memory:
  search_top_k: 20        # 每路搜索候选数量
  search_threshold: 0.3   # 相关性阈值（0 = 不过滤）
  search_max_results: 10  # 最终返回最大条数
  default_ttl_days: 30    # 记忆保留天数
```

**启用 Reranker（可选）：**

```yaml
reranker:
  provider: sentence_transformer
  config:
    model: cross-encoder/ms-marco-MiniLM-L-6-v2
    top_k: 10
```

需要额外安装：`pip install mcp-mem0[reranker]`

## CLI 命令

| 命令 | 说明 |
|------|------|
| `agent-mem0 install` | 全局安装向导：配置 Provider、存储、记忆规则 |
| `agent-mem0 install --default` | 非交互模式：自动检测硬件，使用推荐配置 |
| `agent-mem0 setup` | 项目级配置：写入 MCP 配置和 Skill |
| `agent-mem0 status` | 查看系统状态：Qdrant 连接、Provider 配置、记忆统计 |
| `agent-mem0 uninstall` | 卸载：移除配置和产物，保留记忆数据 |
| `agent-mem0 uninstall --purge` | 彻底卸载：额外删除记忆数据和 Docker 容器 |

## 常见问题

**Q: Qdrant 连接失败**

检查 Docker 是否运行：
```bash
docker ps | grep qdrant
# 如果没有运行：
docker start agent-mem0-qdrant
```

或切换到 Local 模式（无需 Docker）：
```yaml
vector_store:
  mode: local
```

**Q: Ollama 模型拉取失败**

确认 Ollama 服务已启动：
```bash
ollama list
# 如果未启动：
ollama serve
```

**Q: 代理环境下连接失败**

agent-mem0 会自动将本地服务地址（localhost 等）加入 `NO_PROXY`。如果仍有问题，手动设置：
```bash
export NO_PROXY=localhost,127.0.0.1
```

**Q: 如何查看当前状态？**

```bash
agent-mem0 status
```

会显示 Qdrant 连接状态、Provider 配置、已注册项目和记忆统计。

## License

[Apache-2.0](LICENSE)
