我在週二早上核准了一個提示詞,然後去泡了一杯愛爾蘭午後茶。等我回來時,那個區塊已經完成、測試過,還比我要求的更周全。我端著杯子站在那裡,突然意識到自己從來沒有決定過,這種周全是否應該被放進那個區塊裡。其實我也沒有真正決定過那個區塊本身。

自 2025 年 7 月以來,已經公開了 62 個儲存庫。拿下 3 場黑客松冠軍、2 場挑戰賽冠軍、在公共部門 AI 領域做了 2 場演講,還有一份平日的工作,是替郡政府跑法院作業。替我寫程式碼的代理 Kiro 不會累,審查它的 Claude 也不會。我會累,但我還是繼續做下去。

我還沒把這件事修正好。我現在仍然身在其中。

我看到大家大多在談速度。更快上路、更快完成建置、更快進到程式碼裡。快是好事。一天裡就那麼多小時,而我們一直在維護、原型開發,還有用盡這些時間衝刺。我比較少看到的是,怎麼替一個結束設計好收尾,或怎麼決定什麼值得開始。你有嗎?

我把一個資料夾標成可丟棄,結果我們把它做成了可上線等級

先講短版;如果你錯過了,長版在這裡。Block Zero 是在 Porch Light 上的一個公民工具,用來讀取 Ventura 的公開會議議程,它存在的目的只是回答一個問題:這個技術堆疊能不能部署。我那天早上把那個資料夾標成 [THROWAWAY],並且只編列了兩小時。

結果它花了一整個建置日。到最後,裡面有一個保護供應商提供的日誌模組的位元完全一致性測試、精確鎖定的依賴版本,以及一個帶有漂移偵測的同步腳本;而這一切都在一個已經標記要刪除的資料夾裡。這些都是 Kiro 提出的。Claude 審查後沒有反對。我核准了。每一個決策單獨看都說得過去。

但當時我沒有一個理由,除了沒有人會去查那個標籤。我明明帶著不要過度工程化的決心進去建置,最後還是過度工程化了。Mikhail 在留言裡一針見血地點出為什麼這件事值得說出口:知道有陷阱,不代表你就不會掉進去。這也是為什麼檢查清單要列那些大家本來就知道的專案。

我會停下來的原因,也是他們不會停下來的原因

我是在一篇體育文章裡找到這個原因的,這不是我原本會去找的地方。我幾乎只看籃球,不過這篇我還是點進去了。

Chris Borland 因為擔心腦損傷,在 24 歲時退出 NFL。在一篇為 The Athletic 撰寫的文章裡,他談到這之後的十年,也談到如何同時保持企圖心與滿足感。我就在那裡碰到了這個詞:satisficing。文中寫道,這不是降低標準,而是在邊際效益遞減時踩下的停止線。

這個詞來自 Herbert Simon,他把 satisfy 和 suffice 組合成這個概念。Simon 因為有限理性在 1978 年拿到諾貝爾經濟學獎。有限理性的意思是,人不是決策機器。我們無法吸收所有資訊、衡量一切,然後產出最佳選擇,因為我們的時間、資訊和注意力都有限(Simon, 1955)。

他對如何在這個限制中生活的策略有三個步驟:

  1. 設定一個足夠好的標準。
  2. 找到第一個符合標準的東西。
  3. 繼續往前。

第三步才是關鍵。大多數浪費,都耗在為了找一個只比第一個可接受答案稍微好一點的解答。提醒自己這點!

Simon 也主張,環境會透過問題空間來塑造決策,也就是你的思維必須跨越的地面,才能從問題走到解答(Simon, 1956)。有些地面很簡單,努力會直接有回報。想變強,就去舉重。其他地面則很複雜,單靠努力不一定有回報。在那種地方愈拼命,帶來的往往是猶豫與超載,而不是更好的結果。

這就是讓我重新看待 Block Zero 的那一段。satisficing 是對稀缺性的適應。我們會停下來,是因為我們的時間會用完。這就是那個直覺存在的全部原因。

