GitHub Copilot CLI 在 1.0.94-0 版本中把本地模型发现直接嵌入了原有交互流程:输入 /model,CLI 会从正在运行的本地 Ollama 实例中发现受支持的模型,并与已配置模型、GitHub Copilot 提供的云端模型并列展示。这个改动的核心价值不在于“多了一个模型来源”,而在于把模型选择收敛到同一个入口,减少在终端、配置文件与外部工具之间来回切换的成本。

发现不等于自动接入

需要明确一个关键边界:发现不会自动添加模型。流程是“发现—选择—确认”。选中一个被发现的模型后,CLI 会展示其 provider 与 endpoint,由开发者确认 Add and use for this session 或 Add without switching。前者添加并立即切换,后者只添加不切换。确认后可在当前会话中直接使用,无需重启 CLI。

这条路径有两个前置条件:Ollama 与目标模型必须已经安装完成。该流程不负责安装运行时,也不负责下载模型。换句话说,CLI 只做发现与接入编排,环境准备仍由开发者自行完成。此外,模型必须支持 tool calling 与 streaming,否则无法满足 Copilot CLI 的交互要求。

失败可见性

provider 连接失败时,错误会直接出现在模型选择器中,并附带说明。这一点在工程上比“静默失败”更有价值:当本地 Ollama 未启动、端口不通或 endpoint 配置错误时,开发者能在选择模型的位置直接定位问题,而不是等到发起请求后才看到超时或连接拒绝。

与现有工作流的集成

从集成角度看,/model 把本地模型纳入了 Copilot CLI 既有的模型选择语义。开发者不需要为本地模型单独维护一套调用习惯,模型来源的差异被收敛到 provider 与 endpoint 两个字段上。这与 GitHub Copilot app 的 provider 体验思路一致:在 app 中通过 Settings > Model providers 添加受支持的 provider,在 CLI 中则通过 /model 完成发现与确认。

对于已经在使用 Copilot CLI 的团队,这意味着本地模型的接入成本主要是环境侧的准备,而不是工作流侧的改造。会话内切换、无需重启,也降低了在“云端模型处理常规任务、本地模型处理特定任务”之间来回切换的摩擦。

离线与内网环境的关键边界

这里有一个容易被误读的点:选择本地模型并不会开启离线模式,也不会关闭 GitHub 遥测。在 CLI 中,离线模式仍然是一个显式选择,通过 COPILOT_OFFLINE=true 开启。

更重要的是,即使在离线模式下,远程 provider 仍可能通过网络接收提示词与代码上下文。这意味着“用了本地模型”与“数据不出内网”不是等价命题。在内网或强合规场景下做选型时,需要分别确认三件事:

  1. 当前会话实际使用的是本地 provider 还是远程 provider;
  2. 离线模式是否已通过 COPILOT_OFFLINE=true 显式开启;
  3. 所选 provider 的 endpoint 是否指向内网地址,而非公网服务。

把这三项分开检查,可以避免把“本地模型发现”误当成“数据本地化”的完整方案。具体的配置方式与限制,应参考 CLI provider 与离线模式文档。

工程选型建议

在离线或内网环境下,建议按以下顺序推进:

  • 先确认 Ollama 与候选模型已就绪,并验证模型支持 tool calling 与 streaming;
  • 通过 /model 发现模型,检查 provider 与 endpoint 是否符合内网预期;
  • 用 Add without switching 先添加、后验证,确认可用后再切换;
  • 显式设置 COPILOT_OFFLINE=true,并单独核查远程 provider 是否仍会收到上下文;
  • 把 provider 连接失败的选择器提示纳入日常排障路径。

官方同时提到正在推进 local models 的 intelligent routing,并建议关注后续可用性公告。在該能力正式可用前,模型选择仍以手动确认为主。

总体来看,/model 的本地模型发现把本地模型接入从“配置任务”变成了“会话内决策”,但它没有改变离线模式与遥测的既有语义。把发现、确认、离线开关与 provider 边界分开理解,才能在内网与离线场景下做出可靠的工程判断。