← Back to Plugins
Tools

Mcp Qdrant Memory

hailanlan0577 By hailanlan0577 ⭐ 1 stars 👁 32 views ▲ 0 votes

Qdrant 向量记忆系统 - Claude Code MCP Server + OpenClaw Plugin,支持双向记忆互通、时间感知回忆、自动去重

GitHub

Install

npm install
```

Configuration Example

{
  "mcpServers": {
    "qdrant-memory-v3": {
      "command": "python",
      "args": ["/path/to/server_v3.py"],
      "env": {
        "DASHSCOPE_API_KEY": "sk-xxx"
      }
    }
  }
}

README

# Qdrant Memory System v3.0

基于 Qdrant 向量数据库的 AI 永久记忆系统,支持 Claude Code(MCP Server)和 OpenClaw(插件)双端接入,记忆双向互通。

## 有 Qdrant V3 vs 没有 Qdrant V3

### 没有 Qdrant V3

#### MacBook Pro 上的 Claude Code

- **没有长期记忆** — 每次打开新窗口,就是一个全新的 Claude,不记得之前聊过什么
- **只有当前会话上下文** — 只能记住这一次对话里的内容,窗口一关全忘
- **本地文件记忆** — 有个 `MEMORY.md` 文件可以手动写一些笔记,但容量小(200行截断),而且是纯文本,不能语义搜索
- **无法跨会话检索** — 你上周做了什么决策、讨论了什么架构,Claude 完全不知道,除非你自己复述一遍
- **无法读取 OpenClaw 的对话** — Mac Mini 上飞书聊了什么,Claude Code 这边一无所知

#### Mac Mini 上的 OpenClaw

- **也没有长期记忆** — 飞书对话结束后,下次再问它就忘了
- **群聊内容不沉淀** — 飞书群里讨论的业务决策、需求分析、架构讨论,聊完就散了
- **无法回忆之前的讨论** — 你问"昨天聊的飞书联动模块是什么",它答不上来
- **无法被 Claude Code 查询** — MacBook Pro 这边想了解飞书上聊过什么,没有任何途径

### 有了 Qdrant V3

#### MacBook Pro 上的 Claude Code

- **有了永久记忆** — 每轮问答自动存入向量数据库,关掉窗口也不会丢
- **跨会话语义搜索** — 新窗口打开后,可以搜到之前任何一次对话的内容。搜"飞书联动"就能把所有相关讨论调出来
- **大模型级中文理解** — 用阿里云 text-embedding-v4(Qwen3-Embedding),不是简单关键词匹配,而是真正理解语义。搜"包的管理系统"也能找到"包务模块"相关的内容
- **长文本完整覆盖** — 支持 8192 Token,一整轮详细的问答都能完整索引,搜索时能命中内容的任何部分
- **能调取 OpenClaw 的记忆** — 通过 `search_openclaw_memory`,可以搜索 Mac Mini 上飞书聊天的历史内容
- **自动分级** — 重要的架构决策、解决方案自动标记为 high importance,日常闲聊标记为 low,搜索时重要内容优先展示

#### Mac Mini 上的 OpenClaw

- **飞书聊天有了记忆** — 群里讨论的需求、决策、业务细节自动沉淀
- **能回忆之前的讨论** — 你在飞书问"昨天聊的二奢软件回忆一下",它能完整回忆出来
- **中文语义搜索质量高** — 和 Claude Code 用同一个大模型 embedding(1024维),中文理解能力强
- **能被 Claude Code 跨机器查询** — MacBook Pro 上随时可以调取飞书上的讨论内容,两台机器的知识打通了

### 一句话总结

**没有 V3**:两台机器各自失忆,每次都从零开始,互相不知道对方聊了什么。

**有了 V3**:两台机器都有了永久记忆,能跨会话回忆,而且知识互通。

## v3.0 核心升级

| | v2.3 | v3.0 |
|---|---|---|
| **Embedding 模型** | 本地小模型 (bge-small-zh / all-MiniLM-L6-v2) | **阿里云 text-embedding-v4** |
| **向量维度** | 512 / 384 | **1024** |
| **最大 Token** | 512 | **8,192** |
| **语义理解** | 基础 | **大模型级别** |
| **Claude Code 集合** | claude-memory | **claude-memory-v3** |
| **OpenClaw 集合** | openclaw_memories | **openclaw_memories_v3** |
| **跨系统搜索** | 关键词匹配(维度不同) | **关键词匹配(统一维度,可扩展向量搜索)** |

## 架构

```
┌─────────────────────┐          ┌─────────────────────┐
│   MacBook Pro        │          │   Mac Mini           │
│                     │          │                     │
│  Claude Code        │          │  OpenClaw Gateway   │
│  ├─ server_v3.py    │          │  ├─ index.js (V3)   │
│  │  (MCP Server)    │          │  │  (Plugin)         │
│  │                  │          │  │                   │
│  │  search_memory ──┼──────────┼──┤  memory_search    │
│  │  keyword_search  │  Qdrant  │  │  memory_store     │
│  │  store_memory    │  6333    │  │  memory_keyword   │
│  │  delete_memory   │◄────────►│  │  memory_stats     │
│  │  list_memories   │          │  │  memory_forget    │
│  │  memory_stats    │          │  │                   │
│  │                  │          │  │  跨系统搜索:       │
│  │  search_openclaw ┼──────────┼──►  memory_search    │
│  │  _memory ────────┼──┐      │  │  _claude ─────────┼──┐
│  └──────────────────┘  │      │  └───────────────────┘  │
│                        │      │                         │
└────────────────────────┘      └─────────────────────────┘
            │                              │
            ▼                              ▼
   ┌─────────────────┐          ┌──────────────────────┐
   │ claude-memory-v3 │          │ openclaw_memories_v3  │
   │ 1024-dim         │          │ 1024-dim              │
   │ text-embedding-v4│          │ text-embedding-v4     │
   └─────────────────┘          └──────────────────────┘
              └──────────┬───────────┘
                    Qdrant DB
                 localhost:6333
