开启左侧

OpenClaw 模型更换实战指南:从 DeepSeek 到 Kimi 再到 GLM-5 的真实记录

[复制链接]
米落枫 发表于 昨天 23:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:Bruce_xiaowei
OpenClaw 模型更换实战指南:从 DeepSeek 到 Kimi 再到 GLM-5 的真实记录

本文基于我在 macOS 上通过 Docker 部署 OpenClaw 的真实经历撰写,记录了多次更换模型的完整过程,包括遇到的坑和解决方案。无论你是想换用更新的模型,还是切换不同的提供商,这篇文章都能帮你少走弯路。
引言

OpenClaw 作为一个强大的 AI 智能体框架,支持多种模型提供商(如硅基流动、智谱官方、OpenAI 兼容等)。在实际使用中,我们可能因为模型性能、成本或新模型发布而需要更换默认模型。然而,直接修改配置往往不够,因为 OpenClaw 的模型管理涉及配置文件结构、权限、安全策略等多方面因素。本文将以我最近将默认模型从硅基流动的 DeepSeek-V3 切换为智谱 GLM-5 的过程为例,详细拆解每一步操作,并附上真实遇到问题的解决方法。
第一步:准备工作

在动手更换模型前,建议先确认当前环境,并做好备份。
1.1 查看当前版本和模型列表

进入容器(注意:以下命令均在宿主机执行,除非特别说明):
  1. # 查看 OpenClaw 版本dockerexec openclaw openclaw --version
  2. dockerexec openclaw openclaw --version
  3. 2026.2.26
  4. # 列出当前可用的模型dockerexec openclaw openclaw models list
  5. dockerexec openclaw openclaw models list
  6. Model                                      Input      Ctx      Local Auth  Tags
  7. siliconflow/GLM-5                          text       195k     no    no    default,configured
  8. siliconflow/deepseek-ai/DeepSeek-V3        text       195k     no    no    configured
  9. siliconflow/Pro/moonshotai/Kimi-K2.5       text       195k     no    no    configured
复制代码
记录当前默认模型(通常是标记为 default 的那个):
  1. dockerexec openclaw openclaw config get agents.defaults.model
复制代码
  1. docker exec openclaw openclaw config get agents.defaults.model
  2. {
  3.   "primary": "siliconflow/GLM-5"
  4. }
复制代码
OpenClaw 模型更换实战指南:从 DeepSeek 到 Kimi 再到 GLM-5 的真实记录-1.jpg


1.2 备份配置文件

配置文件位于数据卷 openclaw-data 下的 /data/config.json。建议将其备份到宿主机:
  1. docker run -it --rm -v openclaw-data:/data --entrypoint cat sgccr.ccs.tencentyun.com/openclaw/openclaw:latest /data/config.json > ~/openclaw-config-backup-$(date +%Y%m%d).json
复制代码
1.3 确保容器正常运行

如果容器当前未运行,先启动:
  1. docker start openclaw
  2. docker logs openclaw --tail 20# 确认无错误
复制代码
第二步:获取新模型信息

无论你选择哪个新模型,都需要明确以下三点:
    提供商 ID:例如 siliconflow(硅基流动)、zhipu(智谱官方)、openai 等。API 基础地址:例如硅基流动为 https://api.siliconflow.cn/v1,智谱官方为 https://open.bigmodel.cn/api/paas/v4。模型 ID:必须与提供商平台上的 ID 一致。例如硅基流动上 GLM-5 的 ID 为 GLM-5,智谱官方上可能为 glm-5。
查找方法
    如果是通过硅基流动使用,可登录 硅基流动控制台,在“模型广场”找到目标模型的 ID。如果是智谱官方,参考其文档或平台上的模型名称。
第三步:添加新模型到 OpenClaw

添加模型有两种方式:手动编辑配置通过向导添加。根据我的经验,手动编辑更灵活,不易出错,尤其当你要将模型加入已有提供商时。
3.1 手动添加模型(推荐)

假设你要将 GLM-5 添加到现有的 siliconflow 提供商中(共用同一套 API 密钥和基础地址)。
    进入容器(以 root 用户,便于后续修改权限):
    1. dockerexec -it --user root openclaw sh
    复制代码
    查看当前 siliconflow 的配置(确认已有模型列表):
    1. openclaw config get models.providers.siliconflow
    复制代码
    输出类似:
    1. {{"id":"siliconflow/GLM-5","name":"GLM-5","api":"openai-completions","reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":205000,"maxTokens":131072}]}
    复制代码
  • 更新 models 数组,追加新模型。将原配置的 models 列表复制出来,加上新模型的对象,然后用 openclaw config set 写回。例如添加 GLM-5(注意模型 ID 为 siliconflow/GLM-5):
    1. openclaw config set'models.providers.siliconflow.models' --json '[
    2.   {
    3.     "id": "siliconflow/deepseek-ai/DeepSeek-V3",
    4.     "name": "DeepSeek V3",
    5.     "input": ["text"],
    6.     "contextWindow": 200000,
    7.     "maxTokens": 8192,
    8.     "api": "openai-completions"
    9.   },
    10.   {
    11.     "id": "siliconflow/Qwen/Qwen2.5-72B-Instruct",
    12.     "name": "Qwen 2.5 72B",
    13.     "input": ["text"],
    14.     "contextWindow": 200000,
    15.     "maxTokens": 8192,
    16.     "api": "openai-completions"
    17.   },
    18.   {
    19.     "id": "siliconflow/Pro/moonshotai/Kimi-K2.5",
    20.     "name": "Kimi K2.5",
    21.     "input": ["text", "image"],
    22.     "contextWindow": 262000,
    23.     "maxTokens": 262000,
    24.     "api": "openai-completions"
    25.   },
    26.   {
    27.     "id": "siliconflow/GLM-5",
    28.     "name": "GLM-5",
    29.     "input": ["text"],
    30.     "contextWindow": 205000,
    31.     "maxTokens": 131072,
    32.     "api": "openai-completions"
    33.   }
    34. ]'
    复制代码
    注意:这里的 contextWindow 和 maxTokens 可根据模型文档填写,即使不精确也不影响基本使用。
    验证模型是否成功添加
    1. openclaw models list
    复制代码
    应该能看到新模型出现,例如 siliconflow/GLM-5。
