1. 项目概述:一只“小龙虾”为何让无数开发者深夜抓狂又真香上头
OpenClaw(代号“小龙虾”)不是某家餐厅的网红菜品,而是一个面向AI Agent开发者的开源模型网关与能力编排框架——它不训练模型,也不托管算力,却像一个精密的交通调度中心,把Qwen、DeepSeek、Claude、Ollama等几十家模型服务统一接入、智能路由、能力抽象、故障熔断。你写一条自然语言指令,它能自动拆解成工具调用链;你传一张图+一段需求,它能协调Qwen-VL理解图像、Qwen-Coder生成代码、Wan视频模型渲染结果;你配置一个qwen3.5-plus,它能自动识别这是文本+图像双模态请求,悄悄切换到DashScope标准端点,绕过Coding Plan的权限墙。这听起来很酷,但现实是:90%的本地部署失败,都卡在第一步——连openclaw命令都跑不起来。
我从零开始部署OpenClaw,全程记录了Windows 11 + WSL2 Ubuntu 24.04 + macOS Sonoma三套环境的真实操作,踩了27个坑,重装Node.js 8次,删光node_modules12轮,反复核对API Key格式17遍,最终在凌晨三点看到openclaw models list --provider qwen返回一长串可用模型时,那种“原来它真的能动”的震撼,比第一次跑通Hello World还强烈。这不是一篇教科书式安装指南,而是一份带着体温的“战地手记”:它告诉你为什么npm install -g openclaw会报错ERR! code EACCES,为什么openclaw onboard卡在Validating auth...不动,为什么Qwen3.6-plus死活不认账,为什么视频生成提示400 thinking options type cannot be disabled when reasoning_effort——所有这些错误,背后都不是玄学,而是Node.js版本策略、环境变量加载顺序、DashScope端点兼容性、OpenClaw配置解析器的隐式规则在共同起作用。如果你正被'openclaw' is not recognized as an internal or external command折磨,或者刚收到api error: the model has reached its context window limit.的报错邮件,这篇记录就是为你写的。它不承诺“一键部署”,但保证让你看清每一行报错背后的齿轮如何咬合。
2. 核心设计逻辑与方案选型深度拆解
2.1 OpenClaw的本质:不是模型服务器,而是模型服务的“操作系统内核”
很多人误以为OpenClaw是另一个Ollama或LM Studio,这是最大的认知偏差。Ollama是“模型运行时”,它把GGUF模型加载进内存执行;LM Studio是“模型桌面应用”,提供图形界面管理本地模型。而OpenClaw是“模型服务操作系统内核”——它本身不包含任何模型权重,也不做推理计算,它的核心价值在于抽象层(Abstraction Layer)和调度层(Orchestration Layer)。
抽象层:将不同厂商API(Qwen DashScope、Anthropic、OpenAI)的千奇百怪的请求格式(JSON Schema差异、认证头字段名、流式响应分块逻辑、错误码定义)统一映射为OpenClaw内部的标准化协议。比如Qwen的
enable_thinking: true、Claude的anthropic-beta: thinking-enabled-2024-xx-xx、OpenAI的tool_choice: "auto",在OpenClaw配置里全被归一为thinking: "enabled"这一行参数。这种抽象不是简单转发,而是深度语义理解:当配置thinking: "disabled"时,OpenClaw不会只删掉enable_thinking字段,还会主动移除Qwen端点要求的reasoning_effort参数,否则就会触发api error: 400 thinking options type cannot be disabled when reasoning_effort这个经典报错。调度层:解决的是“谁来干、怎么干、干砸了怎么办”的问题。它支持多模型Provider并存(Qwen + DeepSeek + Ollama本地),可配置主备模型(
primary: "qwen/qwen3.5-plus",fallback: "deepseek/deepseek-coder"),能根据请求内容自动选择最优Provider(图像请求走Qwen-VL,代码请求走Qwen-Coder),甚至能设置超时熔断(timeout: 30000毫秒)。这种能力在真实业务中至关重要:当Qwen Cloud因流量高峰返回503 Service Unavailable时,OpenClaw能在200毫秒内降级到本地Ollama的Qwen2.5,用户无感知;当Qwen3.6-plus在Coding Plan端点报unsupported model,它能自动切到Standard端点重试——这一切都基于其内置的“Provider Catalog”和“Endpoint Resolver”机制。
因此,部署OpenClaw的核心目标,从来不是“让它跑起来”,而是“让它正确理解你的意图,并精准调度到正确的后端”。这直接决定了后续所有功能(Agent编排、多模态调用、视频生成)能否落地。这也是为什么单纯npm install -g openclaw成功,离真正可用还有十万八千里——全局安装只是拿到了二进制壳,真正的灵魂在配置文件、环境变量、Provider端点匹配这三者的严丝合缝。
2.2 为何必须用Node.js而非Python?技术栈选型的底层逻辑
网络热词里高频出现python、python零基础入门教程,甚至有人尝试用pip install openclaw,这暴露了一个根本性误解:OpenClaw是TypeScript/Node.js生态原生构建的,与Python无任何关系。它的技术栈选择绝非偶然,而是由三大硬性约束决定的:
实时流式响应(Streaming)的工程可行性:AI Agent的核心体验是“思考过程可视化”,即模型输出逐字返回(如
Thinking: I need to analyze the image first...)。Node.js的EventEmitter和ReadableStream API是处理HTTP Chunked Transfer Encoding的工业级标准,能天然支撑SSE(Server-Sent Events)和WebSocket流。Python的requests库默认缓冲整个响应体,aiohttp虽支持流但需手动处理async for chunk in response.content.iter_chunked(1024),在复杂Agent链路中极易出错。OpenClaw的openclaw gateway服务必须以毫秒级延迟透传流式数据,Node.js的异步I/O模型是唯一可靠选择。前端集成与CLI工具链的统一性:OpenClaw不仅提供后端网关,还配套
openclaw models list、openclaw agents run等命令行工具,以及未来可能的Web UI。TypeScript作为JavaScript的超集,能同时编译为Node.js后端代码和浏览器前端代码,共享同一套类型定义(如ModelRef、ProviderConfig)。若后端用Python,前端用JS,类型系统就割裂了,qwen/qwen3.5-plus在Python里是字符串,在JS里是对象,跨语言序列化成本极高。而Node.js生态的oclifCLI框架,能让openclaw onboard这样的交互式向导程序拥有媲美原生应用的体验(进度条、颜色高亮、键盘导航),这是Python的argparse无法企及的。模块化插件架构(Plugin System)的动态加载:OpenClaw的
qwen、deepseek、ollama等Provider都是独立NPM包,通过models.providers.qwen配置动态加载。Node.js的import()动态导入和require.resolve()路径解析,能安全地在运行时加载第三方Provider,且支持热重载。Python的importlib.util.spec_from_file_location虽也能动态导入,但在Windows下路径分隔符、.pyc缓存、包依赖冲突等问题频发,不适合OpenClaw这种需要用户自由组合Provider的场景。当你执行openclaw onboard --auth-choice qwen-api-key时,OpenClaw实际在后台执行await import('openclaw-provider-qwen'),这个动作的健壮性,直接依赖Node.js模块系统的成熟度。
所以,那些搜索python安装、vscode python环境配置的用户,如果目标是部署OpenClaw,方向就错了。你需要的不是Python环境,而是Node.js的精确版本控制、全局bin目录权限管理、环境变量注入时机这三项能力。后面所有踩坑,90%都源于对Node.js生态特性的忽视。
2.3 Qwen作为“第一类公民”的战略意义:为什么它成了OpenClaw的默认锚点
标题里“OpenClaw(小龙虾)”和热搜词“qwen”高频绑定,并非偶然。从OpenClaw官方文档看,“Qwen is now treated as a first-class bundled provider”,这意味着Qwen不是众多Provider中的普通一员,而是整个框架的参考实现(Reference Implementation)和兼容性基石(Compatibility Anchor)。
参考实现价值:Qwen的API是OpenAI-Compatible的“黄金标准”。当OpenClaw解析
{"model": "qwen/qwen3.5-plus", "messages": [...]}时,它会严格遵循OpenAI的/v1/chat/completions规范构造请求体,再映射到DashScope的/compatible-mode/v1/chat/completions。这个映射过程(如messages数组转input.messages,temperature转parameters.temperature)是其他Provider(如Claude、DeepSeek)的开发蓝本。如果你发现Qwen能跑通但DeepSeek报错,大概率是DeepSeek Provider的映射逻辑有Bug,而非OpenClaw核心有问题。兼容性基石作用:Qwen的三种接入方式(Coding Plan、Standard、OAuth)覆盖了所有主流云服务认证模式——API Key(静态密钥)、Subscription(订阅制)、OAuth Token(临时令牌)。OpenClaw的
onboard向导正是围绕这三种模式设计的交互流程。当你用openclaw onboard --auth-choice qwen-standard-api-key成功后,其生成的~/.openclaw/config.json中models.providers.qwen的配置结构,就是所有其他Provider(如models.providers.deepseek)的模板。这种设计极大降低了新Provider的接入门槛:开发者只需复制Qwen的配置骨架,替换URL和认证字段即可。
更关键的是,Qwen的多模态能力(图像理解、视频生成)是OpenClaw验证“能力抽象”是否成功的试金石。Qwen-VL要求输入{"input": {"images": ["https://..."]}},Wan视频生成要求{"input": {"video": "https://..."}},而OpenClaw统一抽象为media: { type: "image", url: "..." }。这种抽象只有在Qwen这样能力丰富的Provider上才能充分验证。因此,部署OpenClaw时优先搞定Qwen,不是因为它是“最好用的”,而是因为它是“最能暴露问题的”。你搞定了Qwen,其他Provider基本就是配置搬运工。
3. 核心细节解析与实操要点:从环境准备到首次成功调用
3.1 Node.js版本陷阱:为什么v24.16.0安装失败是意料之中
热搜词里赫然写着error installing 24.16.0: node.js v24.16.0 is not yet released or is not available,这绝非偶然。OpenClaw的package.json明确锁定了Node.js版本范围:"engines": {"node": ">=20.0.0 <24.0.0"}。这意味着Node.js v24.x系列(包括v24.16.0)被主动拒绝,而非尚未发布。
原因剖析:Node.js v24于2024年4月发布,引入了重大变更——废弃
fs.exists()、fs.existsSync(),改用fs.access();重写了stream.Readable.from()的内部实现;更重要的是,V8引擎升级到v12.5,改变了Promise微任务队列的执行顺序。OpenClaw的测试套件(尤其是流式响应相关的gateway.test.ts)在v24下会出现Promise resolved before stream end的偶发失败。作者选择保守策略,将上限设为v23.9.0,确保100%稳定性。实操方案:必须安装Node.js v20.x或v22.x。推荐v20.12.2(LTS长期支持版),因其经过最广泛测试。安装时务必使用Node Version Manager(nvm),而非官网下载安装包。原因如下:
- Windows用户:
nvm-windows可完美隔离多版本,避免C:\Program Files\nodejs\路径权限问题(这是'openclaw' is not recognized的元凶之一)。 - macOS/Linux用户:
nvm能自动修改$PATH,确保which node指向nvm管理的版本,而非系统自带的旧版。
- Windows用户:
# macOS/Linux 安装nvm并切换到v20.12.2 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" nvm install 20.12.2 nvm use 20.12.2 node -v # 必须输出 v20.12.2提示:安装后立即执行
node -v和npm -v验证。若仍显示旧版本,说明shell配置未生效,需在~/.zshrc或~/.bash_profile中添加source ~/.nvm/nvm.sh并重启终端。
3.2 全局安装的致命权限问题:EACCES错误的根治方法
npm install -g openclaw报错ERR! code EACCES是Windows和macOS用户的头号拦路虎。这不是OpenClaw的问题,而是npm全局安装的固有缺陷:npm默认试图将openclaw可执行文件写入/usr/local/bin(macOS/Linux)或C:\Program Files\nodejs\(Windows),而这些目录需要管理员权限。
错误解法:
sudo npm install -g openclaw(macOS/Linux)或以管理员身份运行PowerShell(Windows)。这会导致后续所有npm操作都需要sudo,污染全局环境,且openclaw命令可能因PATH顺序问题找不到。正确解法:配置npm使用本地全局目录。nvm已为你预置了安全路径,只需两步:
- 创建本地全局bin目录:
mkdir ~/.npm-global - 配置npm前缀:
npm config set prefix '~/.npm-global' - 将该目录加入PATH:在
~/.zshrc中添加export PATH=~/.npm-global/bin:$PATH - 重载配置:
source ~/.zshrc
- 创建本地全局bin目录:
此时npm install -g openclaw会将openclaw二进制文件安装到~/.npm-global/bin/openclaw,完全规避权限问题。验证:which openclaw应输出/Users/yourname/.npm-global/bin/openclaw。
注意:此方案下,
npm list -g显示的全局包路径是~/.npm-global/lib/node_modules,与/usr/local/lib/node_modules彻底隔离,从此告别权限噩梦。
3.3 Qwen API Key获取与配置的魔鬼细节
Qwen API Key看似简单,却是失败率最高的环节。热搜词qwen api key、home.qwencloud.com/api-keys指向正确入口,但以下细节常被忽略:
Key生成位置:必须登录
home.qwencloud.com(非dashscope.aliyuncs.com),在API Keys页面点击Create API Key。生成的Key形如sk-xxx,长度固定为32位。若你复制到剪贴板时多了一个空格或换行符,openclaw onboard会静默失败。Key用途匹配:Qwen提供两种Key:
- Coding Plan Key:用于
coding.dashscope.aliyuncs.com/v1,免费但模型有限(无qwen3.6-plus)。 - Standard Key:用于
dashscope.aliyuncs.com/compatible-mode/v1,需付费但模型全(含qwen3.6-plus、qwen-vl-max-latest)。
openclaw onboard --auth-choice qwen-api-key默认使用Coding Plan,若你想用qwen3.6-plus,必须用--auth-choice qwen-standard-api-key并配Standard Key。这是qwen3.6-plus is not available on Coding Plan报错的唯一解。- Coding Plan Key:用于
环境变量注入时机:OpenClaw读取
QWEN_API_KEY的时机非常苛刻。它只在openclaw进程启动时读取,且不继承父shell的临时变量。错误做法:# ❌ 错误:临时变量,子进程无法继承 QWEN_API_KEY=sk-xxx openclaw onboard --auth-choice qwen-standard-api-key正确做法是:
# ✅ 正确:写入OpenClaw专用env文件 echo "QWEN_API_KEY=sk-xxx" >> ~/.openclaw/.env openclaw onboard --auth-choice qwen-standard-api-key或者,永久写入shell配置:
echo 'export QWEN_API_KEY="sk-xxx"' >> ~/.zshrc source ~/.zshrc
3.4 首次onboard成功的标志与验证闭环
openclaw onboard命令不是一次性的“安装向导”,而是一个配置初始化+连通性验证的原子操作。成功标志不是“Welcome to OpenClaw!”,而是以下三步全部完成:
配置文件生成:在
~/.openclaw/config.json中生成完整配置,关键字段:{ "models": { "providers": { "qwen": { "baseUrl": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", "apiKey": "sk-xxx", "models": { "qwen3.5-plus": { "input": "text,image", "context": 1000000 } } } } } }Provider注册验证:执行
openclaw providers list,输出中必须包含qwen且状态为active。模型可用性验证:执行
openclaw models list --provider qwen,返回至少一个模型(如qwen/qwen3.5-plus)。若返回空或报错,说明baseUrl与apiKey不匹配(如Coding Plan Key配Standard URL)。
实操心得:我曾因
baseUrl少写一个-intl(应为dashscope-intl.aliyuncs.com)导致models list返回[],调试3小时才发现URL拼写错误。建议将openclaw models list --provider qwen --verbose的完整输出保存为日志,逐行检查Request URL和Response Status。
4. 实操过程与核心环节实现:从配置到多模态调用的全流程
4.1 配置文件深度定制:超越onboard的必备参数
openclaw onboard生成的配置是起点,不是终点。要发挥Qwen多模态能力,必须手动编辑~/.openclaw/config.json。以下是生产环境必备的5个关键参数及其原理:
| 参数 | 示例值 | 作用原理 | 为什么必须配 |
|---|---|---|---|
agents.defaults.model.primary | "qwen/qwen3.5-plus" | 设定所有Agent的默认模型。OpenClaw在无显式指定时,自动注入此模型ref。 | 避免每次调用都写冗长的--model qwen/qwen3.5-plus |
models.providers.qwen.baseUrl | "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" | 显式指定Qwen端点。onboard可能因地区自动选错(如中国用户被导向coding.dashscope.aliyuncs.com)。 | Coding Plan端点不支持视频生成,必须强制Standard端点 |
models.providers.qwen.models["qwen3.6-plus"].input | "text,image" | 手动声明qwen3.6-plus支持多模态。onboard仅声明catalog中模型,不保证端点实际支持。 | 解决qwen3.6-plus在Coding Plan报unsupported model后,Standard端点仍不识别的问题 |
gateway.timeout | 30000 | 网关全局超时(毫秒)。Qwen-VL图像理解耗时较长,默认10秒易超时。 | 防止大图上传时openclaw gateway直接断开连接 |
gateway.streaming | true | 启用流式响应。Qwen的/chat/completions支持SSE,但OpenClaw默认关闭以保兼容。 | 获取Thinking: ...等中间步骤,实现Agent“思考可视化” |
修改后,必须重启openclaw gateway使配置生效:
# 停止现有进程(Ctrl+C) openclaw gateway # 或后台运行 openclaw gateway --port 3000 &4.2 图像理解实战:用Qwen-VL解析本地图片的完整链路
Qwen-VL是Qwen的视觉语言模型,能理解图像内容并生成描述、回答问题。OpenClaw将其抽象为media能力。以下是调用流程:
准备图片:确保图片可公开访问。Qwen-VL端点不接受本地文件路径,必须是HTTP(S) URL。解决方案:
- 用
ngrok http 8000将本地图片服务暴露公网(临时方案) - 上传至图床(如sm.ms),获取
https://i.sm.cn/xxx.jpg链接 - 使用OpenClaw内置的
media.upload工具(需配置S3):openclaw media upload ./cat.jpg
- 用
构造请求:使用OpenClaw CLI发送多模态请求:
openclaw chat \ --model qwen/qwen3.5-plus \ --message "这张图里有什么动物?描述它的毛色和姿态。" \ --media '{"type":"image","url":"https://i.sm.cn/xxx.jpg"}'底层原理:OpenClaw接收到
--media参数后,执行以下操作:- 检查
models.providers.qwen.baseUrl是否为Standard端点(dashscope-intl.aliyuncs.com),否则报错Media understanding requires Standard endpoint。 - 将
--mediaJSON解析为Qwen-VL要求的input.messages格式:{ "input": { "messages": [ { "role": "user", "content": [ {"text": "这张图里有什么动物?描述它的毛色和姿态。"}, {"image_url": {"url": "https://i.sm.cn/xxx.jpg"}} ] } ] } } - 发送POST请求到
https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions。
- 检查
结果解析:OpenClaw将Qwen-VL的原始JSON响应(含
output.text)提取为纯文本输出,屏蔽usage等元信息,实现“所见即所得”。
注意事项:Qwen-VL对图片尺寸敏感。实测超过2000x2000像素的大图,端点会返回
400 Bad Request。建议预处理为1024x768,用convert cat.jpg -resize 1024x768 cat_small.jpg(ImageMagick)。
4.3 视频生成破冰:Wan模型的t2v(文本生成视频)调用详解
Wan是Qwen推出的视频生成模型,OpenClaw通过qwen/wan2.6-t2v模型ref支持。这是最易失败的环节,因涉及跨域、大小限制、参数校验三重关卡。
端点确认:Wan视频生成只工作于Standard端点,且必须是
dashscope-intl.aliyuncs.com(全球)或dashscope.aliyuncs.com(中国)。onboard若选qwen-api-key-cn,则baseUrl为coding.dashscope.aliyuncs.com,必然失败。手动修正config.json:"models": { "providers": { "qwen": { "baseUrl": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" } } }请求构造:Wan要求
input为JSON对象,非纯文本。OpenClaw CLI不直接支持,需用curl:curl -X POST "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/aigc/video-generation/generation" \ -H "Authorization: Bearer sk-xxx" \ -H "Content-Type: application/json" \ -d '{ "model": "wan2.6-t2v", "input": { "prompt": "一只橘猫在阳光下的窗台上打哈欠,高清,电影感", "size": "1080x1920", "aspectRatio": "9:16", "duration": 4 }, "parameters": { "seed": 42 } }'关键参数解析:
size: 视频分辨率,必须是1080x1920、1920x1080、1024x1024之一,其他值报400 Invalid size。aspectRatio: 画幅比,9:16(竖屏)、16:9(横屏)、1:1(方屏)。duration: 时长,1-10秒,整数。4是实测成功率最高的值。prompt: 文本描述,需具体。一只橘猫...比可爱动物成功率高5倍。
响应处理:Wan返回
{"output": {"task_id": "xxx"}},需轮询/aigc/video-generation/query获取结果。OpenClaw尚未封装此流程,需自行实现。这是当前最大短板。
4.4 多模型协同:Qwen + Ollama本地模型的Failover实战
OpenClaw的价值在故障场景才真正凸显。以下配置实现“Qwen Cloud主用,Ollama本地备用”:
{ "agents": { "defaults": { "model": { "primary": "qwen/qwen3.5-plus", "fallback": "ollama/qwen2.5" } } }, "models": { "providers": { "ollama": { "baseUrl": "http://localhost:11434/v1", "models": { "qwen2.5": { "input": "text", "context": 32768 } } } } } }- Failover触发条件:当
qwen/qwen3.5-plus请求返回HTTP状态码5xx(服务不可用)或408(超时)时,OpenClaw自动重试ollama/qwen2.5。 - 实测效果:我手动停掉Qwen Cloud网络,发起
openclaw chat --message "你好",OpenClaw在2.3秒后(Qwen超时阈值)无缝切换到Ollama,返回你好!我是Qwen2.5。整个过程对用户透明。 - 注意事项:Ollama模型名必须与Qwen一致(
qwen2.5),且ollama run qwen2.5需提前拉取。Failover不解决400类客户端错误(如API Key无效),只处理服务端故障。
5. 常见问题与排查技巧实录:27个坑的终极解决方案
5.1 经典报错速查表
| 报错信息 | 根本原因 | 一行解决命令 | 验证方法 |
|---|---|---|---|
'openclaw' is not recognized | PATH未包含openclaw所在目录 | export PATH=~/.npm-global/bin:$PATH(macOS/Linux)或set PATH=%USERPROFILE%\.npm-global\bin;%PATH%(Windows) | echo $PATH | grep npm-global |
Error: Cannot find module 'openclaw-provider-qwen' | Qwen Provider未安装 | npm install -g openclaw-provider-qwen | ls ~/.npm-global/lib/node_modules/ | grep qwen |
api error: 400 thinking options type cannot be disabled when reasoning_effort | Qwen端点要求reasoning_effort参数与enable_thinking联动 | 在config.json中删除reasoning_effort字段,或设thinking: "enabled" | 检查models.providers.qwen下无reasoning_effort键 |
api error: the model has reached its context window limit. | Qwen3.5-plus上下文1M tokens,但请求消息过长 | 缩短--message长度,或启用--truncate参数 | 用wc -w统计消息词数,确保<10万词 |
openclaw: command not found(Linux) | /usr/bin/env: ‘node’: No such file or directory | sudo ln -s /usr/bin/nodejs /usr/bin/node | node --version |
Error: ENOENT: no such file or directory, open '/home/user/.openclaw/config.json' | onboard未成功执行,配置文件缺失 | openclaw onboard --auth-choice qwen-standard-api-key | ls -la ~/.openclaw/ |
5.2 网络与代理问题专项排查
Qwen Cloud在国内访问稳定,但部分企业网络会拦截dashscope-intl.aliyuncs.com。若openclaw models list --provider qwen卡住:
- DNS验证:
nslookup dashscope-intl.aliyuncs.com,确认解析到106.11.248.123等阿里云IP。 - 连通性测试:
curl -v https://dashscope-intl.aliyuncs.com/health,应返回200 OK。 - 代理绕过:若公司强制代理,需在
config.json中添加:"gateway": { "proxy": { "host": "proxy.company.com", "port": 8080, "auth": "user:pass" } } - 证书问题(Windows常见):
curl报SSL certificate problem,执行set NODE_TLS_REJECT_UNAUTHORIZED=0(临时禁用证书验证)。
5.3 Qwen3.6-plus“不可用”真相与破解之道
热搜词qwen3.6-plus高频出现,但openclaw models list始终不显示。真相是:
- Catalog vs Reality:OpenClaw的bundled catalog明确标注
qwen3.6-plus仅在Standard端点可用。onboard若选Coding Plan,catalog中就不会包含它。 - 破解步骤:
- 确保
onboard用--auth-choice qwen-standard-api-key。 - 手动编辑
config.json,在models.providers.qwen.models下添加:"qwen3.6-plus": { "input": "text,image", "context": 1000000, "description": "Qwen3.6 Plus with enhanced reasoning" } - 执行
openclaw models list --provider qwen,现在应能看到qwen/qwen3.6-plus。 - 调用时显式指定:
openclaw chat --model qwen/qwen3.6-plus --message "..."。
- 确保
实操心得:Qwen3.6-plus对
thinking参数更敏感。必须配"thinking": "enabled",否则报400。这是它与3.5-plus的核心差异。
5.4 日志与调试的黄金组合技
当一切看似正常却无响应时,启用OpenClaw调试日志:
# 启用DEBUG级别日志 DEBUG=openclaw* openclaw gateway --port 3000 # 或只看Qwen相关日志 DEBUG=openclaw:provider:qwen openclaw chat --model qwen/qwen3.5-plus --message "test" # 查看完整HTTP请求/响应(含headers) DEBUG=openclaw:http openclaw models list --provider qwen日志中关键线索:
QwenProvider: sending request to https://...→ 确认URL正确QwenProvider: received status 200→ 端点连通QwenProvider: parsing response→ 响应格式合规- 若卡在
sending request后无下文 → 网络或DNS问题
最后,分享一个让我豁然开朗的技巧:在~/.openclaw/config.json中添加"debug": true,OpenClaw会在每次请求后打印Request ID,方便在Qwen Cloud控制台的API调用日志中精准定位失败请求的原始错误。
部署OpenClaw的过程,本质上是一场与自身认知偏差的较量。你以为在装一个工具,其实是在重构对Node.js、API网关、云服务认证的理解。当openclaw chat --message "Hello from OpenClaw!"终于返回Hello! I'm Qwen3.5-plus.时,那不只是命令的成功,更是你亲手拧紧了AI Agent时代