项目简介

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指标导出,方便用户进行系统监控和调试。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/webxos/DUNES.git
    cd DUNES
  2. 安装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
  3. 安装Node.js依赖(用于Gateway和Frontend):
    # 在DUNES根目录下
    npm install
    # 进入Node.js网关目录并安装依赖
    cd node && npm install && cd ..
  4. 配置环境变量: 在项目根目录创建或编辑 '.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..."
  5. 启动MongoDB和PostgreSQL数据库: (假设您已安装Docker,可以快速启动数据库服务)
    # 在项目根目录,如果存在 docker-compose.yml 文件,可以这样启动
    docker-compose up -d mongodb postgresql
    # 如果没有 docker-compose,请手动启动您的MongoDB和PostgreSQL服务
  6. 启动Node.js Gateway:
    cd node
    node gateway.js
    # Gateway 将在端口 3001 运行,并将所有 /api/* 请求代理到后端服务器的 8000 端口。
  7. 启动FastAPI后端服务器(MCP服务器核心):
    cd backend/app
    uvicorn main:app --host 0.0.0.0 --port 8000 --reload --ws websockets
    # '--reload' 选项用于开发环境,生产环境可移除。
    # '--ws websockets' 启用WebSocket支持,是MCP协议的重要传输方式。
  8. 启动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)。

基本使用方法

  1. 上传MAML文件: 通过向 '/api/maml/upload' 端点发送HTTP POST请求(通常带有文件表单数据)来上传您的MAML文件。MAML文件应包含YAML头信息和Markdown正文,用于定义Agent工作流或数据处理任务。
  2. 执行MAML任务: 您可以选择通过以下两种方式执行MAML任务:
    • HTTP POST: 向 '/api/maml/execute/{maml_id}' 端点发送POST请求,其中 '{maml_id}' 是MAML文件的ID。
    • WebSocket: 建立与 '/ws/maml' 的WebSocket连接,然后发送MAML内容。服务器将解析MAML并执行其中定义的代码块和Agent任务。
  3. 验证MAML结构: 在执行前,可以使用 '/api/maml/validate' 端点检查MAML文件的结构和语义是否符合规范,确保其有效性。
  4. 搜索MAML: 向 '/api/maml/search?query=您的查询' 端点发送HTTP GET请求,通过关键字搜索存储在服务器中的MAML文档。
  5. MCP Agent交互: MCP客户端可以直接通过JSON-RPC协议调用各个Agent服务的功能,例如,调用Curator Agent的 'fetch_dataset' 方法获取数据,或者调用Alchemist Agent的 'train_model' 方法启动模型训练任务。具体的方法名和参数应参考每个Agent服务的API文档。
  6. 通过前端界面交互: 如果您部署了Next.js前端,可以直接通过浏览器访问 'http://localhost:3000'(或您配置的端口),通过用户友好的界面上传MAML文件、查看系统状态、启动任务等。

信息

分类

AI与计算