AI代理长期记忆存储

MCP LangGraph Memory Store是一个与供应商无关的AI代理长期记忆层,提供文件系统接口,支持多种后端存储(Redis、PostgreSQL、MongoDB),允许不同AI工具共享记忆数据。

  • by dvalle08
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 dvalle08/mcp-langgraph-store-file-system

使用说明

MCP LangGraph 内存存储

一种与供应商无关的长期记忆层,用于人工智能代理。

这存在两个原因:

  • 文件系统是深度智能体中的核心功能,因此这台服务器提供了一个受(某种理念或技术)启发的简单内存文件系统 深度智能体。
  • 在您的自有基础设施中存储记忆,以便任何代理(如Cursor、Claude Code、ChatGPT等)都能共享这些记忆。

建立在LangGraph存储之上

文档: LangGraph 存储 - 长期记忆

特点/功能

  • 您选择的后端Redis、PostgreSQL 或 MongoDB
  • 文件系统接口像文件一样读取、写入和组织记忆
  • 跨工具记忆在不同的AI代理之间共享相同的记忆
  • 完全控制你的数据,你的基础设施,你的规则

快速入门

1. 安装依赖项

uv sync

2. 配置环境

cp env.example .env
# Edit .env - choose your backend (redis/postgresql/mongodb)

3. 启动你的后端

Redis(注:Redis是一个开源的、基于内存的数据结构存储系统,通常用作数据库、缓存和消息中间件)

docker run -d -p 6379:6379 redis:latest

PostgreSQL:

docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:latest

MongoDB(注:这是一个专有名词,直接翻译为“Mongo数据库”或保持原名不译,根据上下文决定)

docker run -d -p 27017:27017 mongo:latest

4. 启动服务器

对于AI客户端(stdio):

uv run src/server.py

对于HTTP访问:

# Set TRANSPORT=streamable-http in .env
uv run src/server.py

配置

编辑 .env:

# Backend: Choose your storage
BACKEND=redis  # redis, postgresql, or mongodb

# Redis Configuration
REDIS_HOST=your-redis-host
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0

# PostgreSQL Configuration
POSTGRES_HOST=your-postgres-host
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DATABASE=langgraph_store

# MongoDB Configuration
MONGODB_URI=mongodb://your-mongodb-host:27017
MONGODB_DATABASE=langgraph_store
MONGODB_COLLECTION=memory_store

# Transport: 'stdio' for AI clients, 'streamable-http' for HTTP
TRANSPORT=stdio

# Optional: Configuration directory (default: files)
CONFIG_DIR=files

内存配置

内存配置在JSON文件中定义 files/ 目录。每个JSON文件代表一个记忆类别,文件名(不含.json扩展名)即为该类别的名称。

设置:

  1. 这个(或“它”) files/ 目录包含您的内存配置
  2. 每个 .json 文件定义了一个类别(例如。, memories.json → 类别“回忆”)
  3. 在每个JSON文件中,定义单独的文件:
{
  "files": [
    {
      "file_name": "programming-style",
      "file_description": "User's programming patterns and preferences",
      "read_trigger": "When programming or working on code",
      "write_trigger": "When first tracking programming patterns",
      "update_trigger": "When errors are corrected or new patterns emerge"
    }
  ]
}

结构:

files/
  memories.json              # Category: "memories"
  programming-style.json     # Category: "programming-style"
  custom-category.json       # Category: "custom-category"
  *.json.example             # Example files (ignored by system)

配置字段:

  • file_name内存文件标识符
  • file_description这段记忆存储了什么
  • read_trigger当人工智能应该读取这段记忆时
  • write_trigger当人工智能应该创建这个记忆时
  • update_trigger当AI应该更新这个记忆时

注: 修改配置文件后,必须重启服务器。

AI客户端集成

Cursor 集成开发环境(IDE)

配置(JSON):

{
  "mcpServers": {
    "memory-store": {
      "command": "uv",
      "args": ["run", "src/server.py"],
      "cwd": "/absolute/path/to/mcp-langgraph-store-file-system",
      "env": {
        "REDIS_HOST": "your-redis-host",
        "REDIS_PORT": "6379",
        "REDIS_PASSWORD": "",
        "REDIS_DB": "0"
      }
    }
  }
}

Claude Desktop(可译为“克劳德桌面版”或根据具体语境简化为“克劳德桌面”)

配置(JSON):

{
  "mcpServers": {
    "memory-store": {
      "command": "uv",
      "args": ["run", "src/server.py"],
      "cwd": "/absolute/path/to/mcp-langgraph-store-file-system",
      "env": {
        "REDIS_HOST": "your-redis-host",
        "REDIS_PORT": "6379",
        "REDIS_PASSWORD": "",
        "REDIS_DB": "0"
      }
    }
  }
}

可用工具

ls(memory_category="") - 列出类别/记忆

  • 空的内存类别:列出所有内存类别
  • 带有 memory_category:列出该类别的记忆

read_file(memory_category, file_name) - 读取内存

  • 返回内存的内容和元数据

write_file(memory_category, file_name, content) - 创建/更新内存

  • 创建或覆盖内存

edit_file(memory_category, file_name, content) - 更新现有内存

  • 更新现有内存(如果不存在则失败)

运输方式

stdio(默认)

对于像Claude Desktop和Cursor这样的AI客户端,服务器通过标准输入/输出进行通信。

streamable-http 可以翻译为“可流式传输的HTTP”或“支持流式传输的HTTP”,具体取决于上下文和语境,但核心意思是描述一种能够以流式方式传输数据的HTTP技术或协议

对于HTTP访问。设置 TRANSPORT=streamable-http 在 .env 并访问于 http://your-host:8000。

项目结构

src/
├── core/              # Foundational infrastructure
│   ├── settings.py    # Environment configuration
│   ├── logger.py      # Logging
│   └── file_config.py # Memory configuration
├── database/          # Data access layer
│   ├── redis_langgraph_client.py
│   ├── postgresql_langgraph_client.py
│   ├── mongodb_langgraph_client.py
│   └── store_factory.py
├── services/          # Business logic
│   └── file_store.py  # Memory operations
└── server.py          # MCP server

许可证

Apache许可证2.0