3.2 通过向导添加(适合新提供商)

如果你想添加一个全新的提供商(例如直接使用智谱官方 API),可以运行:
  1. openclaw models auth add
复制代码
按提示输入:
    Token provider:选择 custom 或 OpenAI-compatible。Provider id:输入标识符,如 zhipu。Base URL:输入对应 API 地址。API Key:粘贴你的密钥。Default model:输入模型 ID(如 glm-5)。
添加后,模型会出现在列表中,但需要留意:新提供商的模型 ID 格式为 <provider-id>/<model-id>,例如 zhipu/glm-5。
第四步:切换默认模型

添加完成后,将默认模型指向新模型:
  1. openclaw models set siliconflow/GLM-5   # 如果添加到了硅基流动# 或
  2. openclaw models set zhipu/glm-5          # 如果是独立提供商
复制代码
验证默认模型已更改:
  1. openclaw config get agents.defaults.model
复制代码
应输出 { "primary": "siliconflow/GLM-5" } 或类似。
第五步:重启容器并测试

5.1 重启 OpenClaw
  1. exit# 退出容器docker restart openclaw
复制代码
5.2 查看启动日志,确认新模型加载
  1. docker logs openclaw --tail 20|grep"agent model"
复制代码
应显示 [gateway] agent model: siliconflow/GLM-5。
5.3 在 UI 中测试

打开浏览器访问 http://localhost:18789,进入 Chat 界面发送消息,观察是否正常回复。
第六步:常见问题与解决方案(真实踩坑记录)

6.1 更新模型后容器无法启动,报错 “non-loopback Control UI requires gateway.controlUi.allowedOrigins”

原因:新版 OpenClaw 加强了安全策略,当通过局域网 IP 访问时,需要明确配置允许的来源。
解决
  1. dockerexec -it openclaw openclaw config set gateway.controlUi.allowedOrigins '["http://localhost:18789", "http://127.0.0.1:18789", "http://你的局域网IP:18789"]' --json
  2. docker restart openclaw
复制代码
6.2 配置文件权限错误(EACCES)

现象:容器启动日志提示 EACCES: permission denied, open '/data/config.json'。
原因:之前以 root 用户修改过文件,导致文件所有者变为 root,而 OpenClaw 进程以 UID 10001 运行。
解决
  1. # 以 root 身份进入临时容器修复权限docker run -it --rm -v openclaw-data:/data --user root --entrypoint sh sgccr.ccs.tencentyun.com/openclaw/openclaw:latest -c "chown 10001:10001 /data/config.json && chmod 644 /data/config.json"
复制代码
然后重启原容器。
6.3 添加模型时提示 “Config validation failed: models.providers.siliconflow.models: expected array”

原因:手动设置时 JSON 格式不正确,或遗漏了 models 数组。
解决:严格按照已有配置的结构编写,确保 models 是数组,且每个元素包含必要字段(如 id、name、input、contextWindow、maxTokens)。
6.4 模型调用时返回 500 或 “API rate limit reached”

原因
    提供商账户余额不足或免费额度耗尽。API 密钥无效或权限不足。
    解决:登录对应平台检查余额和密钥状态。更换有效密钥并更新配置:
    1. dockerexec openclaw openclaw config set models.providers.siliconflow.apiKey "新密钥"docker restart openclaw
    复制代码
6.5 升级 OpenClaw 时因 SSH 客户端缺失失败

现象:执行 openclaw update 报错 ssh: not found。
原因:某个依赖包通过 SSH 协议从 GitHub 拉取,容器内缺少 SSH 客户端。
解决
  1. dockerexec -it --user root openclaw shapt update &&aptinstall -y openssh-client git
  2. ssh-keyscan github.com >> ~/.ssh/known_hosts
  3. openclaw update
复制代码
更新后重启容器。
6.6 安全提醒:密钥泄露风险

在配置过程中,API 密钥可能通过命令行历史、日志或屏幕截图泄露。务必:
    定期更换密钥。使用 openclaw config set 而非直接编辑 JSON 文件。备份后删除含密钥的终端历史。
结语

更换 OpenClaw 的默认模型并不复杂,但涉及配置文件、权限、安全策略等多个细节。通过本文的步骤,你应该能够顺利地将模型切换到心仪的新版本。记住,每一次操作前备份配置、操作后验证日志,是避免问题的关键。
如果你在更换模型时遇到其他未列出的问题,欢迎查阅官方文档或在社区中提问。祝你在 OpenClaw 的世界里玩得开心!




原文地址:https://blog.csdn.net/weixin_41905135/article/details/158461160
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )