小米 MiMo Desktop 接入 OpenCode Go 套餐报错解决方案
问题描述
在使用小米 MiMo Desktop 桌面应用配置 OpenCode Go(https://opencode.ai/zen/go/v1)作为 LLM Provider 时,发送请求会报错:
Request is missing x-opencode-session and cannot be routed efficiently. Please see https://opencode.ai/docs/go/#where-can-i-use-it
问题原因
OpenCode Go 的 API 网关要求客户端在所有请求中包含 x-opencode-session 请求头,用于路由和优化。小米 MiMo Desktop 的配置中默认没有添加这个请求头,导致请求被拒绝(HTTP 400 错误)。
解决方案
通过修改 MiMo Desktop 的配置文件,手动添加 x-opencode-session 请求头。
详细步骤
步骤 1:定位配置文件
MiMo Desktop 的配置文件位于以下路径:
C:\Users\<你的用户名>\.config\mimocode\mimocode.jsonc
例如(请替换为你的实际用户名):
C:\Users\YourName\.config\mimocode\mimocode.jsonc
步骤 2:备份配置文件
修改前建议先备份,以防万一:
copy "C:\Users\YourName\.config\mimocode\mimocode.jsonc" "C:\Users\YourName\.config\mimocode\mimocode.jsonc.bak"
步骤 3:编辑配置文件
用文本编辑器(如 VS Code、Notepad++)打开 mimocode.jsonc 文件,找到 provider 下的 opencodego 配置段。
在 options 字段中添加 headers 配置:
{
"$schema": "https://mimo.xiaomi.com/mimocode/config.json",
"provider": {
"opencodego": {
"npm": "@ai-sdk/openai-compatible",
"models": {
// ... 你的模型配置 ...
},
"options": {
"apiKey": "sk-YOUR_API_KEY",
"baseURL": "https://opencode.ai/zen/go/v1",
// ⬇️ 新增以下 headers 配置
"headers": {
"x-opencode-session": "xiaomi-session"
}
}
}
}
}
步骤 4:保存并重启应用
- 保存配置文件
- 完全退出小米 MiMo Desktop(右键托盘图标 → 退出)
- 重新启动小米 MiMo Desktop
步骤 5:验证
在 MiMo Desktop 中新建一个会话,选择 opencodego 提供的模型(如 deepseek-v4.1-flash),发送一条消息测试是否正常响应。
配置文件完整示例
{
"$schema": "https://mimo.xiaomi.com/mimocode/config.json",
"provider": {
"opencodego": {
"npm": "@ai-sdk/openai-compatible",
"models": {
"deepseek-v4.1-flash": {
"name": "DeepSeek V4.1 Flash",
"limit": {
"context": 1000000,
"output": 384000
},
"modalities": {
"input": ["text", "image"],
"output": ["text"]
}
},
"mimo-v2.6-flash": {
"name": "MiMo-V2.6-Flash",
"limit": {
"context": 1048576,
"output": 131072
},
"modalities": {
"input": ["text", "image", "audio", "video", "pdf"],
"output": ["text"]
}
},
"mimo-v2.5": {
"name": "MiMo-V2.5",
"limit": {
"context": 1048576,
"output": 131072
},
"modalities": {
"input": ["text", "image", "audio", "video"],
"output": ["text"]
}
}
},
"options": {
"apiKey": "sk-YOUR_API_KEY",
"baseURL": "https://opencode.ai/zen/go/v1",
"headers": {
"x-opencode-session": "xiaomi-session"
}
}
}
}
}
注意事项
-
x-opencode-session的值:可以是任意稳定的字符串标识符,例如"xiaomi-session"、"my-session"或 UUID。关键是每次请求都要包含这个头。 -
官方修复:此问题已在小米 MiMo Code 的 GitHub 仓库中被报告(Issue #2317),对应的修复 PR(#2327)正在等待合并。官方修复后,此临时方案可能不再需要。
-
配置文件格式:
mimocode.jsonc支持 JSONC 格式(允许注释),但编辑时仍需注意 JSON 语法,特别是逗号的使用。 -
重启生效:修改配置文件后必须完全退出并重启 MiMo Desktop,仅刷新界面不会生效。
总结
| 项目 | 内容 |
|---|---|
| 错误信息 | Request is missing x-opencode-session and cannot be routed efficiently |
| 原因 | OpenCode Go API 要求 x-opencode-session 请求头 |
| 解决方法 | 在配置文件中添加 headers.x-opencode-session |
| 配置文件路径 | ~/.config/mimocode/mimocode.jsonc |
| 官方状态 | PR #2327 等待合并 |
希望这篇博客能帮助遇到同样问题的开发者!
附:可直接发给 AI 助手的完整 Prompt
如果你不想手动改配置,可以把下面整段 Prompt 复制给任意具备文件读写能力的 AI 编程助手(如 Claude Code、MiMo Code 等),让它自动帮你完成修复:
请你帮我修复「小米 MiMo Desktop 接入 OpenCode Go 后报错」的问题。请严格按以下步骤执行,不要跳步,不要臆造不存在的文件内容。
## 背景
- 系统:Windows
- 应用:小米 MiMo Desktop(底层配置为 mimocode)
- Provider:OpenCode Go
- name: opencodego
- npm: @ai-sdk/openai-compatible
- baseURL: https://opencode.ai/zen/go/v1
- 现象:在 MiMo Desktop 中使用 opencodego 模型发消息时,返回 HTTP 400,错误信息类似:
Request is missing x-opencode-session and cannot be routed efficiently. Please see https://opencode.ai/docs/go/#where-can-i-use-it
- 原因:OpenCode Go 网关要求所有请求携带 `x-opencode-session` 请求头,而当前 MiMo Desktop 的 provider 配置里没有这个 header。
## 目标
在 MiMo Desktop 的配置文件中,为 opencodego provider 的 options 增加 headers 配置,使后续请求带上 `x-opencode-session`,从而消除该 400 错误。
## 操作要求(请务必遵守)
1. **先定位真实配置文件**,候选路径按顺序尝试(以当前 Windows 用户为准):
- `%USERPROFILE%\.config\mimocode\mimocode.jsonc`
- 即类似:`C:\Users\<你的用户名>\.config\mimocode\mimocode.jsonc`
- 如果上述不存在,再找是否有其他 mimocode 配置入口(例如应用内设置导出的路径),但**不要**随便新建一个和现有配置无关的文件。
2. **修改前先完整读取**该配置文件,确认其中确实存在 `provider.opencodego`(或结构上等价的 opencode provider 段)。如果不存在 opencodego 段,停下来告诉我你找到了什么,不要擅自新建一整套 provider。
3. **修改前先备份**:将原文件复制为同目录下的 `mimocode.jsonc.bak`(若已存在同名备份,则复制为 `mimocode.jsonc.bak.时间戳`,避免覆盖旧备份)。
4. **最小改动**:只修改 `provider.opencodego.options`,为其增加/合并 `headers` 字段;不要改动 apiKey、baseURL、models、mcp 等其他无关配置;不要删除已有字段。
5. 该文件是 **JSONC**(允许 `//` 注释),但写入后必须仍是合法 JSONC/JSON:注意逗号、引号、注释位置。
6. **不要向我回显或打印完整的 apiKey / 密钥**;如需确认字段存在,只告诉我「已保留,未改动」即可。
7. 修改完成后:
- 再次读取文件,做一次语法/结构自检(确保 `headers` 挂在正确的 `options` 下);
- 告诉我改了哪一段(可用 diff 摘要,密钥打码);
- 提醒我:必须**完全退出** MiMo Desktop(托盘图标右键退出)再重新启动,仅刷新界面不生效。
## 目标配置结构(示意)
只确保 `options` 内含如下新增字段(其余字段保持原样):
```jsonc
"options": {
"apiKey": "sk-YOUR_API_KEY", // 换成你自己的;示例仅为占位,勿写入真实密钥
"baseURL": "https://opencode.ai/zen/go/v1",
"headers": {
"x-opencode-session": "xiaomi-session"
}
}
说明:
x-opencode-session的值可以是任意稳定字符串,如xiaomi-session、mimo-desktop或一个 UUID;关键是每次请求都带上这个头。- 如果
options里已经有headers对象,请合并写入该键,不要覆盖掉已有 header。 - 如果
headers不存在,新增该对象即可。
验证步骤(改完后引导我做)
- 确认备份文件已生成。
- 确认配置中
provider.opencodego.options.headers["x-opencode-session"]已存在。 - 提示我重启 MiMo Desktop。
- 重启后,让我新建会话,选择 opencodego 下的模型(例如
deepseek-v4.1-flash),随便发一句话。 - 若仍报同样的 missing x-opencode-session:请再次读取磁盘上的配置,确认修改确实落盘、应用读的是不是这份文件,并排查是否改错了 profile/多用户路径。
- 若报其他错误(如 401/404):说明 header 问题已解决,请转而检查 apiKey、baseURL、模型名是否正确。
边界与安全
- 只允许修改上述 mimocode 配置文件及其备份;不要动系统 PATH、注册表、浏览器配置。
- 不要执行任何
git push、上传、联网提交密钥等对外动作。 - 不要删除除本次生成的过期备份以外的任何文件。
- 如果你没有文件写权限,或找不到配置文件,请明确告诉我路径尝试结果和失败原因,而不是假装已修复。
完成后请输出
- 实际修改的文件绝对路径
- 备份文件绝对路径
- 变更摘要(headers 相关,密钥打码)
- 重启 + 验证的操作清单
- 若失败:当前错误信息与你的下一步排查建议
### 使用方法
1. 复制上面代码块中的全部内容;
2. 粘贴给具备本机文件读写能力的 AI 助手;
3. 按助手提示完成备份、改配置、重启和验证。
若你更习惯手动操作,按本文前面的「详细步骤」修改即可,效果相同。