接入格式 — 自动探测 + 专家可覆盖

配套 plan:2026-06-06-wire-protocol-onboarding-fix.md(评审后定稿)。核心转向:不让非专家选协议。点「测试连接」时主进程按 Chat→Responses→Anthropic 自动探测,替用户选对并显式告知。选择器默认收起,仅专家展开或测试失败时露出(逃生口)。

为什么改向:真实用户(买中转 key 的视频创作者)反馈「这三个词一个不认识,我不想选,想让它告诉我它替我选对了」。让非专家声明 wire protocol = 让用户干系统的活,违反 P4 通用第一。改为系统探测 + 专家覆盖。
状态 A — 具名预设「foxcode codex」(协议内置,无选择器)
供应商
选一个自动填地址;中转站选「自定义」粘贴地址
OpenAIClaudeGemini foxcode codex OpenRouterSiliconFlowKimi 智谱 GLMDeepSeek火山 / Doubao 阿里百炼Groq自定义 / 中转站
接入地址已自动填好 · Responses 协议/responses自定义
你的 API Key
sk-...
模型
输入模型 id 回车,或先拉取可用模型
测试连接保存
预设路径:foxcode 预设内置 providerKind=openai-responses。用户选名字即用,协议术语 0 暴露。
供应商
选一个自动填地址;中转站选「自定义」粘贴地址
OpenAIClaudefoxcode codex 自定义 / 中转站
接入地址(BaseURL)
到 /v1 为止
https://your-relay.com/v1
你的 API Key
sk-...
模型
输入模型 id 回车,或先拉取可用模型
接口协议:保存时自动探测 · 手动指定
测试连接保存
状态 B — 自定义默认:选择器收起。90% 用户不碰协议,点测试即由后台探测。术语藏在「手动指定」后。
状态 C — 点了「测试连接」后
供应商 · 自定义 / 中转站
接入地址(BaseURL)
https://api.fox-code.com/v1
你的 API Key
sk-fox-••••••••
模型
gpt-5-codex
接口协议:保存时自动探测 · 手动指定
✓ 已连上 · 用的是 Responses 协议 保存
探测成功:后台试 Chat→404→试 Responses→200。绿勾告诉用户系统替他选对了,保存即用该协议。这就是真实用户要的「告诉我它替我选对了」。
供应商 · 自定义 / 中转站
接入地址(BaseURL)
https://api.weird-relay.com/v1
你的 API Key
sk-••••••••
模型
some-model
接口协议
不确定就留给自动探测;codex 类中转选 Responses;Claude 官转选 Anthropic
Chat CompletionsResponsesAnthropic
✕ 连不上:HTTP 404。可在上方「接口协议」手动指定再试 保存
状态 D — 探测全失败:三协议都没通 → 覆盖区自动展开,错误指路换协议(不只甩红字)。专家可强制指定再试,或「改回自动探测」。
对账锚点(实现必须逐项对上)

· 默认不露选择器:custom 路径只显示「接口协议:保存时自动探测 · 手动指定」一行(OnboardingWizard 的 showKindOverride=false 分支)。
· 探测在主进程:测试连接按 chat→responses→anthropic 探测,返回 detectedKind,绿勾显示「用的是 X 协议」(main.ts probeOneProtocol + auto-probe handler)。
· 失败展开逃生口:测试失败 → showKindOverride=true,露出 SegmentedControl + 指路文案。
· 专家覆盖:手选协议 → kindForced=true,测试强制走该协议、BaseURL 输入不再 hostname 覆盖;「改回自动探测」复位。
· 具名预设无选择器:foxcode 等预设内置 providerKind,presetId!=='custom' 不渲染协议区。
· 根因:UI 只是露出口;真正修的是删掉 main.ts 3 处吞掉第 3 值的 clamp + 全链路走 normalizeProviderKind,否则探测出 Responses 也会被静默降级。