项目简介

Nexus 提供了一个全面的 AI 代理基础设施,结合了分布式统一文件系统、自进化代理记忆、智能文档处理和多模式部署。其核心亮点之一是原生支持 Model Context Protocol (MCP),允许 LLM 客户端以标准化方式访问和利用这些功能。

主要功能点

  • 统一资源管理: Nexus 提供一个分布式统一文件系统,支持多后端(如 S3、Google Drive、本地文件系统),并实现“一切皆文件”的范式,将配置、记忆、任务和命令都作为文件进行管理。
  • 智能代理记忆: 具备自进化的代理记忆系统,支持记忆版本控制、知识随时间演进的追踪以及多代理间共享记忆空间。
  • 内容处理能力: 强大的文档解析能力,支持多种格式(PDF、Excel、CSV、JSON、图像),智能文档切块,并集成了 LLM KV 缓存管理机制,显著降低 AI 查询成本。
  • 可调用工具与Prompt: 允许开发者通过 Markdown 文件定义自定义命令(可作为 LLM 调用的工具),这些命令支持参数化 Prompt 模板渲染,实现了高度可定制的 LLM 交互模式。
  • MCP 服务器集成: 作为原生的 Model Context Protocol (MCP) 服务器实现,提供标准化的 JSON-RPC 接口,供 LLM 客户端获取上下文信息、调用外部功能(工具)和管理会话。

安装步骤

Nexus 支持多种部署模式,这里以推荐的服务器模式(Monolithic)为例,让您能快速启动一个运行中的 MCP 服务器。

  1. 通过 Docker 快速部署(推荐): 确保您的系统已安装 Docker 和 Docker Compose。

    # 使用 Docker 容器启动单体服务器
    # 这将启动一个 Nexus 服务器,并将其数据目录映射到您本地的 './nexus-data' 文件夹。
    # 服务器将监听 8080 端口。
    docker run -d -p 8080:8080 \
      -v ./nexus-data:/data \
      -e NEXUS_MODE=monolithic \
      nexus/nexus:latest server

    或者使用 'docker-compose': 首先,在您的项目根目录创建一个名为 'docker-compose.yaml' 的文件,内容如下:

    version: '3.8'
    services:
      nexus:
        image: nexus/nexus:latest
        command: server
        ports:
          - "8080:8080"
        volumes:
          - ./nexus-data:/data
        environment:
          - NEXUS_MODE=monolithic
          # 您可以在此处添加其他配置,例如数据库URL、API Key等
          # - NEXUS_DATABASE_URL=postgresql://user:pass@host/nexus

    然后,在包含 'docker-compose.yaml' 文件的目录中运行:

    # 以后台模式启动 Nexus 服务器
    docker-compose up -d
  2. 本地安装与运行(开发环境):

    # 安装 uv (如果尚未安装)
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # 克隆 Nexus 仓库
    git clone https://github.com/nexi-lab/nexus.git
    cd nexus
    
    # 创建 Python 虚拟环境并安装开发依赖
    uv venv
    source .venv/bin/activate  # Windows 用户使用: .venv\Scripts\activate
    uv pip install -e ".[dev]"
    
    # 启动服务器 (默认启动 embedded 模式,如需 monolithic 模式,请创建 config.yaml 并指定)
    # 示例: 创建 config.yaml 并指定 monolithic 模式
    # # config.yaml
    # # mode: monolithic
    # # database: {url: sqlite:///./nexus.db} # 使用 SQLite 进行快速测试
    # # cache: {type: memory}
    # nexus server --config config.yaml

MCP 服务器配置

MCP 客户端需要配置服务器的连接信息才能与 Nexus MCP 服务器建立通信。以下是一个 JSON 格式的示例配置,展示了如何连接一个通过 Docker 启动的 Nexus Monolithic 服务器。

