OpenCode 2.0 是一次重大改版,旨在利用數百萬用戶的日常使用經驗,打造一個能適應代理需求的系統。此次更新包含大量新功能、效能改進及錯誤修復,以下是幾項較具影響力的用戶端變更:

**服務架構 (The Service)** OpenCode 自始採用 client/server 模型,但過去僅供進階用戶使用。在 2.0 版中,伺服器現在會自動作為單一背景程序在機器上運行。當開啟 TUI、Web 介面或桌面應用時,它們都與同一個中央程序通訊。程式化客戶端 `@opencode/client` 會自動發現本地服務並直接運作,這對於排程任務特別有用。用戶也可以透過 CLI 使用 `opencode api` 命令進行呼叫,或使用 `/pair` 或 `opencode pair` 將其暴露給其他主機以連接其他應用。

**API 重寫** 舊版 API 因缺乏規劃而變得混亂,新版從頭開始重寫,並檢視了數百萬用戶的各種用例。新 API 幾乎支持所有必要功能。OpenCode 現在能感知自身的 API,並會呼叫它來執行實用操作,例如在開始新工作時將當前會話移動到 git worktree 中。

**Code Mode** OpenCode 2.0 利用模型擅長編寫程式碼的特性,推出了 Code Mode。透過 `@opencode/codemode` 套件中的最小 JavaScript 直譯器,該系統能攝取 MCP 伺服器或 OpenAPI 端點,將其轉換為代理可在腳本中呼叫的函數。這允許代理編寫腳本來呼叫工具、映射結果並呼叫另一個工具,實現單次往返調用,而非逐一呼叫。所有 MCP 伺服器在 2.0 中預設啟用 Code Mode,這意味著用戶可以添加大量伺服器而不會造成上下文膨脹,代理將自動發現並組合它們以完成任務。該直譯器可原生執行腳本,無需依賴 Node.js VM 或 QuickJS 等複雜解決方案。

**背景任務 (Background Tasks)** 為了讓模型發揮其編排能力,2.0 版新增了背景子代理和背景 shell 命令。主代理可以將工作委派給另一個代理(甚至使用不同模型)同時繼續工作。Shell 工具可以非同步調用,長時間運行的工作不會阻塞主代理,完成時會收到通知。如果任何前台 shell 命令或子代理運行時間過長,用戶可以按熱鍵將其移至背景,以便繼續輸入提示。

**插件系統 (Plugins)** 雖然 OpenCode 1.0 已有插件系統,但未獲得足夠關注。為了改進這一點,開發團隊強制將幾乎所有 OpenCode 2.0 功能實現為內部插件,目前已有 80 多個。這確保了 Plugin API 的維護。TUI 插件已從實驗性轉為穩定版,由 OpenTUI 驅動。系統確保所有內容均可熱重載,因此 OpenCode 可以在會話中途為自身編寫插件並立即使用。

**SDK** OpenCode 現在可以作為庫使用,透過 `@opencode/sdk` 套件。這是驅動 CLI 的相同代碼,用戶可以將其精簡並製作自己的 OpenCode 變體,運行在伺服器或特殊環境(如 Durable Objects)中,並透過標準 OpenCode 伺服器協議從任何 OpenCode 客戶端連接。它還有一個可選的基於 Effect 的 API,目前仍在開發中。

**升級注意事項** 升級 CLI 需先更新至最新 1.x 版本,然後執行 `opencode upgrade --major`。桌面應用需下載最新版本。存在破壞性變更:1.0 版插件在 2.0 中無法工作;Server API 完全不同;`tui.json` 配置已移至 JSON。其他許多變更具有向後兼容性。

事件背景

OpenCode 是一款 AI 編碼代理工具。在 2.0 版本之前,雖然架構上支援 client/server 模式,但預設情況下並未充分利用,主要僅供進階用戶手動配置使用。2.0 版本將此架構改為預設自動運行的背景服務,以統一 TUI、Web 和桌面應用的後端處理。Code Mode 是一種讓 AI 代理透過生成 JavaScript 腳本來編排工具呼叫(如 MCP 伺服器或 OpenAPI 端點)的技術,旨在減少上下文膨脹並提高多工具協作的效率。

社群觀察

社群對 OpenCode 2.0 的評價普遍正面。用戶 ghrl 讚賞其可用性、client/server 模型以及自我編輯配置和編寫插件的能力,並提到其 GitHub 問題追蹤系統運作良好。用戶 solarkraft 表示 V1 版本的許多煩人問題已消失,技能和插件現在可以自動重載,任務可以移至背景(儘管認為這尚未完全自動化),且前端界面得到了改進。用戶 Lucasoato 讚賞其擁抱「一切皆插件」的原則,並指出 V1 中需要手動變通的功能(如會話重新綁定資料夾)現在已成為原生功能。然而,用戶 egorfine 對所有這類工具突然都要求在機器上運行永久背景守護進程表示疑慮,認為這不應是預設行為。用戶 moretti 詢問是否支持類似 Claude Code 的自動模式,因為手動批准每個命令會打斷工作流,而 YOLO 模式則感覺風險較高。