项目简介

AutoMem是一个强大的图向量记忆服务,旨在为AI助手提供类似于人类的长期记忆能力。它结合了知识图谱和向量数据库的优势,能够存储具有丰富元数据、重要性评分和时间上下文的记忆,并通过混合搜索(向量相似度、关键词、标签、时间)进行高效召回,并自动构建知识图谱、学习模式。

此仓库包含一个使用Node.js实现的MCP SSE服务器,作为AutoMem核心服务(一个Python Flask应用)与LLM客户端之间的桥梁,使得大语言模型能够通过标准MCP协议访问AutoMem的记忆能力。

主要功能点

  • 记忆存储 (store_memory): 将新的上下文信息、决策、模式等作为记忆存储到AutoMem核心服务中。
  • 记忆召回 (recall_memory): 根据查询内容(文本、嵌入向量)、时间范围或标签,从AutoMem核心服务中检索相关记忆。支持混合语义搜索和关键词搜索。
  • 记忆关联 (associate_memories): 在AutoMem核心服务中的记忆之间创建特定类型的关系,如“导致”、“偏好于”、“发生于之前”等,以构建丰富的知识图谱。
  • 记忆更新 (update_memory): 修改AutoMem核心服务中现有记忆的内容、标签、元数据或重要性。
  • 记忆删除 (delete_memory): 从AutoMem核心服务中移除不再需要的记忆。
  • 数据库健康检查 (check_database_health): 查询AutoMem核心服务的运行状态和数据存储情况。

安装步骤

在配置和启动AutoMem MCP SSE服务器之前,您需要先部署AutoMem核心服务。

  1. 克隆仓库:

    git clone https://github.com/verygoodplugins/automem.git
    cd automem
  2. 部署 AutoMem 核心服务 (推荐二选一):

    • Option 1: 使用 Railway (云部署) 这是推荐的部署方式,可以在60秒内将AutoMem核心服务及其依赖(FalkorDB, Qdrant)部署到云端。

      npm i -g @railway/cli
      railway login
      railway init
      railway up

      部署完成后,您将获得一个可公开访问的AutoMem核心服务URL和一个API认证令牌。请记下这些信息,稍后配置MCP SSE服务器时会用到。

    • Option 2: 本地使用 Docker Compose 在本地启动AutoMem核心服务及其依赖(FalkorDB, Qdrant)。

      make dev

      这将启动所有服务。AutoMem核心服务的API地址通常为 'http://localhost:8001'。

  3. 配置和启动 MCP SSE 服务器:

    • 进入MCP SSE服务器目录:
      cd mcp-sse-server
    • 安装 Node.js 依赖:
      npm install
    • 配置环境变量: MCP SSE服务器需要知道AutoMem核心服务的地址和认证信息。创建一个名为 '.env' 的文件在 'mcp-sse-server' 目录下,并填写以下内容。请务必替换为您的实际值。
      # AutoMem核心服务的HTTP端点。例如:http://localhost:8001 或 Railway部署的URL。
      AUTOMEM_ENDPOINT="http://127.0.0.1:8001" 
      
      # AutoMem核心服务的API认证令牌。这是访问AutoMem核心服务所必需的。
      # 例如:AUTOMEM_API_TOKEN="your_automem_api_token"。
      AUTOMEM_API_TOKEN="your_automem_api_token" 
      
      # MCP SSE服务器将监听的端口。默认通常为8080。
      PORT=8080 
    • 启动 MCP SSE 服务器:
      node server.js
      服务器将默认在 'http://localhost:8080' 上运行。如果需要更改端口,请修改 '.env' 文件中的 'PORT' 变量。

MCP客户端配置 (JSON格式)

为了让LLM客户端能够连接并使用AutoMem MCP SSE服务器,您需要在LLM客户端中进行如下配置。请根据您的实际部署情况替换 'command' 路径、'AUTOMEM_ENDPOINT'、'AUTOMEM_API_TOKEN' 和 'http_endpoint'。

{
  "server_name": "AutoMem MCP Server",
  "command": "node",
  "args": [
    "/path/to/your/automem/mcp-sse-server/server.js"
  ],
  "env": {
    "AUTOMEM_ENDPOINT": "http://127.0.0.1:8001",
    "AUTOMEM_API_TOKEN": "YOUR_AUTOMEM_API_TOKEN",
    "PORT": "8080"
  },
  "http_endpoint": "http://127.0.0.1:8080/mcp/sse",
  "description": "通过MCP SSE协议与AutoMem记忆服务通信,提供记忆存储、召回、关联等工具。"
}

配置参数注释:

  • 'server_name': 在MCP客户端界面中显示的服务器名称,便于识别。
  • 'command': 用于启动MCP SSE服务器进程的命令。此处为 'node'。
  • 'args': 传递给 'command' 的参数列表。这里是 'mcp-sse-server/server.js' 脚本的绝对路径。请确保路径与您的实际部署一致。
  • 'env': 环境变量,用于配置MCP SSE服务器在启动时连接到AutoMem核心服务和监听端口。
    • 'AUTOMEM_ENDPOINT': AutoMem核心服务的HTTP地址。如果AutoMem核心服务部署在本地,通常为 'http://127.0.0.1:8001'。如果是云端部署,则是对应的URL。
    • 'AUTOMEM_API_TOKEN': AutoMem核心服务所需的API认证令牌。
    • 'PORT': MCP SSE服务器将监听的端口。确保该端口在防火墙中开放。
  • 'http_endpoint': MCP客户端连接到MCP SSE服务器的入口URL。格式为 'http://<服务器IP或域名>:<端口>/mcp/sse'。
  • 'description': 对该MCP服务器功能的简要描述,帮助LLM客户端用户理解其用途。

基本使用方法

一旦MCP客户端成功配置并与AutoMem MCP SSE服务器建立连接,大语言模型就可以通过MCP协议与AutoMem进行交互。LLM将根据服务器声明的工具定义(例如 'store_memory'、'recall_memory')自动生成调用这些工具的指令。用户可以通过与LLM的对话,间接利用AutoMem的强大记忆能力。

信息

分类

AI与计算