小米 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:保存并重启应用

  1. 保存配置文件
  2. 完全退出小米 MiMo Desktop(右键托盘图标 → 退出)
  3. 重新启动小米 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"
        }
      }
    }
  }
}

注意事项

  1. x-opencode-session 的值:可以是任意稳定的字符串标识符,例如 "xiaomi-session""my-session" 或 UUID。关键是每次请求都要包含这个头。

  2. 官方修复:此问题已在小米 MiMo Code 的 GitHub 仓库中被报告(Issue #2317),对应的修复 PR(#2327)正在等待合并。官方修复后,此临时方案可能不再需要。

  3. 配置文件格式mimocode.jsonc 支持 JSONC 格式(允许注释),但编辑时仍需注意 JSON 语法,特别是逗号的使用。

  4. 重启生效:修改配置文件后必须完全退出并重启 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-sessionmimo-desktop 或一个 UUID;关键是每次请求都带上这个头。
  • 如果 options已经有 headers 对象,请合并写入该键,不要覆盖掉已有 header。
  • 如果 headers 不存在,新增该对象即可。

验证步骤(改完后引导我做)

  1. 确认备份文件已生成。
  2. 确认配置中 provider.opencodego.options.headers["x-opencode-session"] 已存在。
  3. 提示我重启 MiMo Desktop。
  4. 重启后,让我新建会话,选择 opencodego 下的模型(例如 deepseek-v4.1-flash),随便发一句话。
  5. 若仍报同样的 missing x-opencode-session:请再次读取磁盘上的配置,确认修改确实落盘、应用读的是不是这份文件,并排查是否改错了 profile/多用户路径。
  6. 若报其他错误(如 401/404):说明 header 问题已解决,请转而检查 apiKey、baseURL、模型名是否正确。

边界与安全

  • 只允许修改上述 mimocode 配置文件及其备份;不要动系统 PATH、注册表、浏览器配置。
  • 不要执行任何 git push、上传、联网提交密钥等对外动作。
  • 不要删除除本次生成的过期备份以外的任何文件。
  • 如果你没有文件写权限,或找不到配置文件,请明确告诉我路径尝试结果和失败原因,而不是假装已修复。

完成后请输出

  1. 实际修改的文件绝对路径
  2. 备份文件绝对路径
  3. 变更摘要(headers 相关,密钥打码)
  4. 重启 + 验证的操作清单
  5. 若失败:当前错误信息与你的下一步排查建议
### 使用方法

1. 复制上面代码块中的全部内容;
2. 粘贴给具备本机文件读写能力的 AI 助手;
3. 按助手提示完成备份、改配置、重启和验证。

若你更习惯手动操作,按本文前面的「详细步骤」修改即可,效果相同。