Ralph 就是一個 bash 迴圈。把規格丟給 coding agent(會自己讀檔、改程式、跑指令的 AI 工具),叫它從清單裡挑一件最重要的事做完,然後整個重來,一直跑到測試通過。
Geoffrey 是在 2025 年 2 月摸出這套做法的。那時他在做照規格開發,越做越覺得整個流程可以變得很機械。他拿它來 clean-room 重做別人的產品:先讓 LLM 把原始碼整理成規格,再照規格重寫,HashiCorp Nomad、Tailscale 的功能都這樣複製過。
名字有兩層意思。Ralph 在英文俚語裡是嘔吐,他說看清楚接下來會發生什麼的那一刻,他真的想吐,因為他已經能在睡覺時產出軟體。
到了 7 月,他在舊金山一場 meetup 第一次公開示範,在場的 Dex Horthy 等十幾個人聊到半夜。他知道消息會傳出去,得取個名字,就挑了《辛普森家庭》的 Ralph Wiggum:有點笨、很可愛、永遠不放棄。
他算過,用 Sonnet 4.5 跑 Ralph 迴圈,一小時大約 10.42 美元。這比很多地方的速食店時薪還低,那晚舊金山的人就是聊這個聊到停不下來。
他拿貨櫃來比。貨櫃發明以前,每噸運費貴得嚇人,發明以後變成幾分錢。Ralph 對寫程式的成本也是這種等級的變化,而且回不去了。
所以他說,如果你對公司的價值是在鍵盤上打字,自動跑的 agent 就做得到,PM 也可以直接叫 agent 做。
工程師的工作還在,只是換了內容。怕 agent 把資料庫刪掉?那就別給它寫入權限的金鑰、加測試、開 change data capture、留稽核紀錄。他把這些叫 back pressure:擋住壞結果的機制越多,agent 能放手自己跑的時間就越長。
他自己已經走到很極端的地方:不用 CI,agent 在一台跑 NixOS 的實體機上拿 sudo 權限做事,他不看程式碼,agent 直接推 master,30 秒內上線。出問題的訊號會回灌到 agent 正在跑的 session,讓它自己修。
他也說不一定要這樣硬推上線。讓 agent 自己開 feature flag 做實驗、確認沒問題再切換,一樣算數。
Geoffrey 很習慣把模型當人看。他說 Sonnet 3.5 是「吸了古柯鹼、手拿主廚刀的松鼠」:很會做事,但一沒盯著就把整個 codebase 砍爛。他做的 Cursed 程式語言看起來一團亂,就是那隻松鼠的關係。
Opus 很能幹,產出也好,就是有點健忘,一次給太多目標會漏掉一個。Ralph 一輪只做一件事,剛好治這個毛病。
GPT-5 剛出來時,大家覺得它很「膽小」。後來才知道它不喜歡被大寫字吼,被吼就不太敢動手,OpenAI 的官方調校指南也寫了別對它吼。問題是很多 Cursor rules 是照 Anthropic 模型的習慣寫的,裡面一堆大寫強調,換成 GPT-5 自然變差。MCP server 也一樣,多半是照 Anthropic 模型調的。
他的結論是:很多時候不是模型不好,是沒人幫它調過。至於「你是一位資深 QA 工程師」這種角色扮演 prompt,他說早就沒用了。技巧會過期,但還是得現在就開始玩,才知道哪些做得到。
他希望工程師把 context window 想成記憶體裡的一個陣列。伺服器那邊沒有記憶,每次送 prompt,就是把整個陣列用一般的 REST 請求丟出去。模型說要跑 ls,harness 就把結果塞回陣列,再送一次。Ralph 做的事,就是把這種工具呼叫再往上自動化一層。
標示 200K 的 context window 是行銷數字,像硬碟標 20TB 實際只能用 18TB。模型本身大約吃掉 16K,Cursor 或 Claude Code 這類 harness 再吃 16K,剩 176K 左右。裝幾個 MCP server 會掉到 120K 上下,再加 Cursor rules,有人還沒開始做事就用掉八成。
所以 Ralph 刻意少塞東西,只叫模型挑最重要的一件做。很多人習慣先把任務拆成好幾個階段,像帶小孩一樣一步步交代。他建議反過來:LLM 很會排優先順序,從零照規格做新專案時,它自己知道該先做 log 模組、再做 telemetry、再做資料庫那層。
他最想避開的是 compaction,也就是對話太長時工具自動把前文壓縮。他比喻成抽 Jenga 的底層積木,或把同一支影片反覆上傳下載,每次都會失真。要是規格被壓掉,模型就開始亂編。主持人補充,就算還沒壓縮,模型也會因為快滿了而焦慮,開始抄捷徑。
另外有研究指出 context rot:用到六七成以後模型會變笨,Dex 叫它 dumb zone。日常用法也一樣,換新任務就開新對話。他看過有人先叫 AI 把網站改成粉紅色,同一個對話再叫它寫 API,結果後端 API 也帶著粉紅色。
Steve Yegge(他在 Sourcegraph 的前同事)在跨年夜發了〈Welcome to Gas Town〉,開頭就說別用 Gas Town,但附了一張分級圖,讓你看自己走到哪一階。
他說不能跳級,那些故障要自己踩過才懂 Gas Town 為什麼存在。到第 5 階你就會開始懷疑 code review、agile、每日站會:幾個小時生出 4 萬行的 PR,人要怎麼看?他的答案是某些領域、尤其產品端,乾脆不 review,改把力氣放在安全上線,把看到的故障做成 pre-commit hook,或在 Ralph 跑完後再跑別的 Ralph 檢查。
他自己的 Gas Town 叫 Loom。他已經複製了 GitHub、Amp、Daytona,還有自己的版本控制和專給 agent 用的檔案系統,下一步想做 LaunchDarkly 那種 feature flag。目標是會自己演化的軟體。
他也丟了一個問題給大家:Unix 這 40 年的設計,TTY、shell、環境變數,全都是為人做的。如果使用者是 agent,user space 還需要存在嗎?他想去找「agent space」長什麼樣。
他認為每個開發者都該自己做一次 coding agent。拆開來看就是大約 300 行程式:一個陣列,加上讀檔、改檔、bash、搜尋幾個工具,搜尋其實就是用 bash 跑 ripgrep。Cursor、Windsurf 這些公司做的東西本質差不多。他在 GitHub 上有免費 workshop,30 分鐘就能做完。
他說他比較信任親手拆過化油器的修車師傅。自己做過一次,就知道這不是魔法,只是一個 while true 迴圈加 REST API。
懂了這點,也會發現很多產品沒有護城河。一個人花三天直播,就能把三四家千人公司做了六年的核心功能複製出來。幾個住在峇里島、成本極低的人,可以用完全不同的價格殺進市場,他說這就是 Clayton Christensen 講的破壞式創新。
對個人來說,他用績效曲線來講:去年在大廠是高績效,今年可能變低績效,因為旁邊的人已經有自己的 Gas Town。他說這跟 AI 搶工作無關,問題出在你沒有保持好奇、沒投資自己。
他的建議是別當服務生,也別當只會接 Jira 單的人,要當會診斷問題的醫生,盡量靠近 PM 和客戶。
如果公司裡 AI 不好用,他說那是公司的問題,常見是一堆為人類可讀性定的規範,逼 AI 逆著木紋做事。他問的是:你在家有沒有自己玩?公司跟不上,你可以換一家懂的公司、自己出去做,或者撐過三四年的 AI 轉型計畫。
收尾時他說,工程師現在的工作就是設計回饋迴圈,找出能回灌給迴圈的資料來源。Ralph 也只是把回饋迴圈接回自己身上,直到做完。
如果你覺得別人已經領先一年追不上,他說你其實還算早:Claude Code 的官方外掛(Anthropic 出的 Ralph 外掛)才一萬人左右裝過。不過他提醒,官方外掛的走法會碰到 compaction,最好像學「Kubernetes the hard way」那樣,自己一步步把 context 工程搞懂。他和 Dex Horthy 另外錄了一支影片,講為什麼 Anthropic 的外掛不是正解。
他的文章都放在 ghuntley.com,留 email 就能免費看,付費只是早 48 小時讀到。
※ 來源:Dev Interrupted #256〈Inventing the Ralph Wiggum Loop | Creator Geoffrey Huntley〉(Spotify)/YouTube 版
※ 延伸閱讀:ghuntley.com/ralph、ghuntley.com/agent(自己做 coding agent 的 workshop)、Steve Yegge〈Welcome to Gas Town〉、Cursed 程式語言
※ 逐字稿以 Whisper(medium.en)轉寫節目公開 RSS 音檔,並對照 YouTube 原音自動字幕(en-orig)與節目說明校正人名、數字和專有名詞。本文為非官方整理,以原節目為準。