我的 AI 導入之旅
我採用任何有意義工具的經驗是,必然會經歷三個階段:(1)一段效率低落的時期(2)一段勉強堪用的時期,最後則是(3)一段徹底改變工作流程與生活方式的發現期。
在大多數情況下,我必須強迫自己撐過第 1 和第 2 階段,因為我通常已經有一套自己滿意且習慣的工作流程。採用新工具感覺就像額外的工作,而我完全不想投入心力,但為了成為技藝更全面的職人,我通常還是會去做。
這是我如何從 AI 工具中找到價值,以及接下來想如何嘗試的歷程。在一片過度誇張、炒作的言論汪洋中,我希望這篇文章能呈現一種更細膩、更審慎的觀點,說明我對 AI 的看法是如何隨著時間改變的。
這篇部落格文章完全由我親手撰寫,用我自己的話完成。我很討厭必須特別聲明這點,但鑑於本文的主題,我想明確地說清楚。
步驟 1:捨棄聊天機器人
立即停止嘗試透過聊天機器人(例如 ChatGPT、網頁版 Gemini 等)來完成有意義的工作。聊天機器人確實有其價值,也是我日常 AI 工作流程的一部分,但在寫程式方面的實用性卻非常有限,因為你大多只能寄望它們根據先前的訓練產生正確結果,而要糾正它們,則需要由人(也就是你)一再告訴它們哪裡錯了。這非常沒有效率。
我想每個人對於 AI 的初次體驗都是聊天介面。而我想每個人初次嘗試用 AI 寫程式的經驗,也都是請聊天介面幫忙寫程式。
當時我還是個重度的 AI 懷疑論者,我第一次「哇」的時刻,是把 Zed 指令選單的截圖貼到 Gemini,請它用 SwiftUI 重現,結果它表現得非常好,讓我真的瞠目結舌。如今 Ghostty 在 macOS 上搭載的指令選單,僅是在 Gemini 幾秒內為我產生的成果上做了非常輕微的修改。
但當我試圖在其他任務上重現這種表現時,卻大失所望。在既有專案的脈絡下,我發現聊天介面經常產生很差的結果,而且我發現自己在介面之間來回複製、貼上程式碼與指令輸出,感到非常挫折。這顯然遠比我自己動手做還沒有效率。
要找到價值,你必須使用 agent(代理程式)。Agent 是業界通用的術語,指能夠在循環中對話並呼叫外部行為的 LLM1。Agent 至少必須具備以下能力:讀取檔案、執行程式,以及發送 HTTP 請求。
步驟 2:重現你自己的成果
在旅程的下一階段,我嘗試了 Claude Code。我長話短說:一開始我並沒有留下深刻印象。我的每一次對話都得不到什麼好結果。我覺得它產出的東西我都得再修飾一遍,而這個過程花的時間比我自己動手做還多。我讀了部落格文章、看了影片,但還是不怎麼驚艷。
我沒有就此放棄,而是強迫自己用 agent 的方式重現所有手動提交的成果。我真的是把工作做了兩遍。我會先手動完成工作,然後再與 agent 纏鬥,迫使它產出在品質與功能上完全相同的結果(當然,不讓它看到我的手動解法)。
這過程非常痛苦,因為它妨礙了我單純把事情做完。但我在非 AI 工具上的經驗已經足夠豐富,深知摩擦是自然的,如果不竭盡所能地嘗試,就無法得出堅定且站得住腳的結論。
但專業能力就此逐漸形成。我很快就從第一原理出發,親自發現了別人早已提出過的觀點,而親身發現讓我對其有了更扎實的根本理解。
- 把對話拆解成各自清晰、可執行的任務。不要試圖在一次龐大的對話中就「一筆畫出貓頭鷹」。
- 對於模糊的請求,將工作拆分為各自獨立的規劃階段與執行階段。
- 如果你給 agent 一種驗證其成果的方法,它往往能夠自行修正錯誤並防止退化。
更廣泛地說,我也摸清了當時 agents 擅長什麼、不擅長什麼,以及對於它們擅長的任務,該如何達成我想要的結果。
這一切帶來了顯著的效率提升,以至於我開始自然而然地使用 agents,而且感覺速度並不比自己動手慢(但我仍不覺得有比較快,因為我大多時候還是在照顧 agent)。
這裡值得重申的是反面觀點:此處的部分效率提升,來自於理解何時不該使用 agent。對 agent 可能會失敗的任務使用它,顯然是極大的時間浪費,而擁有能完全避免這種情況的知識,就能節省時間2。
在這個階段,我已經從 agents 身上獲得足夠的價值,很樂意在工作流程中使用它們,但仍不覺得看到淨效率的提升。不過我並不在意,在這個時間點,我已經滿足於把 AI 當作一種工具。
步驟 3:下班前的 Agents
為了試圖找到一些效率,我接著開始了一個新模式:每天保留最後 30 分鐘來啟動一個或多個 agents。我的假設是,如果 agent 能在無論如何我都無法工作的時間內取得一些正向進展,或許就能提升效率。基本上:與其試圖在擁有的時間內做更多,不如試著在沒有的時間內做更多。
和前一個任務類似,一開始我覺得這既不成功又很煩人。但我很快又發現了幾類真的很有幫助的工作:
- 深度研究時段,我會請 agents 調查某個領域,例如找出特定語言中符合特定授權類型的所有函式庫,並為每一套產生數頁的摘要,內容涵蓋其優缺點、開發活躍度、社群評價等。
- 讓平行運作的 agents 嘗試我腦中不同但沒時間著手實現的模糊想法。我並不指望它們能產出任何我會直接發布的東西,但或許能在我隔天處理該任務時,揭示一些未知的未知。
- Issue 與 PR 的分類/審查。Agents 很擅長使用
gh(GitHub CLI),所以我手動寫了一個快速腳本,能平行啟動一堆 agents 來分類 issues。我絕不會讓 agents 自行回覆,我只想要隔天的報告,以引導我找到高價值或低工作量的任務。
要說清楚的是,我並沒有像其他人那樣讓 agents 整晚循環運作。在大多數情況下,agents 在不到半小時內就完成了任務。但在工作日的後半段,我通常已經感到疲憊、脫離心流狀態,覺得自己效率太差,因此把精力轉向啟動這些 agents,反而讓我隔天早上有了「暖機啟動」,比原本更快進入工作狀態。
我感到很滿意,也開始覺得自己比使用 AI 之前做得更多,即使只是多一點點。
步驟 4:外包那些十拿九穩的任務
到了這個階段,我已經非常清楚我的 AI 擅長與不擅長哪些任務。對於某些任務,我非常有信心 AI 能夠達成大致正確的解法。因此,我旅程的下一步是:讓 agents 去做所有那些工作,同時我處理其他任務。
更具體地說,我會每天一開始先查看前一晚分類用 agents 的結果,手動篩選出 agent 幾乎肯定能妥善解決的 issues,然後讓它們在背景持續執行(一次一個,而非平行處理)。
同時,我會去做別的事。我不是去刷社群媒體(並沒有比沒用 AI 時更常去),也不是在看影片等等。我處於自己原本的、沒有 AI 時那種深度思考模式,專注於我想做或必須做的事。
在這個階段非常重要的一點:關掉 agent 的桌面通知。情境切換的成本非常高。為了保持效率,我發現身為人類,我的職責是掌控何時去打斷 agent,而不是反過來。不要讓 agent 來通知你。在工作自然暫停的空檔,再切換過去查看它,然後繼續手邊的工作。
重要的是,我認為「去做別的事」有助於抵銷那篇廣為流傳的 Anthropic 技能形成論文所提到的問題。畢竟,這是一種取捨:你沒有在委派給 agent 的任務上培養技能,但同時仍在你持續手動處理的任務上自然地培養技能。
在這個時間點,我已經堅定地進入了「再也回不去了」的領域。我感覺自己更有效率了,但即使不是,我最喜歡的是現在可以把寫程式與思考的精力集中在我真正熱愛的任務上,同時仍能妥善完成那些我不喜歡的任務。
步驟 5:打造駕馭系統
冒著說出顯而易見之事的風險:agents 在第一次就產生正確結果時,效率會高得多,最不濟也是產生只需極少修飾的結果。要達成這點最可靠的方法,就是給 agent 快速且高品質的工具,讓它能自動知道自己何時出錯。
我不知道這是否已有廣為業界接受的術語,但我已逐漸將其稱為「harness engineering(駕馭工程)」。它的概念是,每當你發現 agent 犯錯時,就花時間設計一個解決方案,讓 agent 永遠不再犯同樣的錯誤。我不需要在這裡發明任何新詞;如果已有其他術語,我樂於跟進。
這有兩種形式:
更好的隱含提示(AGENTS.md)。對於簡單的問題,例如 agent 反覆執行錯誤的指令或找到錯誤的 API,請更新
AGENTS.md(或等效檔案)。這裡有一個來自 Ghostty 的範例。該檔案中的每一行都是基於一次不良的 agent 行為而寫,幾乎完全解決了所有這些問題。實際的、程式化的工具。例如,用來截圖、執行篩選過的測試等的腳本。這通常會搭配對 AGENTS.md 的修改,讓 agent 知道這些工具的存在。
這就是我目前所處的階段。每當我看到 agent 做了件壞事,我都會認真努力設法防止它再次做出同樣的壞事。反之,我也正認真努力讓 agents 能夠驗證自己正在做對的事。
步驟 6:讓 Agent 持續運行
與步驟 5 同時進行的,我還抱持著一個目標:讓 agent 隨時都在運行。如果沒有 agent 在運行,我就會問自己:「現在有沒有什麼事是 agent 可以幫我做的?」
我特別喜歡將這與較慢、思考更深入的模型結合,例如 Amp 的 deep mode(基本上就是 GPT-5.2-Codex),它可能需要 30 分鐘以上來進行細微的修改。其代價的另一面是,它往往能產生非常好的結果。
我目前還沒有同時運行多個 agents,而且現在也不太想這麼做。我發現只運行一個 agent 對我而言是很好的平衡,讓我既能從事我喜歡的深度手動工作,又能照顧我那有點笨卻又莫名高產的機器人朋友。
我不想為了運行 agents 而運行 agents。我只想在有我認為真正有幫助的任務時才運行它們。這個目標的部分挑戰在於改進我自己的工作流程與工具,以便能有源源不絕的高品質工作可以委派。而這,即使沒有 AI,也很重要!
現況
而這就是我目前的狀態。
經歷這段旅程,我個人已經到了一個能成功運用現代 AI 工具的階段,並且我相信自己正以一種務實、立足於現實的審慎觀點來看待它。我真的不在乎 AI 是否會長久存在3,我只是一個熱愛打造東西、享受過程本身的軟體工匠。
整個領域變化如此迅速,我確信很快回頭看這篇文章時,就會嘲笑自己的天真。但正如人們所說,如果你不會為過去的自己感到尷尬,那你大概就沒有在成長。我只希望自己能朝對的方向成長!
我在這方面沒有任何利害關係4,當然,除了實用性之外,也還有其他理由讓人選擇不使用 AI。我完全尊重每個人對此的個人決定。我不是來試圖說服你的!對於有興趣的人,我只是想分享我個人摸索這些新工具的方法,並一窺我一般是如何看待新工具的,無論是否與 AI 相關。
註腳
隨機一篇部落格