本项目是一个为 VCP (Variable & Command Protocol) 生态系统设计的独立服务器节点。它允许您通过在不同的机器上运行插件,来扩展您的主 VCP 服务器的能力和算力。
VCP 分布式服务器节点会连接到一台主 VCP 服务器,并注册其本地的插件。主服务器随后便能透明地将工具执行请求委派给此节点。这套机制非常适合以下场景:
- 重型计算任务: 将 GPU 或 CPU 密集型任务(如视频生成、大规模数据处理)卸载到专用的高性能机器上。
- 访问特定资源: 运行需要访问特定硬件或网络资源的插件(例如,内网的文件服务器、特殊的硬件设备)。
- 可扩展性: 创建一个由多个节点组成的网络,以分散工作负载,增强整个 VCP 系统的容量。
- 初始化: 服务器启动,加载其
Plugin目录下的所有有效本地插件。 - 连接: 使用
config.env中指定的 URL 和密钥,与主 VCP 服务器建立 WebSocket 连接。 - 注册: 连接成功后,它会将其可用的插件清单发送给主服务器。主服务器会将这些插件注册为“云端插件”。
- 执行: 监听来自主服务器的
execute_tool命令。当收到请求时,它会使用提供的参数执行相应的本地插件。 - 返回结果: 执行完毕后,通过 WebSocket 连接将结果(或错误信息)发回给主服务器。
- 自动重连: 如果与主服务器的连接断开,它将采用指数退避策略自动尝试重新连接。
- Node.js (推荐 v16 或更高版本)
- 一个正在运行的主 VCP 服务器实例。
-
安装依赖:
npm install
-
配置节点:
- 通过复制
config.env.example(如果提供) 或手动创建一个名为config.env的新文件。 - 填写必要的变量:
Main_Server_URL: 您的主 VCP 服务器的 WebSocket URL (例如,ws://192.168.1.100:8088)。VCP_Key: 必须与您主服务器config.env中的VCP_Key完全一致的密钥。ServerName: 为此节点起一个易于识别的描述性名称 (例如,GPU节点-1号)。DebugMode: 设置为True以在控制台获得更详细的日志。
- 通过复制
-
添加插件:
- 在此项目文件夹内创建一个名为
Plugin的目录。 - 将您希望在此节点上运行的 VCP 插件文件夹(例如
SciCalculator)完整地复制到这个Plugin目录中。 - 重要提示: 目前,分布式节点仅支持
synchronous(同步) 类型的、且通信协议为stdio的插件。
- 在此项目文件夹内创建一个名为
-
启动服务器:
node VCPDistributedServer.js
启动后,您应该能在控制台看到节点的连接状态和插件注册日志。您也可以在主 VCP 服务器的控制台中查看到此节点的连接和工具注册信息。