项目简介
Multi-Agent Docker AI环境是一个多容器Docker环境,专为AI代理设计。它利用Model Context Protocol (MCP) 协议协调本地命令行工具和外部图形用户界面 (GUI) 应用程序,支持先进的AI驱动开发工作流程。此环境提供Python、Node.js、Rust和Deno等多语言运行时,并配备了AI/ML、3D图形、EDA、文档处理和网络分析等领域的广泛工具。
主要功能点
- 双容器架构:将核心AI逻辑和CLI工具与资源密集型GUI应用程序(如Blender、QGIS)分离。
- 灵活的MCP连接:支持WebSocket (3002端口) 和高性能TCP (9500端口) 进行MCP通信。
- 全面的AI工具集:包含PyTorch、TensorFlow、CUDA Toolkit以及主流AI模型(Gemini、OpenAI Codex、Anthropic Claude)的CLI工具。
- MCP编排:通过MCP协议实现AI代理与各类专业工具之间的无缝交互。
- 外部应用桥接:使用基于TCP的桥接与独立容器中运行的外部GUI应用进行稳健通信。
- 自动化与定制化:提供方便的脚本用于环境初始化,并支持用户自定义配置。
安装步骤
-
克隆仓库:
git clone https://github.com/DreamLab-AI/multi-agent-docker.git cd multi-agent-docker -
构建并启动环境:
./multi-agent.sh build ./multi-agent.sh start这将构建Docker镜像并启动服务。'multi-agent.sh start'命令会自动将您带入'multi-agent-container'的shell。
-
初始化工作区 (在容器内部执行):
/app/setup-workspace.sh此脚本会准备环境,包括复制MCP工具、设置权限、安装'claude-flow'等。
-
验证设置 (在容器内部执行):
./mcp-helper.sh test-all确保所有MCP工具都能正常响应。
服务器配置 (MCP客户端使用)
该MCP服务器通过 'claude-flow' 实现核心功能,并通过 'mcp-ws-relay.js' 提供 WebSocket 接口,以及 'mcp-tcp-server.js' 提供 TCP 接口。MCP客户端可以连接到这些接口与服务器通信。
以下是MCP客户端连接到此服务器的典型配置(JSON格式,包含关键连接信息和注释):
[ { "name": "MultiAgent_MCP_WebSocket", "protocol": "WebSocket", "command": ["/usr/bin/claude-flow", "mcp", "start", "--stdio", "--file", "/workspace/.mcp.json"], "args": [], "options": { "cwd": "/workspace", "env": { "CLAUDE_FLOW_DIRECT_MODE": "true", "CLAUDE_FLOW_GLOBAL": "true", "CLAUDE_FLOW_DATABASE": "/workspace/.swarm/memory.db" } }, "description": "连接到Multi-Agent Docker环境的MCP WebSocket接口,LLM客户端通过此接口调用工具和访问资源。需要通过mcp-ws-relay.js桥接。", "notes": "此配置是当MCP客户端在Docker外部,且mcp-ws-relay.js已在端口3002上运行时的连接方式。" }, { "name": "MultiAgent_MCP_TCP", "protocol": "TCP", "command": ["/usr/bin/claude-flow", "mcp", "start", "--stdio"], "args": [], "options": { "cwd": "/workspace", "env": { "CLAUDE_FLOW_GLOBAL": "/usr/bin/claude-flow", "CLAUDE_FLOW_DIRECT_MODE": "true" } }, "description": "连接到Multi-Agent Docker环境的MCP TCP接口,提供高性能、低延迟通信,适合容器间或性能敏感的应用。需要通过mcp-tcp-server.js桥接。", "notes": "此配置是当MCP客户端在Docker外部,且mcp-tcp-server.js已在端口9500上运行时的连接方式。" } ]
- 重要提示:
- 上述 'command' 和 'args' 是 MCP 服务器的实际启动命令和参数,通常由 Docker 环境内部的 'mcp-ws-relay.js' 或 'mcp-tcp-server.js' 脚本调用。
- MCP客户端连接时,通常只需要配置 'protocol', 'host', 'port'。例如,如果您的MCP客户端在Docker外部,并且 'mcp-ws-relay.js' 正在 'localhost:3002' 运行,客户端配置应为:
{ "name": "MyClient_to_MultiAgent_WS", "protocol": "WebSocket", "host": "localhost", "port": 3002 } - 'host': 在本地运行Docker时通常为 'localhost'。如果您的MCP客户端在另一个Docker容器内,可能需要根据Docker网络配置调整为相应的服务名称或IP地址。
- 'port': 分别对应WebSocket和TCP接口的默认端口。
- MCP客户端连接成功后,即可通过这些接口发送JSON-RPC请求(如 'tools/list', 'tools/call', 'resources/list', 'resources/read')与服务器交互。
基本使用方法
一旦环境启动并通过测试,您就可以通过MCP工具与AI代理进行交互。例如,在'multi-agent-container'的shell中:
-
列出所有可用工具:
./mcp-helper.sh list-tools -
调用ImageMagick工具创建图片:
./mcp-helper.sh run-tool imagemagick-mcp '{"method": "create", "params": {"width": 200, "height": 200, "color": "gold", "output": "gold_square.png"}}' -
调用PBR生成器创建纹理:
./mcp-helper.sh run-tool pbr-generator-mcp '{"tool": "generate_material", "params": {"material": "brushed_metal", "resolution": "1024x1024", "output": "./pbr_textures"}}' -
使用Blender工具执行Python代码 (例如创建立方体):
./mcp-helper.sh run-tool blender-mcp '{"tool": "execute_code", "params": {"code": "import bpy; bpy.ops.mesh.primitive_cube_add()"}}'您可以通过VNC客户端连接到 'localhost:5901' 查看Blender GUI中创建的立方体。
信息
分类
开发者工具