「為什麼 Copilot autocomplete 不夠要 Agent」這個問題的標準答案通常是:Agent 比較快——能讀整個 codebase、能執行、能改、能驗證。Autocomplete 只能補下一行。
這個答案不算錯,但不太準。我自己用下來發現一個反直覺的事實:拆解需求合理的話,autocomplete 跟 agent 的時間其實差不多。
那 agent 真正贏在哪?這篇就要講這個。
反直覺結論:時間差不大
如果你把需求拆解得夠細、邊界夠清楚——
- autocomplete 模式:一行一行寫、IDE 補後續、你看一行確認一行 → 「好像很快」但你還是要花時間 review
- agent 模式:一次給一個 task、agent 寫完整段、你邊看邊好 → 「好像比較慢」但 review 跟寫合在一起
兩個體驗差很多——autocomplete 給你「在打 code」的爽感,agent 給你「在 review」的疲勞感。但總時數其實差不多。差別不在效率,差別在工作型態。
這個結論顛覆了「agent 一定比 autocomplete 快」的常見論述。如果你覺得 agent 不上手,可能是因為你還沒適應「review-driven」這種新工作型態,不是因為 agent 真的比較慢。
那 agent 真正的價值在哪
差距在複雜任務這層。
Autocomplete 的工作單位是「下一行 / 下一段」。它在這個粒度做得非常好——typing aid、syntax memory、API hint、boilerplate 補完。但這個粒度不會幫你解 architecture 問題、不會幫你拆需求、不會幫你想「這個 feature 該不該這樣設計」。
Agent 的工作單位是「整個任務」。它能:
- 讀整個 codebase 的 context、知道你的 pattern
- 一次處理多個檔案、跨 module 改動
- 執行 test、看到失敗就修、迭代到通過
- 在被 challenge 時 push back(「這個設計有問題,原因是…」)
這些能力在「需求拆得很細的小任務」上看不出價值——因為小任務 autocomplete 也能做。但任務一旦複雜起來、跨多檔、需要架構判斷——autocomplete 撞牆,agent 才能上場。
但 agent 在複雜任務上也會出事
這裡有個重要的反例。
Autocomplete vs agent 不是「agent 一定強」。在極端複雜的任務上,agent 也會崩。
我親自測過——我想試 AI 能不能自己做一個 CMS。完整 CMS:authentication、permission、content model、admin UI、API、deployment。
Agent 可以做。但做出來的方向整個就爛掉。
具體爛在哪:
- 資料 model 設計得很怪(normalized 過度、外鍵亂連)
- Permission 邏輯散在五個地方
- Admin UI 跟 API 各做各的,沒有共用 type
- 沒有貫穿的 architecture decision——每個檔案做出當下「合理」的決定,加起來變一個 frankenstein
這個 task 我用 autocomplete 也做不出來——但用 agent 反而更危險,因為它做出來「看起來像個產品」。autocomplete 失敗你會 stuck 在某一步、知道自己卡關;agent 失敗你會收到一個跑得起來但架構是地雷的 codebase。
那 agent 該用在哪
中間粒度。
| 任務粒度 | 適合工具 | 原因 |
|---|---|---|
| 補完下一行 / 補 boilerplate | Autocomplete | Agent overkill |
| 寫一個 function / 改一個 module | 都可以 | 時間差不多,看你習慣 |
| 跨多檔的 feature / 重構 | Agent | Autocomplete 撞牆 |
| 從零設計整個系統 | 人 + agent,不是 agent 自己 | Agent 沒有貫穿的架構判斷 |
中間兩格是 agent 真正的價值區。最上面那格 autocomplete 更輕;最下面那格 agent 自己會崩。
為什麼大家覺得「agent 一定比較快」
這個流行論述是哪來的?我猜是 demo 文化——
Twitter 上的 demo 通常是「3 秒生一個 todo app」「30 秒做一個 chat 介面」這種粒度。這個粒度 agent 完爆 autocomplete,因為任務本身就是「整段一次生成」。
但日常工程師工作不是 demo。日常工作有 80% 的時間在「現有 codebase 加新 feature / 改 bug / 重構」,這個 context 下 agent 跟 autocomplete 的時間差距遠比 demo 看起來小。
那「以為 autocomplete 夠用」的人忽略了什麼
如果你日常 task 都是 boilerplate / CRUD / 按既有 pattern 寫——那 autocomplete 真的夠用,agent 不會給你太多 leverage。
但只要你開始碰:
- 跨多檔的重構——autocomplete 沒辦法 trace 你改了 A 還要改哪些 B、C、D
- 不熟的 framework / library——autocomplete 補的東西都對但你不知道整體該怎麼組
- debugging 跨 module 的問題——autocomplete 完全幫不上
這幾個情境 autocomplete 撞牆。如果你還沒撞到,可能是你的工作 nature 還沒到那層;一旦撞到,你會自然知道為什麼要 agent。
反思一句話
Autocomplete vs Agent 的差距不在「快不快」,在「能不能跨複雜度」。
但即使是 agent,也有它撞牆的地方——複雜度往上拉到「整個系統設計」這層,agent 給你的是看起來像產品的地雷。
真正的工具選擇不是 autocomplete vs agent,是「task 複雜度落在哪一層 → 配對應的工具」。 用錯層級的話,autocomplete 會卡你、agent 會給你 frankenstein——兩種錯法都很痛。