Skip to content

魔塔+Ollama 搭建本地大模型给 OpenClaw 使用

原文链接: https://mp.weixin.qq.com/s/cn2B6omKrB82hM_4WJpgJQ


📌 背景:OpenClaw 用量不足

自从用上 OpenClaw 框架后,AI 任务的效果和自动化能力都有明显提升。但 OpenClaw 对 token 消耗相对大,日常使用中很容易遇到商用模型的额度问题:

  • Kimi、GLM、Minimax 等低价包月套餐,token 有限,高频使用很快见底
  • 高阶套餐价格偏高,个人 / 小团队长期使用成本不低

刚好有一张 A40 显卡可以利用,于是我打算用魔塔(ModelScope)+ Ollama搭建一套国内可稳定使用、无限量调用的本地大模型,专门给 OpenClaw 使用。


⚙️ 魔塔+Ollama+OpenClaw 部署过程

1. 国内优先:用魔塔下载 Ollama

我先去的 ollama 官网:https://ollama.com,根据提示使用命令下载 ollama

bash
curl -fsSL https://ollama.com/install.sh | sh

发现下载中途卡住不动了,看 log 发现从 github 下载包卡住了,网络的问题。

查了一下资料,为保证国内环境顺畅下载,直接通过魔塔工具获取 Ollama:

bash
# 使用命令行前,请确保已经通过 pip install modelscope 安装 ModelScope
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux --revision v0.17.3

然后进行安装:

bash
# 运行 ollama 安装脚本
cd ollama-linux
sudo chmod 777 ./ollama-modelscope-install.sh
./ollama-modelscope-install.sh

想了解具体细节的,可以参考下面的链接:

https://www.modelscope.cn/models/modelscope/ollama-linux

过程中出现的 pkg_resources 为正常兼容提示,不影响使用。


2. 启动服务与加载模型

然后去选择模型:

https://ollama.com/search

看了一下模型和热度和 GPU 占用,选了 qwen3.5:35b

bash
ollama run qwen3.5:35b

启动 Ollama 服务后,加载 qwen3.5:35b 模型。


3. 配置 Ollama,支持内网服务

启动后只能本地使用,要想局域网使用,还得进行配置:

bash
sudo vim /etc/systemd/system/ollama.service

内容如下:

ini
[Unit]
Description=Ollama Service
After=network.target

[Service]
Type=simple
User=root # 可改为你的用户名,比如 ubuntu
Group=root

# 核心:在这里配置所有环境变量
Environment="OLLAMA_HOST=0.0.0.0" # 局域网可访问
Environment="OLLAMA_KEEP_ALIVE=1h" # 保活 1 小时
Environment="OLLAMA_NUM_CTX=24576"
Environment="OLLAMA_FLASH_ATTENTION=1"
Environment="OLLAMA_KV_CACHE_TYPE=q8_0"
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="NVIDIA_VISIBLE_DEVICES=all"
Environment="CUDA_VISIBLE_DEVICES=0"

# Ollama 启动命令
ExecStart=/usr/local/bin/ollama start

# 停止命令
ExecStop=/usr/local/bin/ollama stop

Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

可以用下面的脚本测试一下是否访问成功:

python
import requests
import json

url = "http://你的 ip:11434/api/generate"
data = {
    "model": "qwen3.5:35b",
    "prompt": "写首诗",
    "stream": True
}

response = requests.post(url, json=data, stream=True)

for line in response.iter_lines():
    if line:
        res = json.loads(line)
        if "response" in res:
            print(res["response"], end="", flush=True)  # 实时打印
        if res.get("done"):
            break

4. OpenClaw 增加 Ollama 模型

修改 openclaw.json,可以参考手把手教你配置 OpenCode 自定义 Provider,下面单给出 ollama 部分配置内容:

json
"ollama": {
    "baseUrl": "http://你的 ip:11434",
    "apiKey": "ollama-local",
    "api": "ollama",
    "models": [
        {
            "id": "qwen3.5:35b",
            "name": "Qwen3.5 35B",
            "reasoning": false,
            "input": ["text", "image"],
            "cost": {
                "input": 0,
                "output": 0,
                "cacheRead": 0,
                "cacheWrite": 0
            },
            "contextWindow": 200000,
            "maxTokens": 8192
        }
    ]
}

默认的模型设置为 "ollama/qwen3.5:35b" 这个就可以用了。

注: ollama 没配置 apiKey,写任意内容都可以。


📊 真实资源占用:不止吃 GPU,CPU 同样高压

从运行截图可以直观看到:

  • GPU: 显存占用约 25GB,利用率高,是推理核心负载
  • CPU: 多个推理进程占用极高,远超普通应用

大模型部署不只是显卡竞赛,CPU 资源同样至关重要,这也是很多人本地部署时容易忽略的点。


✅ 这套方案的实际价值

  1. 国内可稳定部署,全程魔塔,无外部网络问题
  2. 本地运行,无 token 限制,OpenClaw 可放心使用
  3. 数据在本地,隐私与安全性更高
  4. 有闲置显卡前提下,长期成本远低于商用套餐

如果你也有闲置 GPU,又受够了商用模型的额度限制,这套 OpenClaw + 魔塔 + Ollama 的组合,非常值得一试。

Released under the MIT License.