星图平台快速搭建 Clawdbot:私有化本地 Qwen3-VL:30B 并接入飞书(上篇)

项目封面图

效果展示图

本项目通过 CSDN 星图 AI 云平台,零基础教你私有化部署最强多模态大模型 Qwen3-VL:30B,并通过 Clawdbot 搭建起一个既能"看图"又能"聊天"的飞书智能办公助手。

实验说明:本文所有的部署及测试环境均由 CSDN 星图 AI 云平台提供。我们使用官方预装的 Qwen3-VL-30B 镜像作为基础环境进行二次开发。

硬件环境概览

GPU 驱动 CUDA 版本 显存 CPU 内存 系统盘 数据盘
550.90.07 12.4 48GB 20 核心 240GB 50GB 40GB

1. 基础镜像选配与连通性测试

1.1 社区镜像选配

为了获得顶级的多模态交互体验,我们选择目前最强的 VL-30B 模型进行服务部署。

镜像选择界面

  • 快速定位技巧:若镜像列表较长,建议直接通过搜索框输入关键字 Qwen3-vl:30b 快速锁定目标镜像。

搜索功能演示

1.2 镜像部署

Qwen3-VL-30B 属于高参数量的多模态大模型,对算力资源要求较高。官方推荐配置为 48G 显存。在星图平台创建实例时,直接按照默认推荐的配置框选择启动即可。

部署配置界面

1.3 镜像可用性测试

实例开机后,返回个人控制台。点击 Ollama 控制台 快捷方式,即可直接进入预装好的 Ollama 多模态 Web 交互页面。

控制台入口

1.3.1 Ollama 交互页面测试

在 Web 界面进行初步对话,确保模型推理功能正常。

对话测试界面

1.3.2 本地 API 调用测试

由于星图云会为每个算力 Pod 提供公网 URL,我们可以直接在本地通过 Python 调用 API 接口。

注意:请将 base_url 替换为您服务器实际对应的公网 URL(格式如下所示)。

API调用示意图

from openai import OpenAI

client = OpenAI(
    # 将 gpu-pod697b0f1855ba5839425df6ea-11434 切换成您实际部署的服务器地址
    base_url="https://gpu-pod697b0f1855ba5839425df6ea-11434.web.gpu.csdn.net/v1",
    api_key="ollama"
)
try:
    response = client.chat.completions.create(
        model="qwen3-vl:30b",
        messages=[{"role": "user", "content": "你好,你是谁?"}]
    )
    print(response.choices[0].message.content)
except Exception as e:
    print(f"连接失败,请检查端口是否开放: {e}")

2. Clawdbot 的安装与初始化

2.1 安装 Clawdbot

星图云环境已预装最新的 Node.js 并配置了镜像加速。我们推荐通过官方 npm 方式快速全局安装 Clawdbot

安装过程截图

npm i -g clawdbot

安装完成提示

2.2 启动并完成初始配置

执行以下命令开启向导模式。对于大多数进阶配置,我们先选择跳过,后续直接在 Web 控制面板中修改。

clawdbot onboard

向导启动界面

配置步骤1

配置步骤2

配置步骤3 配置步骤4

配置完成

2.3 启动网关并访问控制页面

Clawdbot 默认管理端口为 18789

clawdbot gateway

访问地址示例:

# 原链接(8888 端口):https://gpu-pod697b0f1855ba5839425df6ea-8888.web.gpu.csdn.net/
# Clawdbot 控制台链接(更换为 18789 端口):
https://gpu-pod697b0f1855ba5839425df6ea-18789.web.gpu.csdn.net/

控制台访问界面


3. 网络调优与安全配置

3.1 解决 Web 页面空白问题

故障原因:Clawdbot 默认监听 127.0.0.1,导致外部公网请求无法响应。我们需要修改配置实现全局监听,并配置可信代理。

空白页面问题

  • 修改前的监听状态修改前状态

修改配置文件

vim ~/.clawdbot/clawdbot.json

核心配置项修改:

  1. bind: 由 loopback 改为 lan(开启全网监听)。
  2. auth.token: 自定义安全 Token(例如:csdn)。
  3. trustedProxies: 添加 0.0.0.0/0(信任所有代理转发)。
"gateway": {
    "mode": "local",
    "bind": "lan", 
    "port": 18789,
    "auth": {
      "mode": "token",
      "token": "csdn"
    },
    "trustedProxies": ["0.0.0.0/0"],
    "controlUi": {
      "enabled": true,
      "allowInsecureAuth": true
    }
}
  • 修改后的监听状态修改后状态

3.2 配置控制面板访问凭证

