ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

WSL2下OpenClaw模型对接实战:通义千问与Ollama配置指南

WSL2下OpenClaw模型对接实战:通义千问与Ollama配置指南 如果你是从上篇一路跟过来的现在 WSL2 Ubuntu 这个底子应该已经搭好OpenClaw 也顺利装上了。但我知道装完只是第一步真正让大多数人卡住的是第二步配置。启动软件容易让它开口说话难。OpenClaw 说到底是个壳所有智能都来自背后接的模型服务——这一步不打通终端里永远只有一堆英文报错和自我介绍的输出。这篇下就把最关键的半截补完OpenClaw 的核心配置到底在管什么、云端模型和本地模型分别怎么对接以及在 WSL2 这个特殊环境下那些连不上、验证失败、找不到模型的坑到底怎么来的、怎么排。全程基于我实际在 Win10/Win11 WSL2 环境里反复折腾过的经验适合刚装好 OpenClaw 但还没成功让模型回复的读者也适合想从云端模型切到本地模型的人参考。1. 从能启动到能对话配置文件到底在管什么1.1 先纠正一个认知OpenClaw 本身不带模型我第一次接触这类工具时有个错觉装完就自带 AI输入一句话就能得到回答。实际上 OpenClaw 更像个调度器它负责把你的指令整理成对话上下文、选择模型、调用接口、再把结果以合适的方式呈现给你。模型在哪里要么是云端 API要么是本地推理服务。所以配置文件的全部意义就是回答三个问题用哪个模型、去哪调用它、用什么身份调用。想明白这一点后面看任何配置项都不会晕。什么 temperature、max_tokens 都是送给模型的附加参数而 provider、baseURL、apiKey、model 这四个字段才是命门——任何一个填错结果都是连上了但聊不起来或者干脆连不上。1.2 装完后的目录里藏着什么OpenClaw 是 Node.js 生态的工具一般通过 npm 全局安装。装完后它会在你的用户目录下生成一个配置目录常见的位置是~/.openclaw/或~/.config/openclaw/具体路径因版本而异以你安装版本的 README 为准。这个目录里一般会有一个主配置文件YAML 或 JSON 格式负责描述模型接入方式一个.env类似的密钥文件用来存放 API Key避免密钥直接写进配置再被同步到 Git一个 logs 目录运行时日志都写在这里排错时最有用。我见过不少人把时间花在找魔法配置项上其实核心就这几样。你把配置目录翻一遍先分清哪个文件管什么比到处抄配置片段要靠谱得多。1.3 核心字段逐一拆解用一个典型的模型配置片段来解释model: provider: openai base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 api_key: ${DASHSCOPE_API_KEY} model: qwen-plus temperature: 0.7配置项管什么最容易踩的坑provider协议方言告诉 OpenClaw 用哪种格式说话不是品牌别填成阿里、百度baseURL请求发到哪个地址漏掉结尾的/v1或拼错路径apiKey身份凭证硬编码在配置文件里提交后泄露model具体的模型名大小写、连字符、版本号必须和服务商完全一致temperature回答的随机性调太高容易胡说八道调太低太死板api_key那行写的是${DASHSCOPE_API_KEY}意思是从环境变量里读取。这是密钥管理的通用实践别把 key 直接写死在配置文件里。具体做法是在~/.bashrc或.env文件里先导出变量OpenClaw 启动时自动加载。我用的是.env文件方式好处是换模型服务商时不用改主配置只换环境变量。2. 云端模型对接用一条通义千问 API 把 OpenClaw 喊醒2.1 为什么建议先从通义千问这类国内服务开始在 WSL2 环境下接云端模型我首选阿里云百炼上的通义千问。原因很实际访问稳定、控制台操作门槛低、新用户通常有免费额度可以试跑而且 DashScope 提供了 OpenAI 兼容模式——这意味着你不用折腾任何格式转换OpenClaw 那边按 OpenAI 的标准写法填地址国内模型就能直接跑起来。你搜qwen2.5-3b 关联到 openclaw能找到一堆问题但绝大多数都是配置细节没对齐协议本身反而是最顺的一环。2.2 开通服务、拿 Key三步搞定具体操作流程如下打开阿里云百炼控制台找到模型服务开通页面把通义千问系列模型的服务开通。新用户一般能看到免费额度提示先领了再说跑通链路后再决定要不要付费。在控制台左侧找到 API-KEY 管理创建一个新的 Key记得先复制保存。这个 Key 只在创建时完整显示一次丢了只能重新建。在 WSL2 的 Ubuntu 里把 Key 写进环境变量echo export DASHSCOPE_API_KEY你的Key ~/.bashrc source ~/.bashrc如果你用了.env文件方案格式也一样就是少个 export 前缀。2.3 先别启动 OpenClaw用 curl 验证 Key 有没有效这是我最想强调的习惯接任何模型服务先绕开 OpenClaw直接用 curl 打一次接口。这样能把问题分层——curl 通不通代表网络和 Key 对不对curl 通了而 OpenClaw 不通才轮到查 OpenClaw 自己的配置。curl https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \ -H Authorization: Bearer $DASHSCOPE_API_KEY \ -H Content-Type: application/json \ -d {model:qwen-plus,messages:[{role:user,content:你好}]}如果返回一段带choices字段的 JSON说明 Key 有效、网络通畅。如果返回 401 或 InvalidApiKey先去控制台核对 Key 是不是复制完整了。这一步多花两分钟后面能省两小时。2.4 为什么 provider: openai 反而能接国内模型很多人看到配置示例里写provider: openai以为就只能接 OpenAI 的模型。其实是 OpenAI 兼容协议已经成了行业事实标准——国内主流模型服务商几乎都提供一套兼容模式端点把自家模型包装成 OpenAI 的请求格式。你可以类比成大家都说普通话只是口音不同兼容模式就是让服务商切换成标准口音OpenClaw 只要会用一种方式说话就能跟所有说普通话的服务商沟通。所以对接通义千问时DashScope 的兼容模式地址是https://dashscope.aliyuncs.com/compatible-mode/v1这里的/v1不能丢OpenClaw 内部会在 baseURL 后面拼接具体的接口路径。填错地址最常见的表现是 404 或者 Connection refused。把第 2.3 步的 curl 验证通过之后再启动 OpenClaw正常情况下就能得到第一个来自云端模型的回复了。如果还有问题多半是 model 名写错了——服务商每个模型的 ID 都有固定写法比如qwen-plus、qwen-turbo、qwen2.5-72b-instruct多一个少一个字母都查无此模型。3. 本地模型路线Ollama 拉起 Qwen2.5-3B再喂给 OpenClaw3.1 什么时候该考虑本地模型云端模型优点很多但有些场景真不合适数据敏感不想出内网、临时断网想继续调试、或者你只是想高频试 OpenClaw 的功能又不想一直烧 token。本地模型的价值就在这——东西跑在自己机器上随便折腾不心疼。代价也直接吃内存吃算力。3B 级别的模型还能靠 CPU 硬扛再大的体量就建议有 GPU 了。好在 WSL2 在这方面做得不错只要你 Windows 侧装了较新的 NVIDIA 驱动WSL2 里就能直接调用 GPU 做推理Linux 内不需要再装一遍显卡驱动。很多人搜wsl2 英伟达驱动生效吗答案是生效的前提是 Windows 驱动版本足够新。3.2 Ollama 的安装与模型拉取本地推理我推荐 Ollama理由就一条把复杂的东西全包了。模型下载、量化、内存管理、OpenAI 兼容接口它都内置好了。安装和拉取模型curl -fsSL https://ollama.com/install.sh | sh ollama pull qwen2.5:3b拉下来的模型虽然叫 3B实际占用磁盘大概 2GB 上下这个体量在 WSL2 里比较可控。拉完启动服务ollama serve3.3 验证本地接口再配置 OpenClawOllama 启动后默认监听127.0.0.1:11434而且自带 OpenAI 兼容端点。先验证curl http://localhost:11434/v1/chat/completions \ -H Content-Type: application/json \ -d {model:qwen2.5:3b,messages:[{role:user,content:你好}]}然后 OpenClaw 侧配置就很简单了model: provider: openai base_url: http://localhost:11434/v1 api_key: ollama # 本地服务不校验占位即可 model: qwen2.5:3b注意model名里的冒号qwen2.5:3b是 Ollama 的标签体系表示 qwen2.5 这个模型的 3B 量化版本。填错标签Ollama 会直接报 model not found。3.4 WSL2 下跑本地模型三个注意点内存限制要提前配好。WSL2 默认最多使用宿主机约一半内存3B 模型平时还好但如果你同时开浏览器、IDE 和 Ollama很容易触发 OOM。建议在 Windows 用户目录下建一个.wslconfig文件手动分配[wsl2] memory8GB processors4改完执行wsl --shutdown再重启 WSL2 生效。Ollama 长时间运行会缓存多个模型。如果机器内存不大可以限制同时加载的模型数比如设置环境变量OLLAMA_MAX_LOADED_MODELS1避免加载多个大模型直接把内存吃满。从 Windows 访问 WSL2 里的服务绝大多数情况用 localhost 就行。新版 WSL2 会自动把 Windows 的 localhost 转发到 WSL2 实例。但如果你想让局域网里其他设备访问 Ollama就得把监听地址改成0.0.0.0export OLLAMA_HOST0.0.0.0否则服务只在本机可见外部设备会一直连不上。4. 连不上的排错实录验证失败、端口黑洞与 DNS 失踪4.1 看到报错先分层别急着改配置OpenClaw 报连不上模型绝大多数可以分成三层网络层、鉴权层、配置层。我的习惯是先用 curl 复现一次同一个请求云端和本地模型都可以这么做然后看结果现象问题层下一步curl 超时或 connection refused网络层查服务是否启动、地址端口是否可通curl 返回 401/403鉴权层核对 Key、账号开通状态curl 返回 404/model not found配置层查模型名和 baseURL 路径curl 返回 429/限流资源层查额度、冷却等待curl 正常但 OpenClaw 报错配置层查 OpenClaw 配置文件、环境变量curl 是唯一能一锤定音的工具。跳过它直接改配置就像不看体温计就吃退烧药全凭猜。4.2 OpenClaw 无法安全验证到底在验证什么这个报错我见过太多次了但它背后至少有三种不同的真凶必须逐一排除。真凶一WSL2 时钟漂移导致 TLS 证书校验失败。WSL2 本质是个轻量虚拟机宿主机休眠唤醒后它的内部时钟可能漂移几分钟。而 HTTPS 证书校验依赖客户端时间在有效期内时间不对OpenClaw 就会认为无法安全验证。典型特征是 curl 报SSL certificate problem。修起来很快sudo hwclock -s把 WSL2 的时钟同步到硬件时钟再重试 curl 就正常了。如果你经常休眠建议研究一下怎么给 WSL2 配时间和宿主机自动同步不然这问题会反复出现。真凶二环境里存在代理变量TLS 链路被干扰。WSL2 会继承 Windows 的环境变量如果你在 Windows 上配置过 HTTP_PROXYWSL2 里也可能带着这些变量跑。OpenClaw 走代理去连模型服务时代理证书链一旦不完整也会报验证失败。排查命令env | grep -i proxy如果有输出临时清掉再试。但我不展开这个方向因为它跟每个人的网络环境绑定太深先确认是不是自己的代理设置导致的最重要。真凶三API Key 无效OpenClaw 把 401 包装成了验证失败。这种情况 curl 会直接返回 401但 OpenClaw 的报错信息有时很含糊把鉴权失败也归进无法安全验证。所以回到第 4.1 节的分层思路先用 curl 确认到底哪一层出错再对症下药。4.3 端口黑洞为什么 Windows 访问不到 WSL2 里的本地模型如果你配置了本地模型Windows 上的 OpenClaw 却连不上 localhost往往是 WSL2 网络模式的坑。WSL2 默认是 NAT 网络WSL2 里的服务对 Windows 来说在另一台虚拟机里。新版 WSL2 提供了 localhost 自动转发但有两个前提服务必须监听在127.0.0.1上WSL 版本足够新且没有其他组件抢占了转发规则。如果服务监听在0.0.0.0Windows 访问 localhost 有时反而抓不到因为转发只针对 loopback。这种情况要么把监听地址改回127.0.0.1要么用wsl hostname -I拿到 WSL2 的 IP从 Windows 直接用那个 IP 访问。还有个一劳永逸的办法在.wslconfig里开启 mirrored 网络模式[wsl2] networkingModemirrored开启后 WSL2 和宿主机共享网络栈localhost 概念完全一致端口黑洞直接消失。我只提醒两点这个模式需要较新的 Windows 11 版本如果你装了某些会和网络栈打架的虚拟网卡类软件可能引入新问题。没有特殊需求的话直接开就行。4.4 模型有反应但质量不对检查顺序是什么能连上但回答不对劲比如答非所问、一直重复、超时中断这个阶段的排错顺序我固定为先确认 config 里的 model 名和服务商文档完全一致包括大小写和分隔符查上下文超长问题。本地小模型上下文窗口有限你一次性贴一大段代码进去它可能崩掉或截断看日志。OpenClaw 的日志位置通常在配置目录下的 logs 文件里里面有请求耗时、状态码、响应片段比终端输出的信息全得多如果本地模型回答明显退化考虑是不是内存不够导致 Ollama 把模型换到了 CPU 推理看ollama ps能确认当前模型在 GPU 还是 CPU 上跑。5. 配置落定后我建议你长期保留的几条操作习惯5.1 多模型切换不要反复改配置我在本地模型和云端模型之间反复切换过很多次最开始的笨办法是每次编辑配置文件。后来发现更好的方式用环境变量控制模型选择主配置文件保持简洁只通过MODEL_BASE_URL、MODEL_NAME这类变量切换。比如想要快就切 qwen-turbo想要本地离线就切http://localhost:11434/v1加qwen2.5:3b。OpenClaw 支持从环境变量读配置的话这样收益最大你只需要维护一套配置切换只改一行。5.2 密钥文件永远不要进 Git很多人把整个配置目录直接推到 GitHubKey 也随之公开。正确的做法是只把.env.example提交到仓库里面放占位符真正的.env写进.gitignore。换个新机器时复制.env.example再填自己的 Key 就行。这是成本最低的安全投资。5.3 先用 curl 打通再让 OpenClaw 接管这个习惯救了我无数次每次升级 OpenClaw、换模型服务商、或者重装 WSL2 之后我的固定动作都是先跑一轮 curl 验证确认服务端没问题再启动 OpenClaw。别小看这一步它能直接把故障范围砍掉一半。很多为什么连不上的问题最后都发现不是 OpenClaw 的锅而是模型服务本身还没就绪。5.4 顺手提一句 C 盘空间问题如果你用的 WSL2 发行版把数据全放在 C 盘配置和模型文件越来越多之后C 盘会告急。这时候不用重装系统用wsl --export导出、wsl --import导入到 D 盘就能整体迁移。迁移之后再改.wslconfig里的路径即可OpenClaw 的配置和各种环境变量不受影响。这个操作属于环境维护跟模型对接关系不大但你迟早用得上。配置和模型对接这一关过了之后OpenClaw 才算真正能用起来。我最初花最多的时间并不是在某个高深配置项上而是反复在不读报错信息、不拆分层、跳步乱改配置的习惯上。如果你也卡在同样的位置别急着删配置重装先回到 curl 这一步把哪一层出了问题搞清楚多半问题就已经解决了一半。有了稳定能跑的模型底座后面再折腾什么自动化、插件、多智能体编排才有个靠谱的地基。
返回列表