QClaw使用自定义模型

QClaw 自定义模型配置教程

一开始是按照论坛里大佬分享的方法去改,改完以后当下看似生效,但重启之后还是不行。

后来继续排查,发现问题不只是一个配置文件,而是 用户配置 + 安装目录模板 + 运行态模型文件 三层都会影响结果。

最后让 OpenClaw 继续研究后,确认真正要同时改哪些文件、哪些文件可以设只读、哪些不能设只读,才最终搞定。

1. 修改用户配置文件

C:\Users\你的用户名\.qclaw\openclaw.json

把下面这段:

"agents": {
"defaults": {
"model": {
"primary": "qclaw/modelroute"
},
"workspace": "C:\\Users\\你的用户名\\.qclaw\\workspace",
"maxConcurrent": 3,
"timeoutSeconds": 72000
}
},
"models": {
"mode": "merge",
"providers": {
"qclaw": {
"baseUrl": "${QCLAW_LLM_BASE_URL}",
"apiKey": "${QCLAW_LLM_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "modelroute",
"name": "modelroute"
}
]
}
}
}

替换成:

"agents": {
"defaults": {
"model": {
"primary": "sub2api/gpt-5.4"
},
"workspace": "C:\\Users\\你的用户名\\.qclaw\\workspace",
"maxConcurrent": 3,
"timeoutSeconds": 72000
}
},
"models": {
"mode": "merge",
"providers": {
"qclaw": {
"baseUrl": "${QCLAW_LLM_BASE_URL}",
"apiKey": "${QCLAW_LLM_API_KEY}",
"api": "openai-completions",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
},
"models": [
{
"id": "modelroute",
"name": "modelroute"
}
]
},
"sub2api": {
"baseUrl": "https://你的中转地址/v1",
"apiKey": "${YOUR_API_KEY}",
"api": "openai-responses",
"models": [
{
"id": "gpt-5.4",
"name": "GPT-5.4 (sub2api)",
"input": ["text", "image"],
"contextWindow": 1050000,
"maxTokens": 128000
}
]
}
}
}

2. 修改安装目录模板

D:\QClaw\resources\openclaw\config\openclaw.json

把下面这段:

"agents": {
"defaults": {
"model": {
"primary": "qclaw/modelroute"
},
"workspace": "~/.openclaw/workspace",
"maxConcurrent": 3,
"timeoutSeconds": 72000
}
},
"models": {
"mode": "merge",
"providers": {
"qclaw": {
"baseUrl": "${QCLAW_LLM_BASE_URL}",
"apiKey": "${QCLAW_LLM_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "modelroute",
"name": "modelroute"
}
]
}
}
}

替换成:

"agents": {
"defaults": {
"model": {
"primary": "sub2api/gpt-5.4"
},
"workspace": "~/.openclaw/workspace",
"maxConcurrent": 3,
"timeoutSeconds": 72000
}
},
"models": {
"mode": "merge",
"providers": {
"qclaw": {
"baseUrl": "${QCLAW_LLM_BASE_URL}",
"apiKey": "${QCLAW_LLM_API_KEY}",
"api": "openai-completions",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
},
"models": [
{
"id": "modelroute",
"name": "modelroute"
}
]
},
"sub2api": {
"baseUrl": "https://你的中转地址/v1",
"apiKey": "${YOUR_API_KEY}",
"api": "openai-responses",
"models": [
{
"id": "gpt-5.4",
"name": "GPT-5.4 (sub2api)",
"input": ["text", "image"],
"contextWindow": 1050000,
"maxTokens": 128000
}
]
}
}
}

3. 修改运行态模型文件

C:\Users\你的用户名\.qclaw\agents\main\agent\models.json

找到这段:

{
"id": "modelroute",
"name": "modelroute",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 8192,
"api": "openai-completions"
}

改成:

{
"id": "modelroute",
"name": "modelroute",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 1050000,
"maxTokens": 128000,
"api": "openai-completions"
}

同时确认 providers.qclaw 下有:

"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}

4. 文件只读策略

可以设成只读
C:\Users\你的用户名\.qclaw\openclaw.json

不要设成只读
C:\Users\你的用户名\.qclaw\agents\main\agent\models.json

如果把 models.json 设成只读,QClaw 运行时可能报:

EPERM: operation not permitted, rename
...models.json.tmp -> ...models.json

5. 最后一步

  1. 彻底退出 QClaw
  2. 重新启动 QClaw
  3. 再次检查默认模型和运行态文件是否仍然正确

一句话总结:
这次真正解决问题的关键,不是只改一个 ~/.qclaw/openclaw.json,而是同时处理了
用户配置 + 安装目录模板 + 运行态 models.json
并且把 openclaw.json 设只读、但不锁死 models.json

有时间研究下

我是发给龙虾他自己修改的

感谢分享

感谢大佬。

感谢分享

就是这点很讨厌,虽然说配置是在openclaw.json那里改,但实际上model.json是他真正读的地方