• 项目简介: Codex Memory 是一个高性能的 Rust 文本记忆存储服务,专为可靠的内容管理设计。它提供了内容去重、文件自动分块、标签组织以及强大的三阶段渐进式搜索功能。作为 MCP (Model Context Protocol) 服务器,Codex Memory 可以与 Claude Desktop 等 LLM 客户端无缝集成,提供上下文信息和外部工具调用能力,支持构建智能伴侣应用,如 Codex-Dreams。
  • 主要功能点:
    • 可靠文本存储: 基于 PostgreSQL 的 ACID 兼容存储,确保数据可靠。
    • 内容去重: 采用 SHA-256 哈希自动去重,节省存储空间。
    • 智能文件分块: 自动对大文件进行分块,并可配置重叠,保持语义连贯性。
    • 标签组织: 灵活的标签系统,方便内容分类和检索。
    • 父子关系维护: 自动维护分块与原始文档之间的关系。
    • MCP 集成: 原生支持 Model Context Protocol,可与 Claude Desktop 等 LLM 客户端集成。
    • 渐进式搜索: 智能三阶段搜索系统,自动调整阈值,无需手动调优即可找到相关结果。
    • 性能优化: 采用连接池、异步架构、索引优化等技术,确保高并发和低延迟。
  • 安装步骤:
    1. 克隆仓库:
      git clone https://github.com/Ladvien/codex.git
      cd codex
    2. 设置环境变量: 复制示例环境变量文件并根据您的 PostgreSQL 数据库信息进行修改。
      cp .env.example .env
      # 编辑 .env 文件,设置 DATABASE_URL,例如:
      # DATABASE_URL=postgresql://codex_user:codex_pass@localhost:5432/codex_db
    3. 安装项目: 使用 Cargo 安装项目,'--force' 参数用于覆盖之前可能存在的版本。
      cargo install --path . --force
    4. 初始化数据库: 运行 'setup' 命令创建数据库、用户和必要的表结构。
      codex-memory setup
  • MCP 服务器配置: MCP 服务器通过标准输入/输出(StdIO)与客户端通信,您需要在 MCP 客户端(如 Claude Desktop)中配置其启动命令。
    {
      "mcpServers": {
        "codex-memory": {
          "command": "/path/to/your/codex-memory", 
          "args": ["mcp"], 
          "env": {
            "DATABASE_URL": "postgresql://codex_user:codex_pass@localhost:5432/codex_db"
          }
        }
      }
    }
    • 'codex-memory': 服务器的名称,可自定义。
    • 'command': 'codex-memory' 可执行文件的绝对路径。在您完成 'cargo install' 后,通常位于 '~/.cargo/bin/codex-memory'。
    • 'args': 启动 MCP 服务器模式所需的参数,固定为 '["mcp"]'。
    • 'env': 环境变量配置。'DATABASE_URL' 必须指定为您的 PostgreSQL 数据库连接字符串,确保服务器能连接到正确的数据库。
  • 基本使用方法: 安装并配置 MCP 服务器后,您可以通过 LLM 客户端(如 Claude Desktop)调用其提供的工具,例如:
    • 存储记忆 ('store_memory'): 将文本内容、上下文、摘要和标签存储到记忆库中。
      • 参数: 'content', 'context', 'summary', 'tags'
    • 搜索记忆 ('search_memory'): 根据查询文本、标签过滤、相似度阈值等参数搜索相关记忆。支持渐进式搜索策略。
      • 参数: 'query', 'tag_filter', 'similarity_threshold', 'max_results', 'search_strategy', 'boost_recent', 'tag_weight', 'content_weight'
    • 获取记忆 ('get_memory'): 通过 ID 检索特定记忆。
      • 参数: 'id' (UUID)
    • 删除记忆 ('delete_memory'): 通过 ID 删除特定记忆。
      • 参数: 'id' (UUID)
    • 获取统计 ('get_statistics'): 获取记忆存储的总体统计信息。
      • 参数: 无
    • 存储文件 ('store_file'): 读取本地文件,进行语义分块后存储。
      • 参数: 'file_path', 'chunk_size', 'overlap', 'chunking_strategy', 'tags'

信息

分类

AI与计算