跟 AI Agent 一起寫程式(二):怎麼開場——脈絡、計劃、拆任務
2026年5月30日 · wemee (with AI assistant)
📚 《跟 AI Agent 一起寫程式》 這是一個 7 篇的系列,記錄我跟 AI coding agent 真實協作、一起蓋出這個站的工作法。
上一篇講分工——agent 是協作者不是神諭。這一篇講一個更具體、也更反直覺的觀察:
一個 AI agent 任務的成敗,大概有八成在你按下 Enter 之前就決定了。
不是模型不夠強,而是大多數失敗的協作,都敗在開場。開場做對,後面順得不可思議;開場隨便,後面就是一連串「不對,我要的不是這個」的拉扯。開場的功夫,我拆成三件:脈絡、計劃、拆任務。
一、脈絡:它不讀心,你得把背景攤平
Agent 唯一能依據的,就是它「看得到」的東西。你腦中那些「不用講也知道」的前提,它一概看不到。所以開場第一件事,是把背景餵足。
但「餵足」不是每次都把一長串背景貼一遍——那很累,而且會吃掉它寶貴的工作記憶。聰明的做法是把穩定的脈絡固化成檔案,讓它每次自動讀到。
我這個站的根目錄有一個 CLAUDE.md,裡面寫死了 agent 該知道的常識:這是個 Astro 靜態站、用 Tailwind、配色是 Solarized dark(所以新 UI 要用淺色文字)、課程內容放哪、notebook 怎麼生、commit 規範是什麼……這些是跨任務都成立的背景,寫一次,之後每個任務它都自動帶著這層理解開場。
更細的,我還在每個子專案放 _CLAUDE.md 當「交接文件」。比如程式實驗室那個資料夾裡,就有一份記錄著「這條軌道為什麼這樣設計、notebook 為什麼要 output-free、加新課的標準流程」。這份文件最大的價值,是讓下一次的協作不用從零開始——哪怕中間隔了好幾天、agent 的工作記憶早就清空了,它讀一下這份交接,就接得上。
我把這種做法叫「context engineering」——脈絡工程。你不是在跟 agent 聊天,你是在替它佈置一個資訊環境。環境佈置好,它的判斷品質會肉眼可見地提升;環境一團亂,再強的模型也只能瞎猜。
一個實用的判準:如果一段背景你會講第二次,它就該被寫進檔案,而不是再貼一次。
二、計劃:在寫 code 之前先對齊方向
脈絡到位後,我幾乎不會直接說「開始做」。我會先要一份計劃。
上一篇提過那條「先討論再實作」的規矩,這裡就是它的具體形態:對任何不只是瑣事的任務,我會說「先給我做法跟取捨,別寫 code」。Agent 回一份計劃,我看過、調整、確認,然後才放它去實作。
為什麼這一步這麼值錢?因為討論階段的修正成本,比實作階段低一個數量級。
- 在計劃階段說「不對,這個資料應該存資料庫不是檔案」,改的是一句話。
- 等它已經照著「存檔案」的假設寫完三個檔案,你才發現,改的是三個檔案加它們之間的牽連。
我自己的體感是:花三分鐘看一份計劃,常常省下三十分鐘的返工。 而且看計劃還有個隱藏好處——它把 agent 腦中的假設逼到檯面上。很多誤會不是 agent「做錯」,而是它一開始就「理解錯」,而計劃是你最早能抓到這個理解錯的地方。
像當初決定要蓋哪些軌道、用什麼順序教,我們是先把整個學習路徑攤出來討論(經典 ML → 深度學習 → 各種應用),順序敲定了,才一條一條開工。如果跳過這步直接開做,很可能蓋到一半才發現「欸這兩條軌道的前後依賴反了」。
三、拆任務:把大象切成可驗收的小塊
第三件,是把任務拆到「每一塊都做得完、也驗得了」的大小。
這對人對 agent 都是好習慣,但對 agent 特別關鍵,因為它的工作記憶有限。一個塞了太多目標的巨型任務,會讓它顧此失彼——寫到第五個需求時,把第一個需求的細節給忘了。
整座程式實驗室,本質上就是一棵拆出來的樹:
區段 (/lab)
└── 軌道 (track) ← 例如「擴散模型」
└── 模組 (module) ← 例如「從零打造」
└── 課程 (lesson) ← 例如「手刻去噪 U-Net」
└── 一個 notebook + 一頁課文
每一堂課,都是一個獨立、完整、可驗收的工作單位:一個能在 Colab 跑起來的 notebook,加一頁課文。我可以叫 agent「做這一堂」,做完我當場就能驗——跑得起來嗎?概念講對了嗎?——驗過了再進下一堂。
這種拆法給了我兩個東西:
- 清楚的驗收點。每堂課都是一個 checkpoint,錯了就停在這裡修,不會把問題滾雪球滾到後面。
- 可重複的節奏。第一堂課我們一起把「一堂課該長怎樣」磨出來,後面六十三堂就是套同一個模子。Agent 最擅長的就是「照著一個立好的範本,又快又整齊地複製」——前提是你先幫它把範本立好。
拆任務還有個微妙的好處:它讓「進度」變得可見。六十四堂課聽起來像一座山,但拆成一堂一堂,每做完一堂就是一個實實在在的勾。對人的心理、對 agent 的專注,都有幫助。
開場三件事,其實是同一件事
回頭看,脈絡、計劃、拆任務,講的是同一件事的三個面向:在 agent 動手之前,先把『它需要知道的』跟『它該做到哪』講清楚。
- 脈絡回答「背景是什麼」——它在什麼環境裡做事。
- 計劃回答「方向對不對」——在花大力氣之前先對齊。
- 拆任務回答「一次做多少」——切成做得完、驗得了的塊。
這三件事都發生在「正式開工」之前,花的是幾分鐘;但它們決定了後面幾小時是順流而下,還是逆水行舟。我前面說「八成的成敗在按 Enter 之前決定」,指的就是這三件功夫。
下一篇要講一個更進階、也更有意思的開場技巧。前面講的都是「我知道要什麼,怎麼把它講清楚」;但有時候,我其實已經有答案了,卻故意不直接講——因為我想要的不是「我的答案」,而是更好的答案。那叫引導,我們下一篇聊。
留言 0
留言載入中…