OpenCode 實測:終端機 AI 代理在地端模型設定失敗,無法執行程式碼修改
我們安裝了 OpenCode AI 編碼代理,但在嘗試連接本地 Ollama 模型時遭遇「Model unavailable」錯誤,未能完成代碼修改測試。
本文重點
- 本站實測 OpenCode 連接本地 Ollama 模型失敗,無法執行程式碼修改。
- 執行指令回報 Model unavailable 錯誤,測試檔案內容保持不變。
- 依賴本地模型的用戶目前無法使用,需等待更明確的設定文件。
- 本站上線
- 2026/10/26 下午05:03

anomalyco/opencode 是 GitHub 上的開源專案,本站記錄時 221,572 星;一天內新增約 576 顆星。我們在一台 RTX A6000 48 GB 工作站 上,從安裝到跑出結果整段錄下終端機;測的是 2026-10-26 的版本(commit f669c46c9604)。實測影片公開後會嵌在本文最下方。
背景
OpenCode 是一個開源的 AI 編碼代理(AI coding agent),旨在透過終端機介面協助開發者進行代碼分析、生成與重構。它提供「build」與「plan」兩種內建代理模式,前者擁有完整權限用於開發,後者為唯讀模式用於分析與探索,試圖解決傳統 IDE 插件在複雜上下文理解與多步驟任務執行上的限制。
該專案宣稱支援多種安裝方式,包括 npm、Homebrew 以及直接執行安裝腳本,並強調其作為「open source AI coding agent」的定位,允許用戶自定義模型供應商(provider),理論上可連接本地運行的模型以保護隱私或降低成本。
運作方式與使用方式
我們的實作流程首先透過 npm install -g 安裝 OpenCode CLI,版本為 v2.1.4。接著建立一個簡單的示範專案,包含一個基礎的 JavaScript 函數檔案 index.js,並撰寫 opencode.json 設定檔,意圖將模型供應商指向本地運行的 Ollama 服務(baseURL 指向 http://127.0.0.1:11435/v1),模型指定為 qwen3.8:27b。
最後,我們執行 opencode run 指令,嘗試讓代理讀取程式碼並進行修改。指令格式為 opencode run -m <model-id> '<prompt>',其中 prompt 要求代理用繁體中文解釋程式碼並修改函數邏輯。然而,執行過程中代理未能成功載入指定的本地模型,導致任務中斷。
與未使用時的差異
| 情境 | 不用它 | 用它 |
|---|---|---|
| 代碼重構 | 手動閱讀並修改程式碼,需自行確保邏輯一致性 | 透過自然語言指令,由 AI 代理自動分析並修改檔案(需模型可用) |
| 代碼探索 | 使用 grep 或 IDE 搜尋功能,缺乏語義理解 | 使用 plan 代理進行唯讀分析,理解程式碼結構與意圖 |
| 隱私保護 | 使用雲端 AI 服務,代碼可能上傳至第三方伺服器 | 理論上可配置本地模型(如 Ollama),代碼不出本地(實測設定有門檻) |
| 多步驟任務 | 需手動拆分步驟,逐步執行 | 支援 @general 子代理處理複雜搜尋與多步驟任務 |
安裝與執行過程
| 步驟 | 指令 | 結果 | ||||
|---|---|---|---|---|---|---|
| 環境檢查 | `uname -a; python3 --version; uv --version; node --version; nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv,noheader 2>/dev/null \ | \ | echo '(no GPU)'; lscpu \ | grep 'Model name'; free -g \ | head -2` | 結束碼 0,耗時 0.4 秒。確認環境為 Ubuntu Linux,Node.js v18.19.1,配備兩張 NVIDIA RTX A6000 GPU(每張 49140 MiB),記憶體 62 GB。 |
| 取得原始碼 | `cd "$LAB" && { [ -d src/.git ] \ | \ | git clone -q --no-checkout --depth 1 https://github.com/anomalyco/opencode src; } && cd src && git fetch -q --depth 1 origin f669c46c9604ea3d70b8a7ed1f0c10f3a5ac1f61 && git checkout -q f669c46c9604ea3d70b8a7ed1f0c10f3a5ac1f61 && git log -1 --format='%h %cd %s' --date=short && du -sh . && ls` | 結束碼 0,耗時 14.5 秒。成功 checkout commit f669c46,專案大小 240M。 | ||
| 安裝 CLI | npm install -g --prefix "$LAB/npm" @opencode/cli@latest | 結束碼 0,耗時 50.4 秒。成功安裝 5 個套件,包含 @opencode/cli-linux-x64。 | ||||
| 驗證版本 | opencode --version | 結束碼 0,耗時 0.1 秒。輸出 opencode v2.1.4。 | ||||
| 建立示範專案與設定 | mkdir -p "$LAB/demo" && printf 'function add(a, b) { return a + b; }\nmodule.exports = { add };\n' > "$LAB/demo/index.js" && printf '%s' '"'"'{'"'"'"'"'$schema"'"'"'"': "https://opencode.ai/config.json", "provider": {"local": {"npm": "@ai-sdk/openai-compatible", "name": "Local Ollama", "options": {"baseURL": "http://127.0.0.1:11435/v1", "apiKey": "local"}, "models": {"qwen3.8:27b": {"name": "Qwen3.8 27B\\uff08A6000 \\u672c\\u6a5f\\uff09"}}}}}'"'"' > "$LAB/demo/opencode.json" && cat "$LAB/demo/opencode.json" | 結束碼 0,耗時 0.0 秒。成功建立 index.js 與 opencode.json,設定檔內容顯示指向本地 Ollama 端點。 | ||||
| 執行 AI 代理任務 | cd "$LAB/demo" && opencode run -m local/qwen3.8:27b '讀 index.js,用繁體中文說明它做什麼,然後把 add 改成會檢查兩個參數都是數字、不是就丟 TypeError,直接修改檔案' | 結束碼 1,耗時 0.6 秒。錯誤訊息:Error: Model unavailable: local/qwen3.8:27b。 | ||||
| 檢查檔案修改 | cat "$LAB/demo/index.js" | 結束碼 0,耗時 0.0 秒。檔案內容未變,仍為原始程式碼,確認代理未執行任何寫入操作。 |
結果驗證
我們成功安裝了 OpenCode CLI v2.1.4,並確認其基本指令如 --version 運作正常。專案原始碼大小約 240M,結構包含多個 packages 與 sdks,符合其作為一個完整生態系統的描述。
然而,在核心功能測試中,當我們嘗試使用 opencode run 指令搭配本地模型 local/qwen3.8:27b 時,系統立即返回 Error: Model unavailable。這表明 OpenCode 未能成功連接或識別我們設定的本地 Ollama 服務。儘管設定檔 opencode.json 已正確指向 http://127.0.0.1:11435/v1,但代理似乎無法驗證該模型的可用性,導致任務在 0.6 秒內失敗。
最終檢查 index.js 檔案,內容保持不變,證實代理在遇到模型錯誤時會安全地中止操作,不會產生部分修改或損壞檔案。這符合 README 中提到的「plan」代理安全性設計,但在「build」模式下,我們無法驗證其代碼生成與修改能力。


