项目简介
DUNES (Distributed Unified Network Exchange System) 是WebXOS推出的一个先进的Model Context Protocol (MCP) 服务器框架。它以MAML (Markdown as Medium Language) 协议为核心,旨在为大型语言模型 (LLM) 客户端提供标准化、安全、可扩展的上下文信息和功能。DUNES服务器集成了量子计算、AI编排、高级加密技术和多模态数据处理能力,构建了一个面向未来、智能化的LLM应用后端服务。
主要功能点
- MAML协议处理: 核心功能是解析、验证和执行MAML文件。MAML文件作为结构化的数据容器,不仅定义了工作流、数据集和Agent蓝图,还支持动态代码块执行、语义标记和数据类型。
- Agent生态系统: 包含多个专业Agent服务,如数据策展Agent (Curator)、任务执行Agent (Alchemist)、安全Agent (Sentinel) 和知识库Agent (Librarian) 等。这些Agent通过MCP协议协同工作,共同完成复杂的任务。
- AI编排与量子计算: 集成了CrewAI、Claude-Flow和OpenAI Swarm等AI编排框架,支持复杂的Agent工作流。同时,利用Qiskit和CUDA加速的PyTorch实现量子增强计算和量子安全加密。
- 数据与资源管理: 通过FastAPI端点和WebSocket连接,提供对MAML文件、多种数据库(如MongoDB、PostgreSQL)和外部API(如NASA)的访问和管理,支持数据的验证、转换和路由。
- 安全与监控: 实现了量子抗性加密(CRYSTALS-Dilithium)、OAuth2.0认证、沙盒执行环境、语义防火墙和全面的日志审计,确保系统和数据的安全性。
- 可视化与反馈: 支持Markdown到Markup的3D转换可视化、实时仪表盘和Prometheus指标导出,方便用户进行系统监控和调试。
安装步骤
- 克隆仓库:
git clone https://github.com/webxos/DUNES.git cd DUNES - 安装Python依赖: 推荐使用Python 3.11+版本。首先安装 'setuptools' 并通过 'setup.py' 安装项目依赖。
pip install setuptools pip install -e . # 如果遇到问题,可以尝试手动安装 setup.py 中列出的主要依赖: pip install fastapi uvicorn pydantic sqlalchemy torch qiskit httpx tenacity pymongo redis click cryptography prometheus-client pyyaml # 针对 amoeba 模块的依赖安装: pip install ./amoeba - 安装Node.js依赖(用于Gateway和Frontend):
# 在DUNES根目录下 npm install # 进入Node.js网关目录并安装依赖 cd node && npm install && cd .. - 配置环境变量:
在项目根目录创建或编辑 '.env' 文件,填入必要的配置信息。
MONGODB_URI="mongodb://localhost:27017/" DATABASE_URL="postgresql://user:password@localhost:5432/annot8" # 替换为您的PostgreSQL连接字符串 AES_KEY="your_256_bit_aes_key" # 替换为随机生成的AES密钥 JWT_SECRET_KEY="your_jwt_secret_key" # 替换为JWT密钥 # 根据需要添加其他API密钥,例如: # OPENAI_API_KEY="sk-..." # LOGFIRE_API_KEY="lf-..." # DROPBOX_ACCESS_TOKEN="sl.B..." - 启动MongoDB和PostgreSQL数据库: (假设您已安装Docker,可以快速启动数据库服务)
# 在项目根目录,如果存在 docker-compose.yml 文件,可以这样启动 docker-compose up -d mongodb postgresql # 如果没有 docker-compose,请手动启动您的MongoDB和PostgreSQL服务 - 启动Node.js Gateway:
cd node node gateway.js # Gateway 将在端口 3001 运行,并将所有 /api/* 请求代理到后端服务器的 8000 端口。 - 启动FastAPI后端服务器(MCP服务器核心):
cd backend/app uvicorn main:app --host 0.0.0.0 --port 8000 --reload --ws websockets # '--reload' 选项用于开发环境,生产环境可移除。 # '--ws websockets' 启用WebSocket支持,是MCP协议的重要传输方式。 - 启动Next.js Frontend (可选):
# 在DUNES根目录下 npm run dev # 前端通常会在端口 3000 运行。
MCP服务器配置(JSON格式,供MCP客户端使用)
MCP客户端需要配置服务器信息才能与之建立连接。以下是DUNES MCP服务器的示例配置,您可以根据实际部署的 'command' 和 'args' 修改。
{ "server name": "DUNES_MAML_Gateway", "command": "uvicorn", "args": [ "backend.app.main:app", "--host", "0.0.0.0", "--port", "8000", "--ws", "websockets" ], "description": "连接到DUNES MCP服务器,该服务器通过FastAPI提供MAML协议处理、AI编排和量子计算服务。支持WebSocket传输协议。", "transport": "WebSocket", "features": { "resources": [ "MAML文件(托管与检索)", "MongoDB数据(存储与查询)", "PostgreSQL数据(存储与查询)", "NASA API(外部数据访问)", "文件系统(文件操作)" ], "tools": [ "MAML执行与管理(execute, create, validate, search)", "Agent工作流编排(Alchemist Manager)", "模型训练与验证(Alchemist Server, Validator Server)", "数据策展与转换(Curator Server)", "安全验证与审计(Sentinel Server)", "系统健康与日志监控(Mechanic Server, Logfire Monitoring)", "量子电路优化与任务调度", "用户钱包与激励机制(Chancellor Server)", "知识库查询(Librarian Server)", "LLM评估(ArizePhoenix Server)" ], "prompts": [ "自定义MAML工作流模板", "Agent蓝图定义", "数据查询与分析模板" ] }, "authentication": { "type": "JWT", "token_url": "/token" } }
- 'server name': MCP服务器的名称,用于客户端识别。
- 'command': 启动MCP服务器的主命令。在这里是 'uvicorn'。
- 'args': 传递给 'command' 的参数列表。
- 'backend.app.main:app': 指定FastAPI应用程序的入口点。
- '--host 0.0.0.0': 服务器监听所有网络接口。
- '--port 8000': 服务器监听的端口。
- '--ws websockets': 启用WebSocket支持作为传输协议。
- 'description': 服务器功能和用途的简要说明。
- 'transport': 支持的传输协议,这里是 'WebSocket'。
- 'features': 服务器提供的核心功能列表,包括:
- 'resources': 服务器托管和管理的上下文信息和外部服务。
- 'tools': LLM客户端可以通过JSON-RPC调用执行的功能或操作。
- 'prompts': 支持可定制的LLM交互模式或工作流定义。
- 'authentication': 服务器的认证方式,这里是JWT(JSON Web Token)。
基本使用方法
- 上传MAML文件: 通过向 '/api/maml/upload' 端点发送HTTP POST请求(通常带有文件表单数据)来上传您的MAML文件。MAML文件应包含YAML头信息和Markdown正文,用于定义Agent工作流或数据处理任务。
- 执行MAML任务:
您可以选择通过以下两种方式执行MAML任务:
- HTTP POST: 向 '/api/maml/execute/{maml_id}' 端点发送POST请求,其中 '{maml_id}' 是MAML文件的ID。
- WebSocket: 建立与 '/ws/maml' 的WebSocket连接,然后发送MAML内容。服务器将解析MAML并执行其中定义的代码块和Agent任务。
- 验证MAML结构: 在执行前,可以使用 '/api/maml/validate' 端点检查MAML文件的结构和语义是否符合规范,确保其有效性。
- 搜索MAML: 向 '/api/maml/search?query=您的查询' 端点发送HTTP GET请求,通过关键字搜索存储在服务器中的MAML文档。
- MCP Agent交互: MCP客户端可以直接通过JSON-RPC协议调用各个Agent服务的功能,例如,调用Curator Agent的 'fetch_dataset' 方法获取数据,或者调用Alchemist Agent的 'train_model' 方法启动模型训练任务。具体的方法名和参数应参考每个Agent服务的API文档。
- 通过前端界面交互: 如果您部署了Next.js前端,可以直接通过浏览器访问 'http://localhost:3000'(或您配置的端口),通过用户友好的界面上传MAML文件、查看系统状态、启动任务等。
信息
分类
AI与计算