1. Windows 下 GTX1070 跑 Openclaw + Ollama 本地模型,到底卡在哪
如果你手上是一台 i7-8750H、32G 内存、GTX1070 8G 显存的老笔记本,想在本机把 Openclaw 这个开源个人 AI 助手跑起来,同时用 Ollama 做本地推理,那么你大概率会经历三个阶段:装 conda 环境、拉 Ollama 模型、配 Openclaw 的 Gateway。听起来简单,但真正动手时,坑基本集中在三处——显卡驱动和 CUDA 版本对不上、Ollama 拉下来的模型不支持 tools 调用、Openclaw 的配置文件路径和字段写错导致 Gateway 起不来。
这篇就按我实际在 Windows 上跑通的顺序,把 conda 环境创建、Ollama 安装与模型拉取、Openclaw 侧 settings.json / config.toml 骨架、以及一次可复现的对话验证动作全部写清楚。GTX1070 8G 显存跑 4B 到 9B 的量化模型是可行的,但前提是模型格式选对、显存别被其他进程吃掉。等你本地链路跑通之后,如果想让 Openclaw 同时具备调用云端大模型的能力,可以用 TaoToken 统一管理后续的 API Key 和调用通道,本地和云端两条路并行,不用来回改配置。
适合谁看:只有老显卡、想先跑通本地推理再考虑接入统一 API 通道的开发者;已经装过 conda 但没配过 Ollama 的人;以及 Openclaw 装完卡在 Gateway 启动或模型报错的人。
2. 前置准备:conda 环境与 Ollama 安装
2.1 检查 conda 与显卡状态
先打开 Anaconda Prompt(不是普通 cmd),确认 conda 可用:
conda --version conda env list如果提示找不到命令,说明 conda 没装或没加进 PATH,装一个 Miniconda 即可。接着确认显卡驱动和 CUDA 状态,在 cmd 里执行:
nvidia-smi正常输出会显示 GTX1070、驱动版本、CUDA Version 以及当前显存占用。这里要注意:nvidia-smi右上角显示的 CUDA Version 是驱动支持的最高版本,不是你实际安装的 CUDA 版本。Ollama 在 Windows 下会自带推理后端,一般不需要你单独装 CUDA Toolkit,但驱动必须足够新,否则 Ollama 会退回 CPU 推理,速度会慢到无法接受。
2.2 创建独立的 conda 环境
不要用 base 环境跑 Openclaw,依赖冲突会让你怀疑人生。单独建一个:
conda create -n openclaw_env python=3.11 -y conda activate openclaw_env这里我用 3.11 而不是更新的版本,原因是 Openclaw 依赖链里部分包对 3.12+ 的兼容还在跟进,3.11 最稳。创建完成后确认:
python --version where pythonwhere python输出的路径应该指向openclaw_env目录,如果还指向 base,说明激活没生效,重新执行conda activate openclaw_env。
2.3 安装 Ollama 并拉取模型
到 Ollama 官网下载 Windows 安装包,双击安装,装完后右下角会出现羊驼图标。验证版本:
ollama --version建议用较新版本,老版本对 tools 调用的支持不完整,后面 Openclaw 会直接报 400。装完后拉模型,GTX1070 8G 显存建议从 4B 量化版起步:
ollama pull qwen3:4b ollama listollama list能看到模型名、大小和修改时间。如果你想确认模型是否支持工具调用,可以看模型页面的 tags 说明,带 tools 标记的才能被 Openclaw 正常调用。这一点非常关键,后面第 5 节会专门讲这个报错。
3. 可复制配置:Openclaw 侧 settings.json 与 config.toml
3.1 安装 Openclaw
以管理员身份打开 PowerShell,先放开脚本执行策略,否则安装脚本会被拦:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass Get-ExecutionPolicy -List然后执行安装:
iwr -useb https://openclaw.ai/install.ps1 | iex安装过程会顺带装 Node.js。装完后验证:
openclaw --version3.2 配置 Gateway 为本地模式
Openclaw 的后台服务叫 Gateway,负责 Web 控制台和任务执行。先设成本地模式再安装服务:
openclaw config set gateway.mode local openclaw gateway install openclaw gateway start openclaw gateway statusgateway install会创建一个计划任务实现开机自启。如果start之后status显示未运行,先看日志再重启,别急着重装。
3.3 settings.json 骨架
Openclaw 的模型接入配置一般放在用户目录下的配置文件夹里。一个可用的 settings.json 骨架如下,重点是 provider 指向 ollama、baseUrl 指向本地 11434 端口:
{ "provider": "ollama", "model": "qwen3:4b", "baseUrl": "http://127.0.0.1:11434", "apiKey": "ollama", "temperature": 0.7, "maxTokens": 2048, "stream": true }apiKey对本地 Ollama 来说随便填,它不校验,但字段不能缺,否则部分版本会报配置解析失败。
3.4 config.toml 骨架
如果你用的是 TOML 配置方式,等价写法如下:
[gateway] mode = "local" port = 18789 [model] provider = "ollama" name = "qwen3:4b" base_url = "http://127.0.0.1:11434" api_key = "ollama" temperature = 0.7 max_tokens = 2048改完配置后重启 Gateway 让配置生效:
openclaw gateway restart openclaw gateway status注意:配置文件里的端口要和 Ollama 实际监听端口一致。默认是 11434,如果你改过 OLLAMA_HOST,这里也要同步改。
4. 验证请求:一次可复现的对话动作
4.1 先用 curl 验证 Ollama 本身
在配置 Openclaw 之前,先确认 Ollama 的 API 是通的:
curl http://127.0.0.1:11434/api/generate -d "{\"model\":\"qwen3:4b\",\"prompt\":\"用一句话说明什么是本地推理\",\"stream\":false}"如果返回一段 JSON,里面有response字段和模型生成的文字,说明 Ollama 侧没问题。如果连接被拒绝,检查羊驼图标是否在运行,或者执行ollama serve手动拉起。
4.2 再验证 Openclaw 到 Ollama 的链路
启动 Gateway 后,打开浏览器访问:
http://127.0.0.1:18789在对话界面发一条测试消息,比如「帮我列三个 conda 常用命令」。如果模型正常回复,说明 Openclaw → Ollama → 模型的链路完全打通。此时观察nvidia-smi,应该能看到显存占用上升,说明走的是 GPU 而不是 CPU。
4.3 显存与性能观察
GTX1070 8G 显存跑 4B 量化模型,显存占用大概在 3 到 4G,留有余量。如果你拉到 9B 量化版,显存会接近 7G,此时如果浏览器、IDE 也占显存,就可能触发显存不足,模型会退回 CPU 或直接报错。实测下来,4B 模型在 1070 上的首 token 延迟可以接受,日常问答够用;9B 模型质量更好但响应明显变慢,建议按任务切换。
5. 本篇常见错排查
5.1 报错 does not support tools
这是最容易踩的坑。报错长这样:
Ollama API error 400: {"error":"registry.ollama.ai/library/xxx:latest does not support tools"}原因是你拉的模型不支持工具调用,而 Openclaw 的 agent 模式默认会带 tools 参数。解决办法是换一个带 tools 支持的模型版本,重新 pull 后在配置里改模型名,再重启 Gateway。判断方法:在 Ollama 模型库页面看该模型是否标注 tools 能力,没有标注的不要用在 agent 模式。
5.2 Gateway 启动失败
先看状态和日志:
openclaw gateway status openclaw daemon status常见原因是端口 18789 被占用,或者配置文件字段写错导致解析失败。用netstat -ano | findstr 18789查端口占用,改配置里的 port 即可。配置字段名大小写敏感,baseUrl和base_url在不同配置格式里不能混用。
5.3 模型输出复读机
模型反复重复同一句话,通常是采样参数问题。在 Ollama 的 Modelfile 里调整:
PARAMETER temperature 0.85 PARAMETER top_p 0.9 PARAMETER top_k 40 PARAMETER repeat_penalty 1.1 PARAMETER stop "<|im_end|>"repeat_penalty抑制重复,stop显式设置停止符避免模型无限生成。改完用ollama create重建自定义模型再运行。
5.4 显存不足或退回 CPU
nvidia-smi里看不到 Ollama 进程占用 GPU,说明走了 CPU。检查驱动版本是否过旧,以及是否装了冲突的 CUDA 运行时。另外,模型量化等级越高(如 Q8)显存占用越大,1070 上优先选 Q4_K_M 这类平衡档。
6. 本地跑通之后,用 TaoToken 统一管理后续 API 调用
本地 Ollama 适合离线、隐私敏感、以及不想花 token 成本的场景,但老显卡的能力上限摆在那里,复杂推理和长上下文任务还是得靠云端模型。这时候你不需要把 Openclaw 的配置推倒重来,只需要在模型 provider 层再加一条云端通道。
TaoToken 提供统一的 API Key 和调用入口,你可以把云端模型的 baseUrl 和 Key 配到 Openclaw 的 provider 列表里,和本地 Ollama 并存,按任务切换。接入文档和 Key 管理入口如下:
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
- API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
- 模型对话验证:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite
- 长期编码与 Agent 场景:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
API 基础地址是https://taotoken.net/api,配置时把它填到 provider 的 baseUrl,Key 填到 apiKey 字段,其余结构和本地 Ollama 那条一致。这样 Openclaw 里就有两条模型通道:本地 qwen3:4b 处理日常轻量问答,云端模型处理复杂任务,切换只改一个模型名。
如果你在 Gateway 启动或模型调用上报错,优先看接入文档里的排错章节;如果只是想先验证云端模型能不能通,用模型对话页面发一条消息最快;如果是长期跑编码类 Agent 任务,直接看 Coding Plan 的配置说明。本地和云端两条链路都跑通之后,Openclaw 才算真正可用。