AI編程:OpenCode 入門 | Plan & Build 模式 | Agent,command,Skill|教學|廣東話|60fps
三句話摘要
OpenCode 開源 AI Coding Agent 的完整使用指南,涵蓋 Terminal/Desktop 兩版本、設定層級、Agent/Command/Skills 客製化,以及複雜專案的 Debugging 策略。 善用 Plan Mode 定位 Root Cause、搭配 Debug Log 追蹤資料流,是解決複雜循環 Bug 的關鍵,而 Agent/Command/Skills 的分層客製化則讓 OpenCode 得以適應各種專案規模與工作流程。 OpenCode 分 Terminal(TUI)與 Desktop(GUI)兩版,Terminal 版是核心,Desktop 版大同小異但介面更直覺;兩者都內建 Build 與 Plan 兩個 Primary Agent,Plan Mode 不會修改磁碟檔案,適合先規劃再執行,避免衝動修改引發連鎖問題。
重點整理
重點- 1
OpenCode 分 Terminal(TUI)與 Desktop(GUI)兩版,Terminal 版是核心,Desktop 版大同小異但介面更直覺;兩者都內建 Build 與 Plan 兩個 Primary Agent,Plan Mode 不會修改磁碟檔案,適合先規劃再執行,避免衝動修改引發連鎖問題。
- 2
設定分 Global(User)與 Project 兩個層級,Global 設定放在 `~/.config/opencode/`,Project 設定放在專案內的 `.opencode/` 資料夾;兩層設定可同時生效,例如 Global 的 `agents.md` 可要求所有專案產生含 Comment 的程式碼,Project 層則管理專案專屬的 Agent 或指令。
- 3
OpenCode 支援自訂 Command、Agent、Skills 三種擴充機制:Command 是主動呼叫的指令腳本(如 `gitinit`);Sub Agent 是被 Primary Agent 呼叫的獨立工作單元,各有獨立 Context 以避免主 Context 爆滿;Skills 則是由 AI 自動判斷是否觸發的可重用行為,以資料夾名稱作為識別名。
- 4
面對複雜或循環出現的 Bug,光靠文字描述給 AI 往往詞不達意、越改越亂;應先讓 AI 加入 Debug Log 追蹤資料流,定位根本原因(Root Cause),再切換到 Plan Mode 限制 AI 只針對特定位置修改,避免隨機 patch 引發新的問題。
實用技巧與重點
乾貨- 安裝指令:`npm install -g opencode`,需預先安裝 Node.js
- 目前版本:1.17.57
- 切換 Build/Plan Agent:按 `Tab` 鍵
- 免費模型:Big Pickle(來源未公開)、DeepSeek V4 Flash Free、小米 V2.5 Memo、NVIDIA 模型
- 付費 Subscription:約每月 10 美元,可用多種國產模型
- Provider 平台名稱:Variant(OpenCode 官方平台)、OpenRouter、DeepSeek、Google、Anthropic、阿里巴巴
- Variant 思考深度設定:Low / Medium / Max
- Context 壓縮指令:`/compact`;開新 Session:`/new`;查看模型:`/model`
- Global 設定路徑:`~/.config/opencode/`,含子資料夾 skills、plugins、agents、commands
- Project 設定路徑:`.opencode/`(需自行建立)
- 主設定檔:`opencode.jsonc`(Global)
- 聲音設定:在 `~/.config/opencode/` 加入 `tui.json` 並填入對應設定
- LSP 啟用:在 `opencode.jsonc` 加入 LSP 設定,Python 對應 PyRight Language Server
- Skills 資料夾名稱即為 Skill 名稱(非檔案名)
- Skills 安裝指令:`mpx skill <skill-name>`,如 `mpx skill super-powers`
- Built-in Sub Agents:`journal`(讀寫)、`explore`(唯讀)、`skull`(已廢棄)
- 手動呼叫 Sub Agent:`/add general` 或 `/add explore`
- Code Review Command:`/review`(針對未 commit 的變更)
- Init 指令:`/init`(讓 AI 掃描專案自動生成 `agents.md`)
- Desktop 版開啟 Terminal:`Ctrl+B`;切換 Agent:`Ctrl+.`
- Debug 建議步驟:① 加 Debug Log → ② Plan Mode 定位 Root Cause → ③ 限制修改範圍再 Fix
結論
結論“善用 Plan Mode 定位 Root Cause、搭配 Debug Log 追蹤資料流,是解決複雜循環 Bug 的關鍵,而 Agent/Command/Skills 的分層客製化則讓 OpenCode 得以適應各種專案規模與工作流程。”
完整解析
詳細OpenCode 是一款開源的 AI Coding Agent,提供 Terminal(TUI)與 Desktop(GUI)兩個版本。Terminal 版透過 NPM 安裝(`npm install -g opencode`),進入任意專案資料夾後執行 `opencode` 即可啟動。畫面中央為對話框,左上顯示專案路徑,右側顯示版本名稱;核心功能之一是 Context 用量指示器,顯示目前已消耗多少 Token 百分比,超過一半時建議執行 `/compact` 壓縮,或用 `/new` 開啟新 Session。模型選擇方面,免費選項包含 DeepSeek V4 Flash Free 與 Big Pickle 等,付費訂閱約每月 10 美元可解鎖更多國產模型;也可透過 Connect 功能接入 OpenRouter、Google、Anthropic、阿里巴巴等外部 Provider 並填入 API Key。
OpenCode 的設定分 Global 與 Project 兩個層級,Global 設定位於 `~/.config/opencode/`,包含 `opencode.jsonc` 主設定檔及 agents、commands、skills、plugins 等子資料夾;Project 設定則放在專案根目錄的 `.opencode/` 資料夾下。兩層設定會同時生效,讓使用者可以在全域層定義通用規則(例如在 `agents.md` 要求 AI 產生程式碼時一律加上 Comment),並在個別專案層定義專屬的 Agent 或指令。`agents.md` 是給 AI 看的行為準則文件,可手動撰寫或透過 `/init` 指令讓 AI 自動掃描專案內容生成初稿。
客製化擴充機制有三種:Command 是主動呼叫的 Markdown 腳本,例如自訂的 `gitinit` 指令可一鍵建立 `.gitignore` 並執行 `git init`;Sub Agent 是具有獨立 Context 的工作單元,內建 `journal`(讀寫)與 `explore`(唯讀)兩種,使用者也可自行定義(如 Security Advisor),Primary Agent 會在需要時自動呼叫,或透過 `/add explore` 手動觸發,核心優勢是避免所有工作擠在 Primary Agent 的 Context 裡導致超載;Skills 則是放在 skills 資料夾下的 Markdown 描述檔,資料夾名稱即為 Skill 識別名,AI 會根據 description 自動判斷是否觸發,無需手動呼叫,例如「chart from source」Skill 可在分析 Python 檔案時自動生成流程圖的 HTML。此外,啟用 LSP(Language Server Protocol)後,AI 能識別變數型別、函式回傳值與語法錯誤,Python 對應 PyRight,可大幅提升程式碼編輯的準確度。
Debugging 方面,講者指出在專案早期 AI 修 Bug 輕而易舉,但到了後期會出現兩類棘手問題:反覆修改仍無法解決的頑固 Bug,以及修好 A 又壞 B、循環出現的 Bug。對此,講者給出兩個核心建議:第一,先讓 AI 在程式碼中加入 Debug Log,透過真實執行時的資料流來定位問題根源,而非靠文字描述反覆猜測;第二,切換到 Plan Mode 進行 Debug,強迫 AI 先找出 Root Cause 並規劃修改範圍,而不是在 Build Mode 中隨機 patch 某個位置,如此才能避免牽一髮動全身的連鎖破壞。Desktop 版本功能與 Terminal 版大同小異,差別在於提供圖形化的 Sidebar、FileTree、內建 Terminal(Ctrl+B)與 diff Review 面板,也可設定遠端 Server 讓其他人連線使用。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


