AI coding agent 的真正成本,不是月費,而是每一次任務該不該跑

Ryan Vale
·
·
IPFS
·
AI coding agent 的成本正在從月費變成每次任務的 runtime 消耗。真正該控管的不是少用,而是把任務拆小、設停損點,讓每次執行都值得。

以前用 coding agent,很容易把它想成一個訂閱工具。

每個月付一筆錢,然後它幫你補 code、改測試、解釋錯誤訊息。你可能會比較哪個方案比較划算,但那比較像買 IDE 外掛或雲端筆記。成本是固定的,心裡大概有底。

現在這個感覺正在變。

當 Copilot 開始用 AI Credits 計算不同模型和工作量,當 code review 也可能吃到 GitHub Actions minutes,當 Codex 的使用量被放進 agentic usage limits,並且明確受到 codebase 大小、任務長度、context 和 session 時間影響時,coding agent 就不太像單純的月費工具了。

它比較像一種 runtime。

你派它跑一個任務,它就消耗一段資源。跑得越久,看得越多,開的 session 越多,review 得越勤,成本就越不像「我已經付過月費」。這個成本不只在帳單上,也在 reviewer 的注意力裡。

對小團隊來說,真正要改的不是立刻去研究哪個方案最便宜。方案會改,價格會改,模型倍率也會改。比較穩定的基本功是:每次啟動 agent 前,先問這個任務值不值得跑。

能交給 agent,不代表值得交給 agent

coding agent 最容易讓人產生一個錯覺:只要它能做,就應該讓它做。

這不一定對。

有些小修其實人手改最快。改一個明顯的文案 typo、調一個樣式邊距、補一個很局部的判斷式,可能打開檔案兩分鐘就結束。你如果先寫 prompt、等 agent 掃 repo、看它提出計畫、再 review diff,反而多繞一圈。

agent 比較適合的不是「所有可以自動化的事」,而是那些人類做起來容易煩、容易漏、或需要跨檔案整理脈絡的事。

例如:

  • 一個 bug 牽涉到兩三層狀態流,需要先找出真正入口

  • 一個 PR 改了多個模組,reviewer 想先抓出風險點

  • 一段重複邏輯散在很多檔案,整理時需要維持測試

  • 一個錯誤訊息背後可能是設定、依賴、環境三邊互相影響

這些任務花 agent time 比較合理,因為它可能省下的是人的搜尋、比對和初步整理。反過來,如果任務本來就很小、風險很低、路徑很明確,讓 agent 跑只是把便宜的人工動作換成比較貴的工作流。

我不覺得這代表小團隊應該少用 agent。比較準確的說法是:不要把 agent 當成預設入口。

先判斷任務類型,再決定要不要交給它。

AI review 也要分流

code review 是另一個容易燒成本的地方。

如果 AI review 變成每個 PR 的預設流程,看起來很安全。每次都多一層檢查,誰會反對?問題是 PR 的風險不一樣,review 需要的深度也不一樣。

改 README 和改 billing flow 不應該走同一種 AI review。改一個 CSS class 和改資料 migration 也不應該用同一種審查成本。

比較好的做法,是把 AI review 當成一個要被路由的資源。

小 PR、低風險、測試很直接的改動,可以讓人類快速看完。高風險 PR 才值得開比較完整的 agent review,例如跨模組改動、測試難補的邏輯、權限與金流、資料結構變更,或 reviewer 自己也不熟的區域。

這裡的重點不是省那一點 credits 或 minutes,而是讓 AI review 出現在它真正有用的地方。

如果每個 PR 都被 AI review 掃過,團隊很快會習慣忽略它的輸出。提醒太多,注意力就會變鈍。到最後,成本花了,風險也沒有真的下降。

長 session 要有停損點

agent session 越來越像真正的工作單位。

它可以遠端跑,可以同步,可以並排開好幾個,可以保留歷史。這些功能很有用,尤其當你不想把一個複雜任務切到太碎,或想讓 agent 在背景處理一段比較長的工作。

但長 session 也有一個很普通的問題:它會繞路。

有時候 agent 會一直修同一個錯。測試失敗一次,它改一點;又失敗,再改一點;然後開始擴大 context,碰更多檔案,最後做出一個看似努力但很難 review 的 diff。

人類工程師也會這樣,只是人類通常會因為累、尷尬、或旁邊同事問一句「你是不是走偏了」而停下來。agent 不一定會。

所以長 session 需要停止規則。

例如,連續兩次同一類測試失敗就停。需要新增套件就停。需要修改資料模型就停。超過原本授權的檔案範圍就停。找不到可重現步驟就停。花了二十分鐘還沒有收斂到明確假設,也停。