但我的代理沒有這種稀缺性。Kiro 會一直把一個可丟棄的資料夾硬化下去,直到有東西阻止它,而它新增的每一樣東西在局部上都很正確。它不會在午夜覺得累。它也沒有「這個專案有形狀,而且那個形狀有終點」這種感受。原本會阻止工作的限制,是我自己;而我把工作交給了一個不共享這個限制的東西。

而且不只是建置這件事。Claude 起草架構與文件。ChatGPT 幫忙判斷要做什麼。Gemini 做視覺設計。Kiro 寫程式碼。每個階段都變快了,包括我決定某件事值不值得先開始的那個階段。那個階段沒有測試套件、沒有檢查點,也沒有 diff 可以拿來對照決策。我拿著杯子站在那裡時,正好就在那個階段裡。

所以現在停止線必須改成手動安裝。這是一個新的工作,還是我一直在做、卻沒注意到自己在做的老工作?我覺得這是新的,而且如果你有不同解讀,我會很想聽聽。

停止線要寫進計畫裡,不是寫進我的意志力裡

有兩個地方,因為有兩個尺度。

每個區塊一個:嚴謹度預算。 我在 Block Zero 那篇文章裡用過這個說法,但當時我還不知道怎麼把它做出來。留言裡有兩個人給了我具體形狀。

Suzanne Chartier 建議用一份導引文件,依照工作是探索型、暫時型,還是要進入正式生產,來定義不同層級的嚴謹度,並由人來決定適用哪一層。anassBld 則描述了他們團隊在 spike 階段強制執行的規則:Phase 0 完全不做抽象化。只用一個平鋪的腳本、直接的憑證檢查、一次呼叫、斷言輸出、印出收據、然後退出。只有在原始執行先被現實驗證之後,才談架構。

我現在用的就是這兩種做法的結合。每個區塊在提示詞送出前,都先決定一個等級,而且只靠一個問題:這段程式碼在區塊通過之後會怎樣?如果會被丟棄,就是 spike 等級;如果會保留並繼續建立在上面,就是 working 等級;如果會被使用者碰到,就是 full 等級。

真正讓它能落實的,是我把這些等級寫成禁止事項,而不是努力程度。「spike 嚴謹度」這種說法只是感覺,沒人能檢查。「不要測試檔、不要鎖定依賴版本、不要同步腳本、不要在這個資料夾外做重構」則是一份可以拿來對照 diff 的清單,代理也一樣能檢查。這個等級不只寫進導引文件,也寫進提示詞本身,放在「不要重構其他程式碼」那行旁邊;那行已經在我每一份提示詞裡放了一年。

有些事情不是靠等級就能延後處理。像是對外的速率限制,因為抓取迴圈第一次執行就會打到別人的市府伺服器。還有日誌絕對不能包含的內容——Porch Light 真的曾因為框架預設值,把模型的思考內容印到 stdout,而因此漏出資料。每次 fetch 都要包 try/catch。成本與迴圈上限。這些都不是程式品質問題,而是在任何檢查點來得及攔下之前,就已經落到我倉庫外面的傷害。

每個專案一個:在第一天就寫好的收尾區塊。 我在別的地方還沒看過這種做法,這也許比較能說明的是我讀得不夠,而不是這件事不存在。我會這麼做,是因為我一直遵守的規則失效了。

我原本的固定規則是:當熱情消失時,就把專案先收起來。問題是,沒有機制的規則,感覺跟放棄一模一樣。所以 Porch Light 的建置計畫裡,在 Block 1 之前就先寫好了 Block 7:當得獎結果公布後的隔天該怎麼辦,先在事前決定,而不是當下臨時決定。設定每月的美元上限,超過之後它就會自動進入休眠。留一份交接筆記給未來的我,內容包括它做什麼、哪些地方是 stub 以及為什麼、以及什麼情況下值得再把它撿回來。最後在 wins 檔案裡誠實記一筆,包括它如果沒有得名也一樣要寫。

