! 本篇文章將會介紹怎麼把上下文餵給 opencode,好的上下文讓 AI 少走一些冤枉路 :D
TL;DR: https://dev.benben.me/slides/s/ironman-06-context-tips
讀完這篇你會學到:
@ 引用的進階活用Day 03 提過 @ 可以 fuzzy search 引用檔案,檔案內容會自動加進對話。今天講進階活用——給範例檔當 reference:
看 @packages/functions/src/notes.ts 裡 auth 是怎麼處理的,
在 @packages/functions/src/settings.ts 實作一樣的邏輯
這招超級好用。與其跟 AI 形容「我想要那種感覺的 code」,不如直接指給它看:「照這個抄」永遠比「聽我描述」準。帶 junior 也是這樣,給他看 good example 勝過講十分鐘原則。
注意:@ 要精準,不要貪心把整個資料夾都塞進去。context 太肥,AI 反而會失準——就像你給新人一次塞三十份文件,他也是直接放空。
還記得 Day 03 的測驗嗎?「怎麼在對話中間塞一張圖片給 AI 看?」
答案:直接把圖片拖進 terminal(drag & drop),opencode 會掃描圖片內容加進 prompt,你也可以貼檔案的路徑給它。就是這麼簡單。
兩個實真場景:
小知識:opencode 會自動處理圖片大小——超過 2000×2000 或太大會被縮放,不用自己開修圖軟體。
反例與正例直接對照:
| 反例 | 正例 |
|---|---|
| 幫我修 bug | 這個 function 在 input 是 null 時會炸(TypeError),幫我加防禦處理並補上測試 |
| 優化這段 code | 這個 API endpoint 平均回應 2 秒,瓶頸疑似在 N+1 query,幫我找出來修掉 |
| 加個功能 | 參考 Day 05 那個刪除筆記的需求寫法:目標、範圍、行為都講清楚 |
差別在哪?正例給了症狀、線索、期望行為——AI 不用猜,直接對症下藥。
@ 引用既有 code 當 reference(上面講過了)。你的 codebase 裡最好的文件,就是已經存在的 good example。
大工程先 Plan mode 對齊再 Build(Day 05),不要一股腦把十個需求塞進同一個 prompt——AI 會做,但每個都做一半。
! 跑 bash(Day 03):!git log --oneline -5 的輸出會進對話,讓 AI 看到現場/editor:落落長的 prompt 開外部編輯器寫,比在輸入框改字舒服太多小小測驗:你的需求講得再清楚,AI 還是會錯意——這時候第一反應應該是什麼?
答案:不是罵它笨,是檢查自己給的上下文。九成的「AI 做錯」,回頭看都是「人沒講清楚」。
@ 精準引用、圖片拖放、清楚的目標描述Day 07:/undo 與 /redo——有安全網,你才敢讓 AI 盡情發揮。
參考資料:
有任何疑問但沒有 iT 邦幫忙帳號,或是想匿名提問?
歡迎到 https://dev.benben.me/q/P3C5U6 提問或加油打氣,沒意外的話會在完賽之後一起回答 :D