SynapseWire

GitHub Copilot CLI 可偵測本機 Ollama 模型:能做什麼、不代表離線

CLI 1.0.94-0 可以用 /model 發現本機 Ollama。離線仍是 COPILOT_OFFLINE=true,遠端供應商還是收得到提示。

發布於:
窗邊淺橡木桌上,一台闔上的筆電、一個啞光小金屬盒,和一圈灰色電線。
FIG. 01 // 窗邊淺橡木桌上,一台闔上的筆電、一個啞光小金屬盒,和一圈灰色電線。

重點先看: Copilot CLI 1.0.94-0 可以在 /model 選單中偵測本機正在執行的 Ollama 模型。但這不等於離線模式:離線仍需設定 COPILOT_OFFLINE=true,若選擇遠端供應商,提示內容依然會送到該供應商。

發現模型和離線模式不是同一個開關。GitHub 10 月 7 日的更新說明寫,從 Copilot CLI 1.0.94-0 起,/model 可以列出正在跑的本機 Ollama 裡、受支援的模型,跟你已經設定的模型、以及 Copilot 提供的雲端模型排在一起。同一則又寫,選了本機模型,不會因此打開離線模式,也不會關掉 GitHub 的遙測。離線仍是你自己設的環境變數:COPILOT_OFFLINE=true。

這個站已經寫過一種路由器,它選的是工作流,不是機器。HydraFusion 九月的預覽在基準上把成本降下來,品質只在其中一項贏過 Opus。也寫過 Gemma 4 在本機跑,仍然要一套運行時。Antigravity SDK 那條路徑就是那套。也寫過一張小模型價目,和「平均省下多少」不是同一刀。Haiku 5.5 短提示 0.10 美元,75% 是另一種算法。這週的 CLI 說明是第四種東西。它是選單變了。它不是 Auto,也不是「提示留在筆電上」的保證。

/model 列出正在跑的 Ollama,它不安裝

10 月 7 日的步驟很短,該釘在牆上的是否定句。Ollama 得先在跑。模型得先裝好。這個流程不安裝運行時,也不下載權重。模型必須支援工具呼叫和串流。條件不成立的時候,發現功能不是修理工具。它只是一份清單,列的是正在跑的服務願意露出來的東西。

你打開 /model。本機那個 Ollama 實例裡受支援的模型,會跟已設定的模型、Copilot 的雲端模型一起出現。發現本身不會把它們加進去。你選一個被發現的模型,看供應商和端點,然後確認 Add and use for this session,或 Add without switching。前者換掉這個工作階段的模型。後者只是加進清單,目前的模型不動。GitHub 說,加進去之後,不用重啟 CLI 就能在目前的工作階段使用。這裡的「不用重啟」指的是 CLI 行程。不是 Ollama。你打開選單時 Ollama 沒在跑,這則說明沒有寫選單會幫你把它叫起來。

供應商連線失敗會出現在選單裡,並附上說明。這是他們願意點名的失敗方式。說明的原文他們沒印。選單若說端點拒絕連線,你就在這則說明指到的情況裡。選單若只是沒有本機模型,先看他們寫的前提:服務在跑、模型已拉取、工具呼叫、串流。

Copilot app 在同一則裡是另一個表面。支援的供應商加在 Settings > Model providers。CLI 的發現流程和 app 的供應商畫面,用 GitHub 的話說,是同一個想法,不是同一組按鍵。10 月 9 日的每週發布說明把 CLI 那一半又說了一次,並連回 10 月 7 日。它沒有新旗標。你的 CLI 若舊於 1.0.94-0,每週說明沒有寫選單反正也長出了這項功能。版本地板在 10 月 7 日那則。每週說明是在那個地板之上重述。

本機模型和 COPILOT_OFFLINE=true 不是同一個開關

GitHub 那句要跟指令放在一起看。選本機模型不會打開離線模式,也不會關掉 GitHub 遙測。離線模式仍然是 COPILOT_OFFLINE=true。就算開了離線模式,遠端供應商還是可以透過網路收到提示和程式碼上下文。再讀一次。CLI 說明裡的離線,停的是一類跟 GitHub 的聯繫。它不停你自己設定的遠端模型供應商。

NeoTeo 10 月 8 日的記述,搜尋索引標的是 10 月 9 日,把同一條界線說成操作語言。COPILOT_OFFLINE=true 會阻止跟 GitHub 聯繫。若設定的模型供應商在遠端,那個供應商仍會收到提示和程式碼上下文。NeoTeo 不是 GitHub。

他多寫的設定,是不用新選單、直接把 CLI 指到本機 Ollama 的做法。COPILOT_PROVIDER_BASE_URL 設成 http://localhost:11434。COPILOT_MODEL 設成你已經裝好的模型識別名。然後啟動 copilot。本機服務若不要求驗證,就不需要 API 金鑰。10 月 7 日的發現流程,是跑著的 Ollama 上面多一個選單。環境變數是一條已設定的供應商。NeoTeo 說 CLI 的 BYOK 供應商類型是 openai、azure、anthropic,而 openai 這種類型也適用於 Ollama、vLLM、Foundry Local,以及其他相容 OpenAI Chat Completions 的端點。更新說明連到的是這份:在 Copilot CLI 使用自己的模型。文件上的供應商清單若比 NeoTeo 的三個更長或更短,以文件為準。

NeoTeo 也說 CLI 模型必須支援工具呼叫和串流,這跟 10 月 7 日的發現說明一致。他又說 GitHub 建議上下文至少 128k token,效果較好。「至少 128k」和「效果較好」是他轉述的建議。說明裡的硬條件是工具呼叫和串流。一個不到 128k、但仍能串流、仍能呼叫工具的模型,說明沒有把它排除。

