cover

AI coding 工具四年走了別的軟體十年的路。但大部分工程師還是在用它來補 console.log

先講結論

AI 寫程式工具經歷了四個階段:補完 → Copilot → 對話 → Agent。每個階段的跳躍都不只是「更好的補完」,而是根本性地改變了人跟程式碼互動的方式。

你只需要記住這些:

  1. 補完工具已經是基本配備,不用特別挑,IDE 內建的就夠
  2. Cursor Composer 是目前日常開發最順手的,多檔案編輯是真正的生產力差異
  3. Claude Code 適合大活,整個 feature 或大規模重構,讓 Agent 自己跑
  4. Devin 之類的全自動 Agent 目前還是噱頭大於實用
  5. 不管用什麼工具,你 commit 的每一行都要自己看懂

工具的選擇不重要,知道什麼時候用什麼模式才重要。


第一代:補完時代(2018-2020)

TabNine 和 Kite 是這個時代的代表。它們做的事情很簡單——猜你下一個要打的字。

你打:const user = await db.
AI 補:findById(id);

老實說,用起來跟 IDE 的 IntelliSense 差不多,只是偶爾會多猜幾個 token。我當時裝了 TabNine 大概兩週就關了,因為它的建議有一半跟我想寫的不一樣,反而干擾打字節奏。補完工具最大的貢獻是讓我學會快速按 Esc。

Kite 在 2022 年就收掉了,某種意義上也證明了:光靠統計模型猜 token,天花板就在那裡。


第二代:Copilot 的突破(2021-2022)

GitHub Copilot 出來的時候,我第一次感覺到「這真的不一樣」。

差別在哪?它背後是 OpenAI Codex,能理解自然語言跟程式碼之間的關係。你寫一行註解,它能生出一整個 function:

// 計算購物車總金額,有折扣碼就套用折扣
function calculateTotal(cart: CartItem[], discountCode?: string): number {
  const subtotal = cart.reduce((sum, item) => sum + item.price * item.quantity, 0);
  if (discountCode) {
    const discount = getDiscount(discountCode);
    return subtotal * (1 - discount);
  }
  return subtotal;
}

從「猜你下一個字」變成「理解你想做什麼」——這個跳躍是質的飛躍,不是量的改進。

但 Copilot 也教了我一課:AI 生成的 code 看起來很漂亮,不代表是對的。它會很自信地呼叫不存在的 API、用已經 deprecated 的語法、或是寫出乍看合理但邏輯有洞的程式碼。你有沒有過那種經驗——Copilot 補完的 code 跑起來沒問題,三天後才發現某個 edge case 炸了?


第三代:對話式開發(2023)

ChatGPT 爆發之後,大家突然發現:與其讓 AI 猜,不如直接跟它說。

這個階段最重要的產品是 Cursor。它把對話整合進 IDE,你可以 @ 標記特定檔案,跟 AI 討論怎麼改。比起 Copilot 的被動等待,這是主動合作。

你:「這個 React component 每次 parent re-render 都重新算 filteredList,用 useMemo 優化」
AI:(分析你的 component → 找到問題點 → 給出修改後的完整程式碼)

Copilot Chat 也有類似功能,但體驗跟 Cursor 差一截。為什麼?因為 Cursor 從底層就是為 AI 設計的,而 Copilot Chat 是硬塞進 VS Code 的 sidebar。這種差異在多檔案編輯的時候特別明顯——Cursor Composer 讓你一次改十幾個檔案,Copilot 你得一個一個來。


第四代:Agent 模式(2024-2025)

這是目前最前沿的階段,也是爭議最大的。

Agent 的核心概念是:AI 不再只是回答問題,它可以自己規劃步驟、讀 codebase、改檔案、跑測試、看結果、修 bug。你給它一個任務,它自己搞定。

Claude Code 是我目前用最多的 Agent。你跟它說「加一個 dark mode」,它會自己去讀現有的 theme 架構、建立 context、修改 component、加 CSS variables、跑測試。你坐在旁邊看它工作,偶爾給個方向修正。

這聽起來很美好對吧?但現實是:

Agent 模式在小而明確的任務上很厲害,在大而模糊的任務上會翻車。 讓它「幫我加一個 API endpoint」效果很好,讓它「重新設計整個認證系統」你會花更多時間收拾殘局。

至於 Devin——號稱「第一個 AI 軟體工程師」——我的看法是:Demo 很酷,實際用起來離「軟體工程師」這四個字還很遠。它更像是一個會自己跑的腳本,不是一個會思考的工程師。就像很多寫在履歷上「精通 XX」的人一樣。


所以到底該怎麼選?

工具的詳細比較我在 AI 工具比較 已經寫過了,這邊只講結論:

不要想著找一個工具解決所有事。 不同階段的任務用不同工具:

  • 日常寫 code、小修改 → Cursor(Tab 補完 + Composer)
  • 大規模重構、新 feature → Claude Code(Agent 模式)
  • PR review、技術研究 → Claude 對話模式

你問我 Copilot 呢?如果你的公司已經在用、你不想換 IDE、或是你需要企業合規,Copilot 完全夠用。但如果你有選擇,Cursor 的體驗確實好一截。


AI 做得好 vs 做不好的事

這個也要講清楚,不然容易踩坑。

做得好: boilerplate 程式碼、寫測試、生成文件、解釋不熟的 library。這些事情結構明確、有既定模式、出錯容易發現。

做不好: 架構決策、security-critical 程式碼、複雜商業邏輯、效能關鍵路徑。這些需要理解 context、承擔後果、做 trade-off——這些 AI 都不會。

一個簡單的判斷標準:如果這段 code 出 bug,後果是「再改就好」還是「出大事」?前者可以大膽讓 AI 寫,後者你最好自己來。


最後一個提醒

AI coding 工具的演進速度快到你今天讀的這篇文章,半年後可能有一半內容過時。但有一件事不會變——你要理解你 commit 的每一行程式碼

AI 是你的 pair programming partner,不是你的外包。它像一個打字速度超快的 junior developer:產出很多,但你不能不看就 merge。


延伸閱讀

AI 工具進化得越快,工程師按下 Approve 的手指就該越慢。