近期在 Termux 环境下使用更新后的 OpenClaw (版本 2026.4.24) 配置 DeepSeek v4 Flash 模型时,遇到了思考模式失效、配置频繁回滚等一系列问题。本文将详细复盘这些故障的表现、深层原因以及最终的正确配置方案,供各位开发者参考。
在初步配置并切换模型后,系统主要表现出以下 4 个异常:
- 思考模式(Reasoning)失效: 即使主动将模型切换至 deepseek-v4-flash,Session 状态始终固执地显示 Think: off,无法开启深度思考功能。
- 配置疯狂回滚: 尝试手动修改 openclaw.json 后,Gateway 频繁抛出 reload-invalid-config 错误,并强行将配置还原到历史版本。
- 默认模型不生效: 尽管在全局配置中明确设定了 primary: deepseek-v4-flash,新建 Session 却依然默认加载旧的 Qwen 3.6 Flash 模型。
- Gateway 重启受限: 由于是在 Android 的 Termux 环境下运行,系统缺乏 systemd 支持,导致标准的 Graceful Restart 命令失效。
通过查阅 Gateway 目录下的 config-audit.jsonl 日志,并在 thinking-C1TCb8El.js 中翻阅 OpenClaw 源码,定位到了以下三个根本原因:
- 配置源双重定义引发合并冲突(最严重): OpenClaw 同时存在全局配置 openclaw.json 和代理级配置 models.json。两份文件都定义了 custom-api-deepseek-com Provider 且存在结构差异。在开启 “merge” 模式后,Gateway 热加载合并时触发了校验失败,从而不断生成 .clobbered 文件并回滚到最后有效哈希值的版本。
- Thinking 模式依赖 Catalog 声明: 源码明确显示,思考模式的默认状态由模型 Catalog(即 models.providers..models[].reasoning)的参数决定。只有在 Catalog 级别将其设为 true,思考级别才会默认开启(设为 “low”)。直接在 agents.defaults.models 进行 Per-Model 覆盖是无效的。
- 会话轨迹惯性: 当前 Session 一直使用 Qwen 是因为其在创建时就绑定了 Qwen(单会话调用高达 82 次),并非 DeepSeek 的 API 出现异常导致的 Fallback 降级(实测 DeepSeek API 响应 200,且支持 reasoning 字段)。
为了彻底解决热加载冲突和能力声明缺失,需要对配置进行精简和精准修改:
- 确立单一配置源: 直接删除代理级别的冗余配置文件 rm /data/data/com.termux/files/home/.openclaw/agents/main/agent/models.json。将其独有的 Provider(如 codex)直接合并到 openclaw.json 中。
- 正确开启 Reasoning 标志: 打开 openclaw.json,在 Catalog 层级找到 deepseek-v4-flash 模型,将其 “reasoning” 字段从 false 修改为 true。
- 清理冗余配置与缓存: 删掉 agents.defaults.models 中不必要的别名覆盖块。同时,清理掉目录下所有的 .bak、.clobbered 以及 .last-good 历史冲突文件,防止旧状态干扰 Gateway 解析。
- 手动进程重启: 针对 Termux 无 systemd 的限制,使用 kill $(pgrep -f openclaw) 暴力结束当前进程,让 Gateway 自动重启以加载纯净的新配置。
- 拒绝配置多头管理: 尽量只维护单一的 openclaw.json。双重定义在 merge 模式下极易触发配置校验失败的死循环。
- 理解配置层级: 想要控制模型的基础能力(如思考模式),必须去修改底层的 Catalog 声明;Agent 级别的 Override 主要用于别名设置,不能越权定义模型能力。
- 源码是最好的说明书: 遇到诡异的默认行为(如死活打不开的 Think 模式),直接搜索 OpenClaw 前端打包文件中的相关逻辑函数,比盲目改配置试错要高效得多。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/282867.html