停下來不是失敗。停下來是把一個越來越貴的 run 變回可判斷的工作。

真正浪費的不是 agent 沒做完,而是它做了很多,卻沒有人能清楚判斷哪些有用、哪些只是繞路。

平行 session 不是免費生產力

多開幾個 agent 很有誘惑力。

一個修 bug,一個補測試,一個整理文件,一個研究新套件。看起來像小團隊突然多了幾個人,而且不會抱怨。

但平行 session 會製造另一種成本:收尾。

每個 session 都可能產生 diff、假設、log、半成品和後續建議。這些東西不會自己合併成產品。最後還是有人要看、要挑、要拒絕、要整併,甚至要回頭處理兩個 agent 同時改到同一段邏輯造成的衝突。

所以平行不是不能用,而是要限制。

我會把它想成開分支,而不是開聊天視窗。每多開一個 session,就多一個需要 review 和收尾的工作狀態。小團隊如果沒有足夠 reviewer,平行 agent 很快會把「開發瓶頸」搬到「驗收瓶頸」。

這件事在帳單上不一定馬上看得出來。你可能只看到 agent 產出很多。但如果那些產出最後沒有人敢合,或每個 diff 都要花半小時重看,成本其實已經發生了。

成本也包含看不懂的結果

AI coding 的討論常把成本講成 credits、tokens、minutes。這些當然重要,因為它們會進帳單。

但小團隊更常被另一種成本打到:attention。

一個 agent run 如果最後只丟回「已完成」,但沒有說改了什麼、跑了什麼測試、哪裡沒驗證、哪些風險還在,reviewer 就要自己重新挖一次。這不是省時間,是把時間延後付款。

同樣地,一個看不懂的 diff 也是成本。它可能通過測試,命名也還行,但 reviewer 看不出為什麼要這樣改。這時候最誠實的做法不是硬合,而是要求 agent 回到更小的任務單位。

好的 agent 任務應該交回證據,不只是交回結果。

至少要有:

  • 修改了哪些檔案

  • 跑了哪些命令

  • 測試結果是什麼

  • 沒跑測試的原因

  • 哪些假設仍然沒有驗證

  • 下一步是否值得繼續花 agent time

這些資訊會讓 reviewer 比較快判斷:這次 run 是有價值的工作,還是一段需要停下來重切的嘗試。

小團隊需要的是 routing rule

不用把這件事做成很重的制度。

對一個兩三人的產品團隊來說,先有一張很簡單的 routing rule 就夠了:

bug hotfix,如果路徑明確,先人類自己改。

重複性整理、格式修正、測試 scaffold,可以交給短 agent run,但範圍要小。

跨檔案理解、風險 review、測試補洞、陌生模組探索,才值得開比較長的 agent session。

金流、權限、資料 migration、部署設定,不是不能讓 agent 參與,但要先寫清楚 scope、non-goals、驗證方式和停止條件。

AI review 不要自動套在每個 PR。把它留給風險高、跨模組、或 reviewer 容易漏看的改動。

平行 session 預設限制數量。不是因為 agent 不夠快,而是因為人類 review bandwidth 沒有一起變多。

這些規則不華麗,也不需要新工具。它們只是把「要不要跑 agent」從情緒決定變成工作流決定。

啟動前問三個問題

我現在比較喜歡在啟動 agent 前問三個問題。

第一,這次 run 要省下哪一種判斷?

如果答案只是「我懶得自己改」,那不一定不行,但要承認它可能不是高價值任務。如果答案是「我需要它先整理跨檔案脈絡,讓我做最後決策」,那就比較合理。

第二,它必須交回什麼證據?

沒有證據的 agent run 很難 review。你可以接受它失敗,但不能接受它失敗得不可讀。

第三,它什麼時候該停?

沒有停損點,agent 就會把不確定性轉成更長的 session、更大的 diff、更多 context。那看起來像努力,其實是在燒成本。

AI coding agent 最有價值的地方,不是讓每件事都自動化。

它真正有用的時候,是把人的注意力從低價值重複工作裡拿回來,放到真正需要判斷的地方。這件事需要成本意識,不是因為大家應該變得小氣,而是因為 agent 已經不只是回答問題的工具。

它會跑任務。它會消耗資源。它會產生需要被驗收的工作。

會算成本的團隊,不是少用 agent。

是知道什麼時候該讓它跑,什麼時候該讓它停,什麼時候乾脆自己動手比較便宜。

Source notes

CC BY-NC-ND 4.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!