```

## 版本历史

### v3.0 (2026-03-20) - 当前版本

**Embedding 大升级:text-embedding-v4**

- **阿里云 text-embedding-v4**: 从本地小模型升级到大模型级 embedding,语义理解大幅提升
- **1024 维向量**: 统一 Claude Code 和 OpenClaw 的向量维度
- **8192 Token 长文本**: 支持更长内容的语义编码(原 512)
- **query/document 区分**: 搜索时用 query 类型,存储时用 document 类型,优化检索准确度
- **新集合**: claude-memory-v3 + openclaw_memories_v3,旧数据保留不影响
- **数据迁移**: 提供迁移脚本,重新向量化所有旧数据到新集合
- **依赖精简**: OpenClaw 插件移除 @xenova/transformers 和 sharp,仅需 @qdrant/js-client-rest

### v2.3 (2026-03-19)

**双向记忆互通 + 时间感知回忆**

- 双向跨系统搜索: Claude Code ↔ OpenClaw
- 时间感知 autoRecall: 向量+时间融合策略
- 强化记忆注入 prompt
- Plugin ID 修复

### v2.1 (2026-03-17)

**智能去重 + importance 分级**

- 自动去重存储(相似度 > 0.92 跳过)
- importance 自动分级 + 加权搜索
- 关键词搜索 + 语义模糊删除

### v1.0 (2026-03-13)

- 初始版本,基础 store/search/delete/list

## 文件说明

### Claude Code MCP Server

| 文件 | 说明 |
|------|------|
| `server_v3.py` | **当前使用** - V3 MCP Server, text-embedding-v4 |
| `server_v2_1.py` | V2.1 版本(历史备份) |
| `server_v2.py` | V2.0 版本(历史备份) |
| `server.py` | V1.0 版本(历史备份) |
| `requirements.txt` | Python 依赖 |

### OpenClaw Plugin

| 目录 | 说明 |
|------|------|
| `openclaw-plugin-v3/` | **当前使用** - V3 插件, text-embedding-v4 |
| `openclaw-plugin/` | V2 插件(历史备份) |

### 工具脚本

| 文件 | 说明 |
|------|------|
| `migrate_to_v3.py` | Claude Code 集合迁移 (claude-memory → claude-memory-v3) |
| `migrate_openclaw_v3.py` | OpenClaw 集合迁移 (openclaw_memories → openclaw_memories_v3) |
| `backfill_importance.py` | 为 v1 旧数据补充 importance 字段 |
| `compress.py` | 记忆压缩/合并工具 |
| `migrate_from_pinecone.py` | 从 Pinecone 迁移数据到 Qdrant |
| `ssh-tunnel.sh` | SSH 隧道连接 Mac Mini Qdrant |

## MCP Server 工具列表

| 工具 | 说明 |
|------|------|
| `store_memory` | 存储记忆,自动去重(相似度>0.92跳过) |
| `search_memory` | 语义搜索 + importance 加权 + 去重 |
| `keyword_search` | 关键词精确搜索(content + tags) |
| `delete_memory` | 精确删除(MD5)或语义模糊删除 |
| `list_memories` | 按分类浏览记忆 |
| `memory_stats` | 统计信息(总数、分类、重要性分布) |
| `search_openclaw_memory` | 跨系统搜索 OpenClaw 记忆集合 |

## OpenClaw Plugin 功能

### autoRecall(自动回忆注入)

每次用户发消息时自动触发:

1. **时间性请求检测** - 匹配"回忆/昨天/之前/上次/remember"等关键词
2. **普通请求** - 向量搜索 top 5 + 关键词 fallback
3. **时间性请求** - 向量+时间融合策略:
   - Vector search top 15(话题相关性)
   - Time-based fetch recent 20(时间覆盖)
   - 合并去重,近 48h 记忆 1.3x 加权
   - 注入 top 10 条记忆

### autoCapture(自动记录)

每轮对话结束自动存储,含 importance 自动分级、噪音过滤。

### 6 个工具

`memory_store` / `memory_search` / `memory_keyword_search` / `memory_stats` / `memory_forget` / `memory_search_claude`

## 配置

### Qdrant 集合

| 集合 | 维度 | 模型 | 用途 | 状态 |
|------|------|------|------|------|
| `claude-memory-v3` | 1024 | text-embedding-v4 | Claude Code V3 | **当前使用** |
| `openclaw_memories_v3` | 1024 | text-embedding-v4 | OpenClaw V3 | **当前使用** |
| `claude-memory` | 512 | bge-small-zh-v1.5 | Claude Code V2 | 历史备份 |
| `openclaw_memories` | 384 | all-MiniLM-L6-v2 | OpenClaw V2 | 历史备份 |

### importance 权重

| 分类 | importance | 权重 |
|------|-----------|------|
| project / architecture / solution / preference / summary | high | 1.3x |
| debug / general / fact / entity | medium | 1.0x |
| conversation | low | 0.7x |

## 部署

### 前置要求

- Qdrant 数据库运行在 Mac Mini (localhost:6333)
- 阿里云 DashScope API Key(用于 text-embedding-v4)

### Claude Code MCP Server

```bash
cd mcp-qdrant-memory
pip install -r requirements.txt
export DASHSCOPE_API_KEY=sk-xxx
python server_v3.py
```

在 `~/.claude.json` 中配置:

```json
{
  "mcpServers": {
    "qdrant-memory-v3": {
      "command": "python",
      "args": ["/path/to/server_v3.py"],
      "env": {
        "DASHSCOPE_API_KEY": "sk-xxx"
      }
    }
  }
}
```

### OpenClaw Plugin

将 `openclaw-plugin-v3/` 内容复制到 Mac Mini:

```bash
tar -czf - openclaw-plugin-v3 | ssh macmini "tar -xzf - -C ~/.openclaw/extensions/ && mv ~/.openclaw/extensions/openclaw-plugin-v3 ~/.openclaw/extensions/memory-qdrant-v3"
cd ~/.openclaw/extensions/memory-qdrant-v3 && npm install
```

在 `~/.openclaw/openclaw.json` 中启用:

```json
{
  "plugins": {
    "slots": {
      "memory": "openclaw-memory-qdrant-v3"
    },
    "entries": {
      "openclaw-memory-qdrant-v3": {
        "enabled": true,
        "config": {
          "qdrantUrl": "http://localhost:6333",
          "collectionName": "openclaw_memories_v3",
          "autoRecall": true,
          "autoCapture": true,
          "captureMaxChars": 5000,
          "dashscopeApiKey": "sk-xxx"
        }
      }
    }
  }
}
```

重启 gateway:

```bash
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
```

### 数据迁移

从 V2 迁移到 V3(重新向量化所有记忆):

```bash
# Claude Code 集合
export DASHSCOPE_API_KEY=sk-xxx
python migrate_to_v3.py

# OpenClaw 集合(纯 REST API,兼容 Python 3.9)
python3 migrate_openclaw_v3.py
```

迁移脚本会保留旧数据,确认无误后可手动删除旧集合。
tools

Comments

Sign in to leave a comment

Loading comments...