© 加速工具
jiasugongju#
outlook.com

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