Skip to main content
通过应用界面添加模型,请参阅自定义模型 / BYOK本文供用户的 Agent 配置 MiniMax Code 桌面应用的自定义模型,并通过 curl 确认供应商能够返回真实回复。更新日期:2026-09-16。不同应用版本的配置格式可能有所差异;若实际配置与本文不一致,请先确认当前版本支持的配置方式。

1. 配置前先确认这些信息

供应商支持某个模型,不代表它同时支持三种协议、所有推理档位或所有附件类型。缺少必要连接信息时先向用户补齐,不能猜一个值并宣称配置完成。

2. 找到正确的配置入口

先从桌面应用提供的信息或用户确认的信息中确定当前应用的数据目录。无法确认时先向用户询问,不猜测配置文件位置。macOS 配置文件位于 <dataDir>/config.yaml,Windows 为 <dataDir>\config.yaml,其中 <dataDir> 为实际数据目录。YAML 字段与三种协议的 JSON 请求体在两个平台相同,命令行语法按下文分别使用。自定义安装或启动配置可能改变目录,不能一律假定为 ~/.minimax/config.yaml编辑前读取并备份原文件。只修改目标供应商的配置,保留其他字段、供应商和模型;避免同时在应用中保存设置,不要直接覆盖整份文件。沿用已有密钥时保留原值,不用掩码、空字符串或占位符替换。不要在对话、日志或分享的配置中展示真实密钥和敏感请求头。写入后重新读取文件,检查改动是否正确,并在桌面应用中确认模型可用。若应用没有加载新配置,应在用户允许的时机重启应用再验证,不能仅凭文件落盘判断已生效。

3. 配置文件的正确结构

自定义供应商写在 custom_provider 下。不要写入托管模型的 provider 树,也不要把自定义模型写进 minimax_api以下是一个完整供应商条目的模板,供合并到已有配置中使用。example.invalidREPLACE_WITH_REAL_API_KEYREPLACE_WITH_EXACT_MODEL_ID 都是占位符,不能原样保存为可用配置。320002048 仅用于展示数值字段格式,必须按供应商能力替换。
字段规则:
  • my-gateway 是供应商配置键;新建时使用不冲突的简单键,后续改显示名只改 name。不要使用 minimaxminimax_apiopenai-codexprovidercustom_provider 等保留名称。
  • api 位于供应商层,值必须是本指南列出的协议之一。不要用 openaianthropic 等品牌名代替。
  • baseURL 的大小写固定,并位于 options 内;API Key 也位于 options.apiKey
  • models 是以真实模型 ID 为键的字典,不是数组。模型 ID 可以包含 /,保留供应商给出的完整值。
  • limit.contextlimit.output 是正整数 Token 数,不是 128K1M 等字符串。上下文和最大输出是不同参数。
  • 不要因为模型支持推理,就自动写 highmax 等档位;也不要因为名字像多模态模型,就自动声明图片、视频或 PDF。
  • 需要工具调用时,先确认上游支持;文件字段为模型下的 tool_call: true,并用真实工具请求验证。声明字段不等于供应商已经实现能力。
  • YAML 字符串建议加引号。不要假定 ${API_KEY} 会自动展开;apiKey 中需要填写实际密钥。

三种协议如何配置地址

同一配置模板可用于三种协议,但必须同时替换 api 和相应地址。OpenAI 风格的 /v1 不会凭空补齐,供应商要求 /v1 时需要包含它。Messages 会规范化末尾的 /v1/messages/v1/messages;不要自己反复拼接这些后缀。网关已有的 /proxy/anthropic 等前缀不能随意删除。优先保存供应商文档提供的接口基地址,不使用带临时认证参数的完整生成 URL。连接测试后核对最终 Endpoint;HTTP 404 可能是路径错误,也可能是模型不存在,需结合清理后的错误判断。

自定义请求头

确有需要时,添加到 options.headers
这是对已有 options 的补充,不能替换掉其中的 baseURLapiKey。请求头名称不区分大小写,禁止同时配置 Authorizationauthorization。显式值会覆盖同名协议默认值,因此不要无理由手写 Authorizationx-api-keycontent-type

4. 需要思考档位或附件能力时再添加

确认模型支持推理且供应商接受相应档位后,可在文件中的模型条目下增加:
这只是字段结构示例,三个值并不适用于所有模型。effortOptions 保存可选集合;不要把当前会话选择写成配置中的 thinking.effort。普通自定义模型没有会话覆盖时取集合中间项,偶数取靠后一项。普通非关闭档位通常按协议发送原值:Messages 使用 output_config.effort,Completions 使用 reasoning_effort,Responses 使用 reasoning.effortoffnone 是关闭值,有专门映射,不能假设全部字符串原样透传。某些模型另有适配,不能通过更换供应商显示名改变协议。自定义 MiniMax-M3 如果确认支持二态思考,可配置 effortOptions: ["off", "on"]。注意 YAML 中给 offon 加引号。运行时按以下方式发送:附件能力写在模型的 modalities.input,保留 text,只追加已确认的 imagepdfvideoaudio;输出仍使用 [text]。文本连接测试不会验证附件或工具调用,必须分别验证需要使用的能力。

5. 配置完成后组装 curl,确认模型真实返回

保存后重新读取目标供应商配置,以实际保存的值组装一次生成请求,不使用另一个供应商、另一个模型或临时替换的密钥。不要只请求 /models:模型列表成功不能证明模型能够生成回复。

5.1 从配置提取请求参数