{
  "name": "Nexus MCP Server",
  "description": "连接到 Nexus AI 代理基础设施平台的 MCP 服务,提供文件、记忆和工具访问。",
  "command": "docker",
  "args": [
    "run",
    "--rm",
    "-p", "8080:8080",
    "-v", "${workspaceFolder}/nexus-data:/data",
    "-e", "NEXUS_MODE=monolithic",
    "nexus/nexus:latest",
    "server"
  ],
  "note": "此配置假定您已安装 Docker,并将 Nexus 服务器以 Monolithic 模式启动在主机的 8080 端口。${workspaceFolder} 是一个占位符,通常代表客户端工作区目录,用于挂载数据卷以实现数据持久化。根据实际部署环境和需求,您可能需要调整 'command' 和 'args'。",
  "api_endpoint": "http://localhost:8080/mcp",
  "auth": {
    "type": "api_key",
    "key_name": "X-API-Key",
    "value_source": "env",
    "env_var_name": "NEXUS_API_KEY"
  }
}

参数注释:

  • 'name': 服务器的显示名称,方便用户识别。
  • 'description': 服务器功能的简要描述,让用户了解其用途。
  • 'command': 启动 Nexus MCP 服务器所使用的命令行程序。在此示例中,为 'docker'。
  • 'args': 'command' 命令的参数列表。此示例包含了 Docker 运行 Nexus 单体服务器所需的参数。
    • '-p 8080:8080': 将 Docker 容器内部的 8080 端口映射到主机系统的 8080 端口,以便外部访问。
    • '-v ${workspaceFolder}/nexus-data:/data': 将客户端本地工作区目录下的 'nexus-data' 文件夹挂载到 Docker 容器的 '/data' 路径,用于数据持久化。
    • '-e NEXUS_MODE=monolithic': 设置 Nexus 服务器的运行模式为单体(Monolithic),这是推荐的服务器模式。
    • 'nexus/nexus:latest server': 指定要运行的 Docker 镜像及其启动命令('server')。
  • 'note': 针对此配置的额外说明,提醒用户注意环境依赖、部署模式和参数的灵活性。
  • 'api_endpoint': Nexus MCP 服务器的 API 访问地址。请注意,虽然 README 未明确指定 '/mcp' 路径,但 MCP 服务通常会有一个特定的 RPC 路由,此为常用示例路径,实际路径请查阅 Nexus 的最新 API 文档进行确认。
  • 'auth': 认证信息配置。Nexus 支持 API Key 认证。
    • 'type': 认证类型,例如 'api_key'。
    • 'key_name': HTTP 请求头中 API Key 的名称,例如 'X-API-Key'。
    • 'value_source': API Key 值的来源,例如从环境变量 ('env') 获取。
    • 'env_var_name': 存储 API Key 值的环境变量名称,例如 'NEXUS_API_KEY'。

基本使用方法

一旦 Nexus MCP 服务器成功运行并配置到您的 LLM 客户端,LLM 即可通过 MCP 协议与服务器进行交互,访问其核心功能:

  1. 读写和管理文件资源: LLM 能够通过 MCP 请求读取 Nexus 文件系统上的文件内容(如数据文件、代码库),或将生成的数据、报告等写入指定路径。
  2. 调用自定义工具/命令: LLM 可以调用 Nexus 中定义的各种自定义命令(例如 'semantic-search'、'llm-read'),这些命令在服务器端执行,利用 Nexus 的高级功能(如语义搜索、LLM 增强的文档读取等),并将结果返回给 LLM。例如,LLM 可以通过 MCP 发送一个请求来执行一个 'analyze-codebase' 的自定义命令。
  3. 存储和检索代理记忆: LLM 可以通过 MCP 接口存储重要的上下文信息、学习到的知识或偏好作为代理记忆,并在需要时进行检索,实现知识的持久化和自进化。

通过这些功能,Nexus 作为一个 MCP 服务器,为 LLM 应用提供了强大的上下文感知和工具调用能力,极大地扩展了 LLM 的应用范围和智能程度。

信息

分类

AI与计算