VS Code 在 NeoTeo 的記述裡是第三個表面。打開聊天的模型選單,選 Manage Language Models,加入供應商或相容端點。他說 VS Code 把 Ollama 使用者導向官方擴充,因為內建的 Ollama 供應商已棄用。這條棄用沒有出現在 10 月 7 日的 CLI 說明裡。不要把它貼進 CLI 的操作單,再算到 GitHub 的 CLI 帖上。你若人在 VS Code,它屬於 NeoTeo 對編輯器路徑的記述。

同一篇裡,VS Code 的離線切分比 CLI 更尖。VS Code 可以用本機模型做完全離線的 BYOK 聊天,不需要 GitHub 帳號,也不需要 Copilot 方案。行內建議、語意搜尋,以及依賴嵌入的功能,仍然需要 GitHub 帳號。本機聊天和行內補全不是同一個離線包裹。一台沒有網路、聊天仍能回答的筆電,仍可能拒絕那行灰色提示。拒絕不是 Ollama 壞了。NeoTeo 說,那是仍要帳號的功能。

十月底的 Auto 不是這個選單的工作

10 月 7 日的說明宣布了帶本機模型的智慧路由,並指向微軟命令列部落格。動詞是宣布。下一句是留意後續可用性。同一則裡,/model 的發現從 CLI 1.0.94-0 起可用。路由沒有給日期。

NeoTeo 寫的是 10 月 8 日。他說微軟把 Copilot Auto 描述成一項計畫:在本機和雲端模型之間路由,目標是 2026 年十月底,表面包括 Copilot CLI、Copilot app 和 Visual Studio Code。在他的記述裡,BYOK 是你自己設定供應商或選定模型。Auto 是 Copilot 打算依任務上下文、以及多輪工作階段的快取狀態,決定推論跑在本機還是雲端。手放在開關上的人不同。10 月 7 日的選單比較像前者。你看端點,你確認要在這個工作階段使用,或只加入不切換。這個流程沒有寫 CLI 替提示打了分、然後把它搬走。

GitHub 印的是留意後續。NeoTeo 印的是一個目標。次要報導裡的目標,和更新說明裡的「stay tuned」,可以是同一個計畫。它們不是同一句承諾。若 10 月 31 日到了,/model 仍然只是發現,發現功能沒有失敗。路由的宣布也還沒有變成開關。10 月 9 日的每週說明沒有把這個缺口補上。它重複了發現。它沒有說 Auto 已經交貨。

HydraFusion 這個站已經寫過,它是研究預覽,是另一種路由器。那個在雲端模型之間組工作流。它不是 NeoTeo 描述的本機對雲端 Auto,也不是 /model 裡的 Ollama 那一列。工作階段若停在 HydraFusion,你卻以為提示打到了 localhost,你選錯列了。10 月 7 日的說明沒有寫 HydraFusion 會去問 Ollama。

沙箱是工具的邊界,模型搬不走它

同一天早上,GitHub 發了第二則說明:本機沙箱正式可用。表面是 Copilot CLI、Copilot app,以及使用 Agent Host 的 VS Code 工作階段。10 月 9 日的每週說明把這份清單又說了一次,並寫它包含在 Copilot 裡,不另收費。「不另收費」說的是沙箱這項功能。不是你自帶的模型供應商怎麼跟你計費。GitHub 不是你 BYOK 模型的計費器。

沙箱在 GitHub 的句子裡,限制的是 Copilot 發起的工具和指令:檔案系統、網路、憑證,以及其他系統能力,依你或你的組織定的政策。底層是 Microsoft eXecution Container,把同一份政策翻成 Windows、macOS、Linux 上的原生控制。說明裡的能力清單是具體的。限制代理執行的指令能讀、能改哪些檔案和目錄。控制網際網路、區域網路、Git 憑證、GitHub CLI 憑證的存取。在有支援的地方,把沙箱套到本機工具和服務,包括本機 MCP 和語言伺服器。企業設定可以要求開沙箱,並禁止開發者把政策放寬。

然後是那句把模型隔在外面的話。「模型執行和工具隔離是兩件事。沙箱政策套在工具執行上,跟 Copilot 用哪個模型無關。」本機 Ollama 不會把沙箱收緊。雲端模型也不會把它放鬆。政策在工具上,不在權重檔上。

殼層指令,以及預設情況下的本機 MCP 伺服器和語言伺服器,跑在行程邊界裡。內建的檔案工具走另一條路:代理的控制層做政策檢查,而不是把它們隔離成作業系統的子行程。遠端 MCP 伺服器在本機行程沙箱之外。選本機模型不會改這幾條線。若你的威脅模型是「權重在本機,所以工具也在本機」,GitHub 和 NeoTeo 都在說這個模型不對。權重放在哪,和工具的邊界,是兩份設定。

關於雲端和本機沙箱若有這兩則 10 月 7 日帖子沒點名的旗標,這篇教學就沒有那個旗標。這兩則已經夠擋掉最常見的合併:本機模型等於離線,等於進了沙箱。三個開關。CLI 1.0.94-0 給第一個加了選單。COPILOT_OFFLINE=true 是第二個,它仍讓遠端供應商看見提示。沙箱是第三個,三個表面上都已正式可用,而且它不在乎你在 /model 裡確認的是哪一個模型。

對讀者的意義

如果團隊在意資料是否離開本機,請把兩個設定都明確寫進規範:選用哪個模型,以及是否設定 COPILOT_OFFLINE。正式採用前,在測試階段用網路監控工具實際確認,不要假設選了本機模型就代表所有請求都留在本機。

分享文章 //
READER LETTERS

讀者回應与討論

[ 0 則評論 ]

暫無讀者回應,歡迎發表你的見解。

FURTHER READING

相關文章