先检查配置语法、供应商与模型的启用状态,确认其他模型没有被误删。随后构造与该配置一致的请求。不要为让测试通过而擅自缩小输出上限、删除自定义 Header 或换一个档位;确需修改时,应修正配置并用保存后的值重测。API Key 默认不含 Bearer 前缀,由认证 Header 添加。默认请求头如下,自定义 Header 按名称大小写无关地覆盖它们;同名项最终只保留一份:

5.2 生成请求体

下面三份是 JSON 模板,Agent 按保存的 api 只选一份。将 REPLACE_WITH_EXACT_MODEL_ID 替换为真实模型 ID,将示例 2048 替换为已保存的 limit.output 正整数。使用 JSON 序列化器生成文件,不把未转义的模型 ID 或其他字符串直接拼进 shell 命令。Anthropic Messages,地址为规范化后的 <base>/v1/messages
OpenAI Chat Completions,地址为规范化后的 <base>/chat/completions
OpenAI Responses,地址为规范化后的 <base>/responses
这些基础模板未加入思考参数。若保存了 effortOptions,应为每个档位分别生成请求体并验证,按第 4 节添加普通档位字段或 M3 on/off 字段。没有档位时不凭空添加。某个档位失败后继续记录其他档位结果,但不能把整组配置报告为全部通过。

5.3 执行 curl

两个平台都使用请求文件传递 JSON,避免命令行引号和中文编码差异。先准备以下内容:
  • 完整 Endpoint,以及按前文规则合并的请求头,每行 名称: 值,名称和值不得包含换行字符。
  • 按第 5.2 节填好的请求体,保存为 UTF-8 无 BOM 的 JSON。
  • 真实密钥只写入本次临时 Header 文件,不写进对话或可分享的命令。
macOS:使用终端的 sh / zsh。先创建仅当前用户可读写的临时目录:
Agent 将合并后的完整请求头写入 $BYOK_CHECK_DIR/headers.txt(每行 名称: 值),将选定并填好的请求体写入 $BYOK_CHECK_DIR/request.json。真实密钥只进入受限的 Header 文件,不写进对话或可分享的命令。Header 名称和值不得包含换行字符。BYOK_URL 设置为从当前配置得到的完整 Endpoint,然后执行:
Windows:使用 Windows PowerShell 5.1 或 PowerShell 7,不使用 cmd。先确认系统提供 curl.exe。以下命令明确调用该程序,避免 Windows PowerShell 的 curl 别名被解释成其他命令:
使用当前用户的临时目录,不使用共享目录。Agent 按实际配置设置 $BYOK_URL,将合并后的 Header 行放入字符串数组 $ByokHeaderLines,将第 5.2 节的请求体构造成 $ByokBody 对象。不要在输出中打印这两个变量。使用下列方式写文件,避免 PowerShell 5.1 的默认重定向编码和 UTF-8 BOM:
用参数数组执行 curl,路径包含空格时也不需要手工拼接引号:
$LASTEXITCODE 必须在 curl 后立即保存。不要用 PowerShell 的 $? 代替 curl 的数值退出码。读取响应时显式指定 UTF-8,再按第 5.4 节检查错误和助手正文:
若 curl 未生成响应文件或 JSON 解析失败,保留对应错误,不按成功处理。读取原始错误时也须先脱敏再展示。不添加 -k 跳过证书校验,不开启 -v 输出认证头,也不自动跟随重定向到另一主机。保留错误响应体供本地分析,展示前清理其中可能包含的密钥、Header 值和认证信息。

5.4 如何判定通过

必须同时满足以下条件,才能报告“该配置已收到真实模型回复”:
  1. BYOK_CURL_EXIT=0,HTTP 状态为 2xx,响应体可解析为 JSON。
  2. 没有上游 error,也没有 base_resp.status_code 非零等业务错误;返回 HTML、空对象或空正文均不算通过。
  3. 在对应协议的助手正文位置找到非空文本,不能只看到请求 ID、usage 或思考内容:
期望回复包含 BYOK_OK。模型返回其他非空正文时,可以确认已收到回复,但应如实记录未按指定文案回答,不伪造成功输出。不要只查 Responses SDK 的 output_text 便利字段,原始 HTTP JSON 通常要从 output 数组提取。同时检查完成状态:Messages 的 stop_reason=max_tokens、Completions 的 finish_reason=length、Responses 的 status=incomplete/failedincomplete_details 表示输出截断或未完成,应记录原因,不能报告完整验证通过。只有思考内容而没有助手正文时,排查输出预算、推理档位和协议适配。多模型、多档位配置应逐项记录结果,不能用一个模型或一个档位成功代表全部成功。超时、429、认证失败等保留原始错误归因;不要自动换托管模型兜底。

5.5 验证后向用户交付什么

报告配置位置、供应商、模型 ID、协议与脱敏 Endpoint、测试档位、HTTP 状态及一小段实际回复;失败时给出清理后的错误和需要修正的配置字段。验证结束后删除本次临时文件,尤其是含真实密钥的 headers.txtcurl 成功证明这组地址、认证、模型和请求参数能够直接从供应商获得回复;仍需在桌面确认配置已加载。它不证明完整 Agent 对话、工具调用或附件能力都可用。只有实际执行了请求并读到正文才报告“已验证”;如果只生成了 curl,明确写“待执行”。保存本身不触发测试,测试缓存也不阻止选择模型,因此不能以“已保存”或“可选择”代替上述真实请求验证。

6. 常见错误及处理

BYOK 请求失败时,应保留所选供应商并返回错误。不要静默改成 Token Plan、托管模型或另一个供应商。也不要通过禁用校验、扩大窗口或改写未知字段掩盖上游错误。