必须手动修正OpenClaw配置文件中的模型地址、协议类型和上下文参数,确保指向本地千问3.5-9B服务;先验证API可用性,再备份并修改openclaw.json,设provider为Custom、baseUrl含/v1、apiKey非空、defaultModel为qwen-local/qwen3.5-9b、modelLoading为lazy,最后用openclaw status和openclaw chat验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Mac上让OpenClaw真正调用你本地跑起来的千问3.5-9B模型,而不是默认连云端Qwen Portal或OpenAI,必须手动修正配置文件中的模型地址、协议类型和上下文参数——错一个字段,OpenClaw就会静默降级到备用模型,甚至卡在“loading model”状态不报错。
确认千问服务已就绪并可访问
先别急着改配置。打开终端,执行:
curl -s http://localhost:8000/v1/models | jq '.'
如果返回空或connection refused,说明千问API服务没跑起来。常见原因:LM Studio没点“Start Server”,或Ollama没用ollama serve启动后台服务。这一步跳过,后续所有配置都白搭。
如果你用的是LM Studio,默认端口是1234;Ollama默认是11434;手动部署Transformers API则常设8000。请用对应端口重试curl命令,确保返回包含"qwen3.5-9b"或类似model id的JSON对象。
定位并备份原始配置文件
执行以下命令直接打开配置目录:
open ~/.openclaw
找到openclaw.json文件。在修改前,务必右键→“复制”,然后粘贴一份命名为openclaw.json.bak。这一步不能省——v2026.3.31版本一旦配置格式错误,OpenClaw会拒绝启动,且不提示具体哪一行出错。
【千万勿直接编辑~/.openclaw/openclaw.json而无备份】
修改模型提供商为Custom并填入本地参数
用TextEdit或VS Code打开openclaw.json,找到"models" → "providers"节点。删除原有Qwen或OpenAI区块,替换为以下结构(注意缩进与逗号):
{
"qwen-local": {
"baseUrl": "http://localhost:8000/v1",
"apiKey": "sk-xxx",
"api": "openai-completions",
"models": [
{
"id": "qwen3.5-9b",
"name": "千问3.5-9B本地版",
"contextWindow": 8192,
"maxTokens": 2048
}
]
}
}
apiKey字段可填任意非空字符串(如"sk-xxx"),因为本地API通常不校验密钥;但留空会导致OpenClaw误判为无效provider而跳过加载。
baseUrl必须带/v1后缀,否则请求会404;若你用LM Studio,此处应改为http://localhost:1234/v1;Ollama则为http://localhost:11434/v1。
设置默认模型并启用延迟加载
继续在同一个文件中,找到"defaultModel"字段,将其值改为:
"qwen-local/qwen3.5-9b"
再找到"modelLoading"字段(若不存在则手动添加),设为:
"lazy"
这个设置很关键:lazy模式下OpenClaw启动时不预加载模型,而是首次请求时才连接本地API。实测发现,若设为eager,M1 Mac在模型未就绪时会卡死60秒后超时退出,而lazy模式能立即响应错误提示。
验证配置是否生效
保存文件,关闭所有终端窗口,重新打开一个干净终端,执行:
openclaw status
观察输出中是否有类似“Provider: qwen-local | Model: qwen3.5-9b | Status: ready”的行。若有,说明接入成功;若显示“fallback to qwen-portal”,说明baseUrl写错或端口不通。
最后运行一次真实推理测试:
openclaw chat --message "你好,请用中文回答,只说三个字"
如果返回“你好呀”之类本地模型生成的内容,而非“Hello world”等英文回复,证明千问3.5-9B已接管全部对话流。

















