2026/10/14
Magpie 接入 VS Code:重启后模型未注册,如何继续原会话
作者声明:包含 AI 创作
这几天一直用 Magpie 把 Codex 的模型接到 VS Code 里。之前同一个会话用得好好的,重启一次电脑之后,再发送消息却报错了:
错误: (modelSelectionFailed)Request session.model.switchTo failed with message:Provider model 'customendpoint/magpie/codex/gpt-6-astra' is not registered模型还能在列表里选到,聊天记录也都在,但原会话就是无法继续。最后通过开启 VS Code 的一个设置,再重启本地 Agent Host,成功恢复了这个会话,没有新建聊天。
把这次处理过程记下来,给遇到相同问题的人参考。以下是 Windows、VS Code 1.140.0 下的实际排查记录,涉及的是 VS Code 的 Copilot CLI / Agent Host 会话。
先说怎么恢复原会话
保持 Magpie 运行,在 VS Code 中按 Ctrl+Shift+P,打开命令面板,执行 Preferences: Open User Settings (JSON),也就是「首选项:打开用户设置(JSON)」。
先备份设置,然后在现有 JSON 的最外层加入这一项:
"chat.agentHost.byokModels.enabled": true这是一条需要合并进去的配置,不是用来覆盖整个文件的。如果已经有同名设置,就检查它的值,避免重复添加。前后有其他设置时,注意逗号。
保存后,再次打开命令面板,执行:
Developer: Restart Local Agent Host即「开发人员:重启本地代理主机」。它会重启本地 Agent 后台;如果还有其他本地 Agent 任务正在执行,先等任务结束。
随后回到原来的会话,确认模型仍然是 Magpie 下对应的模型,重试失败的消息即可。我这次恢复的就是原会话,历史继续保留,不需要为了这个错误重新开一个聊天。
为什么模型能选到,却提示“未注册”?
排查时发现,Magpie 的本地模型接口能列出 codex/gpt-6-astra,VS Code 保存的自定义模型配置里也有它。问题出在模型进入会话后台这一环:界面知道这个模型的名字,实际执行会话的 Copilot 后台却没有注册它。
chat.agentHost.byokModels.enabled 控制的是:是否允许扩展提供的 BYOK 模型在 Agent Host 会话里运行。BYOK 通常指“自带 API Key”,但这里对应的是自定义模型接入能力,我通过 Magpie 提供的模型也走这条路径。
本机安装版本的代码里,这个开关的默认值是 false;修改前,用户设置里没有显式配置这一项。开启它之后,后台可以接收自定义模型信息,但已经运行着的旧会话未必会马上补齐注册状态。我这次在修改设置后仍然报过相同错误,重启 Agent Host、重新恢复原会话之后才解决。
所以,模型出现在下拉列表里,不代表当前会话后台已经准备好使用它。
那为什么重启电脑之前一直能用?
旧记录确认,这个会话之前使用的就是同一个 Magpie 模型,不能把这次故障简单解释成“模型名一直填错了”。
聊天历史、选中的模型名称,以及后台进程里的模型注册状态,是不同的东西。重启电脑后,历史和模型名称可以从磁盘恢复,但新后台仍然需要重新建立模型注册。本次故障时,原会话恢复了,自定义模型却没有成功接入这个后台,于是会话一尝试切换到保存的模型,就提示 not registered。
这个过程与“重启前能用、重启后出错”的现象吻合。不过,旧进程最初通过什么配置或状态完成注册,现有启动日志不足以确定。因此,不能倒推出这个设置以前一直关闭,也不能据此认定是某次升级改变了默认值。
这次做的修复,是把所需开关明确保存为 true,再让原会话在新的后台进程中恢复。
怎么确认恢复的确实是原会话?
修复后的日志里,同一个会话出现了下面的记录。这里仅保留与排查有关的片段,省略会话 ID 和本地地址:
Wired 8 BYOK model(s) across 1 provider(s) via loopback proxy …SDK resumeSession settled: … outcome=successChanging model to: customendpoint/magpie/codex/gpt-6-astra其中,Wired 8 BYOK model(s) 表示后台接入了这台机器配置的 8 个自定义模型,resumeSession 表示恢复已有会话。不同人的模型数量可能不同,重点是模型已经接入,并且原会话恢复成功。之后我在原会话里重试,已经可以继续使用。
如果你遇到的也是 session.model.switchTo 和 Provider model … is not registered,可以先检查这个开关,再重启本地 Agent Host,回到原会话验证。本文针对的是这次模型注册失败;如果报的是 401、403、额度不足或连接失败,就需要按对应的错误继续排查。
记录日期:2026 年 10 月 14 日。依据本机配置、安装版本代码和运行日志整理,具体设置与命令以实际使用的 VS Code 版本为准。
作者声明:包含 AI 创作
评论加载中…