遇到的問題
1. 本地模型連接失敗:設定檔指向 Ollama 端點,但 opencode run 回報 Model unavailable,可能原因包括端點未啟動、API 格式不相容或 OpenCode 對本地模型的偵測機制有特定要求。
2. 設定檔格式疑義:步驟 4 中建立 JSON 設定檔的 shell 指令涉及複雜的引號轉義,輸出顯示 JSON 結構可能被 shell 解析為非標準格式(如單引號包裹),建議使用 heredoc 或編輯器直接撰寫以避免錯誤。
結論
OpenCode 是一個架構完整且安裝便捷的開源 AI 編碼代理,適合希望將 AI 整合進終端機工作流的開發者。然而,對於依賴本地模型(如 Ollama)的用戶,目前的設定過程可能不夠直觀,且錯誤訊息較簡略,需要額外除錯。若主要使用雲端模型(如 Anthropic、OpenAI),其體驗可能更為流暢;但在本地化部署場景下,我們暫時無法推薦,需等待更明確的本地模型設定文件或修復。
來源:佐證 0 筆,另有背景參考 1 筆
背景參考正文沒有引用,只是相關背景,不計入佐證數
- github.com · anomalyco/opencode(GitHub,commit f669c46c9604)
這篇對你有用嗎?
登入會員後可以按反應與留言。登入
留言 0
- 還沒有留言。
留言公開顯示暱稱,不顯示你的真實姓名與信箱。含多個連結或疑似廣告的留言會先經編輯確認;檢舉達 3 次的留言會自動隱藏。隱私政策
發現錯誤?
回報會進入待處理清單;核實後更正,並在文中註記更正紀錄。