這個機制的作用,是把「先收起來」變成一個完成的步驟,而不是遺棄。至少理論上是這樣。Block 7 還沒跑過,所以等十月再問我。

有時候,更多才是對的;判斷標準是另一端站的是誰

Block Zero 花上一整天,正是我接著問下一個問題的原因,而我問的是整個建置流程。這條 pipeline,為了讀 15 份議程,真的有必要做到這麼過度工程化嗎?鎖定、重試層、花費上限、誠實的空狀態——全都只為了一個小城市。

我的答案是否定的,而原因跟程式碼完全無關。已經有工具在監看公開會議議程了。那些工具賣給遊說人士和政府事務團隊,價格就是按這種職業的人來定的。那個可能會失去一塊停車場的居民,卻什麼都沒有。若一個不穩定的公民版工具存在,只會證明企業版定價是對的,證明這件事很難,也證明一般人不該期待它。若一個可靠的工具存在,證明的就是相反的事。

所以,可靠性工程本身就是論點,而不是包裝這個論點的裝飾。我不能只問程式碼感覺如何來得到答案;我要問的是,另一端站的是誰,以及一個不穩定的版本會替他們證明什麼。

這讓我現在的位置是什麼

這兩個機制都能讓工作停下來。但兩者都沒有決定該有多少工作,而這正是我卡住的問題。我的代理不會累,所以所有的疲累都落在我身上,這也讓我接下什麼事,變成了我自己的問題。

我還沒有解決這件事。我有兩個在兩種尺度上都有效的機制,但對於這樣的速度,我還沒決定要不要繼續下去。

我一直在反覆思考的是:下一步我該接什麼,而接下它的誠實理由是什麼。什麼時候才是停止一件仍然有效的事情的正確時機。這個速度到底是季節,還是習慣;而這兩者的差別是否重要。答案究竟是放慢腳步,還是重新組織,而這兩個選項其實並不相同。

我很想知道其他人是怎麼處理這件事的。不是生產力答案,而是真實的答案。你們刪掉了什麼、代價是什麼、以及最後是什麼告訴你:是時候了。


參考資料

Borland, C. (2026, September 9). I walked away from the NFL at the age of 24. Here's what I've learned since. The Athletic. https://www.nytimes.com/athletic/7574837/2026/09/09/chris-borland-nfl-lessons-retirement/

Cordero, L. (2026). Block Zero: Oh no. Claude, Kiro, and I over-engineered the throwaway. DEV Community. https://dev.to/earlgreyhot1701d/block-zero-oh-no-claude-kiro-and-i-over-engineered-the-throwaway-5d42

Simon, H. A. (1955). A behavioral model of rational choice. The Quarterly Journal of Economics, 69(1), 99–118. https://academic.oup.com/qje/article-abstract/69/1/99/1919737

Simon, H. A. (1956). Rational choice and the structure of the environment. Psychological Review, 63(2), 129–138. https://doi.org/10.1037/h0042769

The Nobel Foundation. (1978). The Sveriges Riksbank Prize in Economic Sciences in Memory of Alfred Nobel 1978. NobelPrize.org. https://www.nobelprize.org/prizes/economic-sciences/1978/summary/


如果你是第一次看到這裡,補充一下背景。我在加州法院工作,負責替郡裡跑法院作業。我從 2025 年 7 月開始用 AI 建置,從那時起就一直公開學習。我不寫程式碼;我負責指揮,代理產生,我驗證並做決定。我打造的是 Clew Suite,一套讓複雜系統更容易檢視的公民科技工具。這就是我寫作的視角。

AI 協助。人工核准。NLP 驅動。


原文出處:https://dev.to/earlgreyhot1701d/my-agents-never-get-tired-i-do-on-satisficing-1mb


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝32   💬1  
492
🥈
NewsData
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登