任何使用 AI 代理進行程式開發的人都明白這個問題:提示詞已設定,計畫看似明確,但結果卻不盡理想。Anthropic 開發者 Thariq Shihipar 指出,對於 Claude 最新的 Fable 5 模型而言,這越來越不是模型本身的問題,而是使用者自身盲點所導致。
Shihipar 表示,Fable 5 是第一個輸出品質受限於使用者釐清「未知事物」能力的模型。「已知已知」(Known Knowns)是提示詞中已包含的資訊。「已知未知」(Known Unknowns)是你明知尚未解決但已意識到的問題。「未知已知」(Unknown Knowns)則指那些顯而易見到你從未寫下來,但一看到就能辨識的知識。
Shihipar 認為,最關鍵的類別是「未知未知」(Unknown Unknowns),意指你完全沒有考慮過的事物。
過於具體與過於模糊同樣糟糕
Shihipar 說,光是提前規劃是不夠的。未知事物可能在實作深處浮現,或者暗示問題應該以完全不同的方式解決。他認為,最優秀的代理程式開發者雖然未知事物相對較少,但仍始終預期它們的存在。
Shihipar 表示,過於具體可能導致 Fable 5 僵化地遵循指令,即使改變方向會更合理。而過於模糊則會讓模型根據產業預設值做出決策,這些決策可能不符合特定任務的需求。
Shihipar 寫道:「當你不考慮自己的未知事物時,你就會兩頭落空。」但他補充說,Claude 可以幫助你更快地發現自己的未知。它能高速搜尋程式碼庫和網路,並且比一般使用者更了解大多數主題。Shihipar 認為,關鍵在於向 Claude 提供關於你起點的上下文,也就是你目前的思維進度以及對該問題的經驗。
在開發前,系統性地揭露盲點
Shihipar 描述了在實際實作階段之前的幾種技巧。他稱之為「盲點檢視」(blindspot pass),即要求 Claude 識別你的「未知未知」。他說,當你在不熟悉的程式碼庫部分工作時,這種方法特別有效。
他建議的提示詞範例是:「我正在新增一個身份驗證提供者,但我對這個程式碼庫中的身份驗證模組一無所知。你能幫我做一次盲點檢視,找出我相關的『未知未知』,並幫助我更好地向你發出提示詞嗎?」
對於有許多「未知已知」的領域,例如視覺設計,Shihipar 建議進行腦力激盪和原型設計。他不會直接進入實作,而是讓 Claude 生成幾種截然不同的設計方向,以 HTML 文件的形式呈現,以便他能對其做出反應。他幾乎每次程式設計會議都以探索或腦力激盪階段開始,以有意識地定義專案範圍。
他描述的其他技巧包括結構化訪談,其中 Claude 會逐一向使用者提問關於模糊之處,並優先處理那些答案會改變架構的問題。Shihipar 說,參考資料也很重要。原始碼是最好的參考,即使它是用不同的程式語言編寫的。例如,Claude Design 會讀取網站的底層程式碼,而不僅僅是螢幕截圖。
在實際工作開始之前,Shihipar 會讓 Claude 建立一個實作計畫,重點放在最可能變動的部分,例如資料模型、型別介面以及使用者端的所有內容。機械式重構則放在最後。
在實作期間和之後,進行文件記錄與理解
Shihipar 警告說,未知事物在實作期間也會潛伏。他要求 Claude Code 維護一個臨時的「implementation-notes.md」檔案,記錄其所做的決策,以便從下次嘗試中學習。當出現意想不到的邊緣情況時,Claude 應該選擇保守的選項,記錄偏差,並繼續工作。
實作之後,Shihipar 推薦兩種技巧。首先是「提案與說明文件」(pitches and explainers),這是為利害關係人準備的摘要文件,其中包含原型、規格和實作筆記。其次是「測驗」(quizzes),由 Claude 生成一份 HTML 報告,詳細說明所做的變更,並提供上下文和見解,然後進行測驗。Shihipar 表示,他只有在無錯誤通過測驗後才會合併程式碼。
完全使用 Claude Code 編輯的發布影片
Shihipar 以 Fable 的發布影片為例,展示了這些技巧如何協同運作,該影片完全由他使用 Claude Code 編輯。他說,影片編輯對他來說是一個全新的領域。
他從自己已知的事物開始。Claude 可以使用程式碼編輯和轉錄影片。由於不確定準確性是否足夠,他請人解釋了 Whisper 如何進行轉錄,以及是否可以使用 ffmpeg 精確剪切贅詞和停頓。對於使用者介面元素的時間控制淡入,他使用 Remotion 建立了一個原型。
當影片色彩看起來平淡時,他首先嘗試讓 Claude 生成各種調色變體。但他意識到,在調色方面,他並不知道「好」的標準是什麼。因此,他沒有盲目評估變體,而是讓 Claude 教導他相關知識,以揭示自己的未知。
Shihipar 表示,模型越強大,只要方法得當,就能實現更多目標。如果一個長期任務偏離軌道,你可能需要投入更多時間來定義自己的未知,或者建立一個實作計畫,讓 Claude 能夠在其中即興發揮。
他寫道:「每一次的說明文件、腦力激盪、訪談、原型和參考資料,都是在問題變得難以解決之前,廉價地發現你所不知道的事物的方法。」Shihipar 還將他的技巧整理成視覺化版本,發布在一個網站上。