刷新页面后,若系统提示缺失 Token,请前往 Overview 页面填写刚才在 .json 文件中设置的 csdn

Token输入界面

Overview页面

配置完成界面


4. 核心集成:接入星图云私有化 Qwen3-VL:30B

确认本地 Ollama 服务工作正常后,我们需要将 Clawdbot 的默认模型指向我们部署的 30B 大模型。

模型配置界面

4.1 修改 Clawdbot 模型供应配置

编辑 ~/.clawdbot/clawdbot.json,在 models.providers 中添加 my-ollama 供应源,并更新 agents 默认模型为 qwen3-vl:30b

关键配置片段:

 "models": {
    "providers": {
      "my-ollama": {
        "baseUrl": "http://127.0.0.1:11434/v1",
        "apiKey": "ollama",
        "api": "openai-completions",
        "models": [
          {
            "id": "qwen3-vl:30b",
            "name": "Local Qwen3 30B",
            "contextWindow": 32000
          }
        ]
      }
    }
  },
"agents": {
  "defaults": {
    "model": {
      "primary": "my-ollama/qwen3-vl:30b"
    }
  }
}

4.2 完整配置文件参考

您可以直接复制以下 JSON 内容覆盖本地 ~/.clawdbot/clawdbot.json(请根据实际需要微调路径):

{
  "meta": {
    "lastTouchedVersion": "2026.1.24-3",
    "lastTouchedAt": "2026-01-29T09:43:42.012Z"
  },
  "wizard": {
    "lastRunAt": "2026-01-29T09:43:41.997Z",
    "lastRunVersion": "2026.1.24-3",
    "lastRunCommand": "onboard",
    "lastRunMode": "local"
  },
  "auth": {
    "profiles": {
      "qwen-portal:default": {
        "provider": "qwen-portal",
        "mode": "oauth"
      }
    }
  },
  "models": {
    "providers": {
      "my-ollama": {
        "baseUrl": "http://127.0.0.1:11434/v1",
        "apiKey": "ollama",
        "api": "openai-completions",
        "models": [
          {
            "id": "qwen3-vl:30b",
            "name": "Local Qwen3 32B",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 32000,
            "maxTokens": 4096
          }
        ]
      },
      "qwen-portal": {
        "baseUrl": "https://portal.qwen.ai/v1",
        "apiKey": "qwen-oauth",
        "api": "openai-completions",
        "models": [
          {
            "id": "coder-model",
            "name": "Qwen Coder",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 8192
          },
          {
            "id": "vision-model",
            "name": "Qwen Vision",
            "reasoning": false,
            "input": [
              "text",
              "image"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "my-ollama/qwen3-vl:30b"
      },
      "models": {
        "my-ollama/qwen3-vl:30b": {
          "alias": "qwen"
        },
        "qwen-portal/coder-model": {
          "alias": "qwen"
        },
        "qwen-portal/vision-model": {}
      },
      "workspace": "/root/clawd",
      "compaction": {
        "mode": "safeguard"
      },
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  },
  "messages": {
    "ackReactionScope": "group-mentions"
  },
  "commands": {
    "native": "auto",
    "nativeSkills": "auto"
  },
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "lan",
    "controlUi": {
      "enabled": true,
      "allowInsecureAuth": true
    },
    "auth": {
      "mode": "token",
      "token": "csdn"
    },
    "trustedProxies": [
      "0.0.0.0/0"
    ],
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    }
  },
  "skills": {
    "install": {
      "nodeManager": "npm"
    }
  },
  "plugins": {
    "entries": {
      "qwen-portal-auth": {
        "enabled": true
      }
    }
  },
  "hooks": {
    "internal": {
      "enabled": true,
      "entries": {
        "session-memory": {
          "enabled": true
        }
      }
    }
  }
}

4.3 最终对话测试

重启 Clawdbot 服务,并开启一个新终端执行 watch nvidia-smi 监控显卡状态。

GPU监控界面

在控制面板的 Chat 页面发送消息,观察 GPU 显存的变化,确认 Qwen3-VL:30B 正在为您服务!

对话测试界面

显存变化监控


5. 总结

至此,我们已经成功在 星图平台 完成了 Qwen3-VL:30B 的私有化部署,并将其接入了 Clawdbot 的管理网关。

在接下来的下篇教程中,我们将重点讲解:

  1. 如何正式接入飞书平台实现群聊互动。
  2. 如何进行环境持久化打包,并发布到 星图 AI 镜像市场。

敬请期待,感谢您愿意花费宝贵的时间进行的阅读尝试,谢谢!


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