项目简介
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 服务器。
-
通过 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 -
本地安装与运行(开发环境):
# 安装 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 协议与服务器进行交互,访问其核心功能:
- 读写和管理文件资源: LLM 能够通过 MCP 请求读取 Nexus 文件系统上的文件内容(如数据文件、代码库),或将生成的数据、报告等写入指定路径。
- 调用自定义工具/命令: LLM 可以调用 Nexus 中定义的各种自定义命令(例如 'semantic-search'、'llm-read'),这些命令在服务器端执行,利用 Nexus 的高级功能(如语义搜索、LLM 增强的文档读取等),并将结果返回给 LLM。例如,LLM 可以通过 MCP 发送一个请求来执行一个 'analyze-codebase' 的自定义命令。
- 存储和检索代理记忆: LLM 可以通过 MCP 接口存储重要的上下文信息、学习到的知识或偏好作为代理记忆,并在需要时进行检索,实现知识的持久化和自进化。
通过这些功能,Nexus 作为一个 MCP 服务器,为 LLM 应用提供了强大的上下文感知和工具调用能力,极大地扩展了 LLM 的应用范围和智能程度。
信息
分类
AI与计算