项目简介

ENGRAM (Extended Neural Graph for Recall and Memory) 是一款功能强大的MCP服务器,专为提升AI系统和大型语言模型(LLM)的记忆和上下文管理能力而设计。它通过实现神经网络和时间感知的方法,提供了短期记忆、长期记忆、语义搜索、记忆冲突解决及智能洞察生成等核心功能,旨在作为AI系统的认知骨干。ENGRAM通过标准化的MCP协议与LLM客户端通信,提供安全、可扩展的上下文服务。

主要功能点

  • 上下文记忆管理: 跨会话存储、检索和管理对话上下文。
  • 语义搜索: 基于向量的搜索,快速找到相关历史上下文。
  • 时间理解: 追踪并关联跨时间的信息。
  • 记忆冲突解决: 自动检测并解决记忆中的冲突信息。
  • 洞察生成: 处理现有记忆以提取模式和可操作的洞察。
  • 多租户支持: 为不同用户或应用程序提供隔离的记忆空间。
  • OAuth集成: 提供安全的身份验证和授权。
  • 分析仪表板: 监控记忆使用情况、模式和系统健康状况(未来功能)。

安装步骤

ENGRAM服务器基于Node.js和TypeScript构建,并利用Docker Compose管理其基础设施依赖(PostgreSQL、Redis、Qdrant)。

  1. 克隆仓库:
    git clone https://github.com/osirison/engram.git
    cd engram
  2. 安装依赖: 确保您已安装Node.js 20+、Docker、Docker Compose和pnpm 8+。
    pnpm install
  3. 配置环境变量: 复制示例配置文件,并根据需要编辑。
    cp .env.example .env
    # 可根据您的需求修改 .env 文件中的数据库凭据等
  4. 启动基础设施服务: 这将启动PostgreSQL数据库、Redis缓存和Qdrant向量数据库。
    pnpm docker:up
    请等待所有服务状态显示为"healthy"(可通过 'pnpm docker:ps' 查看)。
  5. 运行数据库迁移: 在服务就绪后,应用数据库迁移。
    pnpm db:migrate
  6. 启动开发服务器:
    pnpm dev
    服务器默认监听 'http://localhost:3000' 端口。

服务器配置(供MCP客户端使用)

一旦ENGRAM服务器运行起来,您可以将其配置到任何兼容MCP协议的客户端中,例如Claude Desktop。以下是示例配置信息:

{
  "name": "ENGRAM",
  "command": [
    "pnpm",
    "exec",
    "node",
    "apps/mcp-server/dist/main.js"
  ],
  "args": [],
  "env": {
    "NODE_ENV": "production",
    "PORT": "3000",
    "DATABASE_URL": "postgresql://engram:dev_password@localhost:5432/engram",
    "REDIS_URL": "redis://localhost:6379",
    "QDRANT_URL": "http://localhost:6333",
    "JWT_SECRET": "your-secret-key-change-in-production-min-32-chars"
  },
  "debug": false,
  "cwd": "/path/to/your/engram/repo"
}
  • name: MCP服务器的友好名称,客户端会显示此名称。
  • command: 启动ENGRAM服务器的命令。这里使用了pnpm和Node.js来运行编译后的主文件。
  • args: 传递给启动命令的额外参数,目前为空。
  • env: 运行服务器所需的环境变量。请根据您的实际部署环境更新这些值,特别是:
    • 'NODE_ENV': 运行环境模式('development', 'production', 'test')。
    • 'PORT': 服务器监听的端口。
    • 'DATABASE_URL': PostgreSQL数据库的连接字符串。
    • 'REDIS_URL': Redis缓存的连接字符串。
    • 'QDRANT_URL': Qdrant向量数据库的连接字符串。
    • 'JWT_SECRET': 用于JWT的密钥,在生产环境必须更改为复杂且保密的值。
  • debug: 是否启用调试模式。
  • cwd: ENGRAM仓库的根目录路径。请务必将其替换为您的实际路径。

基本使用方法

配置完成后,重启您的MCP客户端(如Claude Desktop)。您可以尝试以下操作来测试连接和功能:

  1. 测试连接: 向您的LLM客户端提问:“你能调用ping工具测试ENGRAM的连接吗?”
    • 服务器应返回一个包含 '{"status": "pong", "timestamp": "..."}' 的响应,表明连接成功。
  2. 查询可用工具: 向LLM客户端提问:“ENGRAM提供了哪些MCP工具?”
    • 服务器应返回一个包含可用工具列表的响应,目前至少包括 'ping' 工具。

ENGRAM将进一步扩展其工具集,以支持更高级的记忆管理和上下文检索功能。

信息

分类

AI与计算