AI Manus是一个通用AI代理系统,支持在沙盒环境中运行各种工具和操作。
AI Manus主要依靠Docker进行开发和部署,需要较新版本的Docker:
• Docker 20.10+
• Docker Compose
模型能力要求:
• 与OpenAI接口兼容
• 支持函数调用
• 支持Json格式输出
推荐使用Deepseek和GPT系列模型。
建议使用Docker Compose进行部署,配置内容如下:
services:
frontend:
image: simpleyyt/manus-frontend
ports:
- "5173:80"
depends_on:
- backend
restart: unless-stopped
networks:
- manus-network
environment:
- BACKEND_URL=http://backend:8000
backend:
image: simpleyyt/manus-backend
depends_on:
- sandbox
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- manus-network
environment:
# OpenAI API基础URL
- API_BASE=https://api.openai.com/v1
# OpenAI API密钥,需替换为自己的密钥
- API_KEY=sk-xxxx
# 大语言模型名称
- MODEL_NAME=gpt-4o
# 大语言模型温度参数,控制随机性
- TEMPERATURE=0.7
# 大语言模型响应的最大令牌数
- MAX_TOKENS=2000
# 用于网页搜索功能的谷歌搜索API密钥
#- GOOGLE_SEARCH_API_KEY=
# 谷歌自定义搜索引擎ID
#- GOOGLE_SEARCH_ENGINE_ID=
# 应用程序日志级别
- LOG_LEVEL=INFO
# 沙盒使用的Docker镜像
- SANDBOX_IMAGE=simpleyyt/manus-sandbox
# 沙盒容器名称前缀
- SANDBOX_NAME_PREFIX=sandbox
# 沙盒容器的生存时间(分钟)
- SANDBOX_TTL_MINUTES=30
# 沙盒容器的Docker网络
- SANDBOX_NETWORK=manus-network
sandbox:
image: simpleyyt/manus-sandbox
command: /bin/sh -c "exit 0" # 防止沙盒启动,确保镜像被拉取
restart: "no"
networks:
- manus-network
manus-network:
name: manus-network
driver: bridge
将上述内容保存为docker-compose.yml
文件,然后运行:
docker compose up -d
打开浏览器,访问 http://localhost:5173
就能进入Manus。
AI Manus项目结构
由三个独立的子项目组成:
• frontend
:Manus前端
• backend
:Manus后端
• sandbox
:Manus沙盒
环境设置
1、下载项目:
git clone https://github.com/simpleyyt/ai-manus.git
cd ai-manus
2、复制配置文件:
cp .env.example .env
3、修改配置文件:
# 模型提供商配置
API_KEY=
API_BASE=https://api.openai.com/v1
# 模型配置
MODEL_NAME=gpt-4o
TEMPERATURE=0.7
MAX_TOKENS=2000
# 可选:谷歌搜索配置
#GOOGLE_SEARCH_API_KEY=
#GOOGLE_SEARCH_ENGINE_ID=
# 沙盒配置
SANDBOX_IMAGE=simpleyyt/manus-sandbox
SANDBOX_NAME_PREFIX=sandbox
SANDBOX_TTL_MINUTES=30
SANDBOX_NETWORK=manus-network
# 日志配置
LOG_LEVEL=INFO
开发与调试
1、以调试模式运行:
# 相当于docker compose -f docker-compose-development.yaml up
./dev.sh up
所有服务将以热重载模式运行,代码更改会自动重新加载,暴露的端口如下:
• 5173:Web前端端口
• 8000:服务器API服务端口
• 8080:沙盒API服务端口
• 5900:沙盒VNC端口
• 9222:沙盒Chrome浏览器CDP端口
在调试模式下,全局只启动一个沙盒。
2、当依赖项(requirements.txt或package.json)发生变化时,清理并重新构建:
# 清理所有相关资源
./dev.sh down -v
# 重新构建镜像
./dev.sh build
# 以调试模式运行
./dev.sh up
镜像发布
export IMAGE_REGISTRY=your-registry-url
export IMAGE_TAG=latest
# 构建镜像
./run build
# 推送到相应的镜像仓库
./run push