当key输入为limit时,输入框内容会被自动清空 OpenCode
Quick fix
由于 cc-switch 界面将 limit 设为保留字,需直接编辑 opencode.json 文件来手动配置模型的上下文和输出限制。
Symptom
Section titled “Symptom”当key输入为limit时,输入框内容会被自动清空,且界面没有给出明确错误提示在 cc-switch 中编辑 OpenCode 供应商时,由于源码 opencodeFormUtils.ts 将 limit 列入了保留 key,且在 OpenCodeFormFields.tsx 中遇到 limit 会直接 return,导致 GUI 界面不允许用户将其作为模型属性 key 保存。此外,部分用户在编辑供应商时还会遇到“读取OpenCode运行时模型失败,已仅展示已配置供应商模型”的弹窗,这通常也是因为底层模型配置格式异常导致解析失败。
OpenCode 1.4.0 版本加强了对 maxOutputTokens 字段的校验,若自定义模型未配置 limit(包含 context 和 output)则会报错。由于 cc-switch 目前不支持在 GUI 中配置该字段,用户只能通过绕过界面直接修改配置文件来解决。
关闭 cc-switch 和 OpenCode 以避免配置被覆盖。
找到并打开 OpenCode 的配置文件 opencode.json。
在对应的模型配置下,手动添加 limit 属性并设置 context 和 output 的值。
// opencode.json"models": {"gpt-5.4": {"name": "GPT-5.4","limit": {"context": 256000,"output": 64000}}}
Affected Versions
Section titled “Affected Versions”ToolOpenCode
Version1.4.0
PlatformsLinuxWindowsmacOS
Source Issues
Section titled “Source Issues”本页汇总自 3 个真实 issue
- 为什么要给模型配置 limit?
- OpenCode 在 1.4.0 版本加强了对 maxOutputTokens 字段的校验,如果自定义模型没有配置上下文和输出限制(即 limit 字段),运行时就会报错。
- 为什么 cc-switch 当前不允许设置 limit?
- 因为 cc-switch 的源码将 limit 设为了保留 key,在界面输入时会被拦截并清空,目前只能通过直接编辑 JSON 配置文件来绕过此限制。
- 关于界面显示的 OpenCode 版本号为什么和实际不一致?
- 这是预期行为。cc-switch 的本地环境检查读取的是 OpenCode CLI 的版本,而不是 OpenCode Desktop 应用程序的版本。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。