AI Engineer Europe 2026 · 工作坊 · 2026-05-04 · 108 分
Ralph loop 動手做工作坊
Ralph Loops: Build Dumb AI Loops That Ship · Chris Parsons,Cherrypick
兩小時工作坊,Chris Parsons 帶大家把同一個 prompt 包成迴圈,讓 Claude Code 一張張做完 ticket,也談沙盒、skill、人該留在哪裡。
概要
- 迴圈取代複雜流程Chris 把原本維護得很辛苦的 n8n 電子報流程,改成一個 skill 加 Claude Code 自己的迴圈,初稿比以前連貫,並說這在最新一代模型才開始行得通。
- 最笨的版本就是 while 迴圈Ralph loop 是反覆丟同一個任務,現在更常見的是外層 while true 搭配 claude -p,或 Claude Code 的 loop 功能;成效全看 prompt 與回饋寫得好不好。
- 先別平行,讓 AI 選下一張Chris 試過六七個 agent 平行處理有依賴的 ticket,結果互相等待、重複實作,建議先跑單一迴圈,請 AI 自己挑最重要的下一張。
- 權限與沙盒要自己衡量Chris 把工作放在遠端 VPS、用專屬 key、email 只准草擬,並提醒 lethal trifecta,自己不開 dangerously skip permissions。
- 人留在判斷與最後確認Chris 不讓 worker 自行結案,以免累積 cognitive debt;可逆而不讓自己難堪的事才交給 AI,策略與審查仍自己做。
- 瓶頸在協調與審查團隊用 AI 變慢,常是因為真正的瓶頸(例如 release 流程)沒處理;Chris 也說自己現在永遠是那個瓶頸。
原話
▶ 27:23“the bottleneck is usually not the number of agents.”
瓶頸通常不是 agent 的數量
▶ 55:33“There's definitely confirmation bias going on with agents”
agent 之間確實存在確認偏誤
▶ 1:07:15“My basic rule is, is this reversible without embarrassment to me?”
我的基本規則是:這件事能不能撤回而不讓我難堪
▶ 1:20:47“we're basically in the era of free tokens right now”
我們現在基本上處在免費 token 的年代
▶ 1:46:54“I'm always the bottleneck.”
我永遠是瓶頸
延伸
- 有聽眾問到 BMAD 這類涵蓋完整開發流程的做法,Chris 說可能在最後再談,這場後來沒有展開。
- 對 Gastown 這類多 agent 編排工具,Chris 說現在還是「狂野西部」,自己早期試過 Gastown 沒跑起來,傾向先從單一迴圈開始。
- Chris 幾次提到 Mythos:自己沒用過,聽用過的人說不錯,但覺得多半是行銷,要等等看。
章節
點時碼直接跳到原片的那一段。
- 開場與 Chris 的背景兩小時動手工作坊,大家在自己的筆電上做 Ralph loop,用一個玩具級的 Pomodoro 計時器練習。Chris 先舉手調查誰在用 Claude Code 或 Codex 寫程式,再說明自己是 CTO 出身、有約 30 年軟體經驗,現在整天跑 Ralph loop 處理 email、行事曆、電子報與客戶工作。
- n8n 流程換成 skillChris 原本用 n8n 做每週電子報,光做出來就花約一週,而且幾乎每週一下午兩點都收到失敗通知。後來把 n8n 的 JSON 貼給 Claude Code 請它寫成 skill,初稿反而比舊流程連貫,並說這要到 GPT-5.x 與 Claude Opus 4.6、Sonnet 4.6 以上的模型才行得通,大約是去年 11 月底開始出現的那一代。
- Ralph loop 的由來這個做法最早來自 Geoffrey Huntley,名稱取自辛普森家庭的 Ralph Wiggum,意思是同一件事一直重試,最後總會成功。做法是任務做完後再給 AI 同一個 prompt,它常會回頭發現自己漏掉的東西。
- 現場示範:重跑同一張 ticketChris 用自己 vibe-code 的 Pomodoro 計時器示範:Claude Code 依 ticket 加上 status 指令與測試,第二次重跑時發現漏改狀態。早期靠 stop hook 重送指令,後來改成外層 while 迴圈,最笨的 Ralph loop 就是這樣。中間斷網改用手機熱點的時間併在這一列。
- 動手一與 BMAD 提問請大家 clone repo、實作第一張 ticket,先別做更多。等待時有聽眾問,能不能用 Ralph loop 跑完整個軟體開發流程(BMAD),Chris 說最後再談,並提到下一步的想法是從 Matt Pocock 的影片學到的。
- 一疊 ticket 與下一張把 loop 對準整堆待辦才是重點。Chris 曾拆 ticket、排依賴、開六七個平行 agent,結果互相等對方、同一張共用 ticket 被做了兩次,事後覺得那是把瀑布式流程交給 Claude。改成請它自己選下一張最重要的 ticket,依賴交給 AI 即時判斷,並建議先別管平行。
- 示範:while 與 claude -p現場請 Claude 用 TDD 實作下一張最重要的 ticket,它讀完三張後自己挑了第二張,但沒有分次 commit。Chris 接著示範外層 while true 搭配 claude -p,說明要事先選好權限;示範用的腳本回饋很少,不適合上線,prompt 也要依自己的標準調整,例如加上 simplify。
- agent teams 與 skills有聽眾問到 superpowers 這類 skill 集:Chris 的做法是把整個 repo 丟給 Claude,請它找出自己 skill 缺的部分再補成自己的版本。現場也試了實驗性的 agent teams(搭配 tmux),Claude 判斷 ticket 全得照順序做,所以沒有平行,看起來也只是當 subagent 在跑。
- 怎麼定義「好」有聽眾問電子報怎麼知道寫得好。Chris 本來就手寫過,把好的電子報貼給 AI 歸納編輯原則,再由自己確認,人的品味仍然需要。另有「模擬受眾」skill,用客戶 persona 平行審稿,常提醒自己一篇塞太多想法,該聚焦一個主張。
- /loop 與 skillsClaude Code 的 loop 功能用 cron 每分鐘接著做下一張 ticket,也能設成每小時查 Linear 新 bug。Chris 認為軟體開發本來就是個大迴圈,並介紹 skill 是目前打包脈絡與腳本最好的方式,自己約有 50 個,簡報就是用圖片 skill 加投影片 skill 做的;這類 session 約三天就要重開。
- 回饋機制與 Ralph skill有聽眾分享用截圖讓 Claude 看版面的 loop,Chris 補充 Playwright 與 Claude in Chrome 成效不一。回答「重做已完成的 ticket 會不會檢查品質」時則說全看 loop 怎麼寫,並展示自己的 Ralph skill:定位成接力隊的一名工程師,一次只做一個改變、丟掉脈絡再開始,還寫了 ticket 格式、git 狀態檢查與當機後的復原規則。ticket 系統用 flat file、Beads、Linear 或 Jira 都行。
- 沙盒與致命三角Chris 多數工作在遠端 VPS 上,只放專用的 key、開發工具多半唯讀、email 只准草擬不准寄,也介紹 Docker sandbox,並提醒 Simon Willison 提出的 lethal trifecta:不受信任的輸入、網路存取、重要的機密資料同時具備就會外洩。自己不開 dangerously skip permissions,但預設開了不少權限。
- 驗證交給 subagent有聽眾說把驗證改交給 subagent 後才開始找得到問題,Chris 同意 agent 有確認偏誤,subagent 只帶少量脈絡所以更有力。Claude Code 內建的 simplify 會跑三個 subagent 檢查最近的改動,現場也找出並修掉一批問題。
- 對 spec-driven 的保留被問到 OpenSpec 或其他 spec-driven 做法,Chris 說不太喜歡,怕走回瀑布式,偏好隨做隨寫的 just-in-time spec;也擔心有些工具把 spec-driven 寫死進產品,等於把今天有效的流程固化,等 Mythos 出來可能就不適用了。
- 人還剩什麼價值有聽眾問,人不在迴圈裡的話 Claude 還需不需要人。Chris 說自己為此有點存在危機,AI 寫的 spec 可能比自己寫的還好;目前正在做一個「Startup」skill,讓 loop 引導產品走完創業框架、自己決定下一件最重要的事,並展示它自己做出的投資人更新簡報,數字不可信,但認為問題出在 skill 檔而不是 agent。
- 一切都是 loopChris 的日常有每 15 分鐘的 heartbeat(查行事曆、傳 Telegram 訊息)、早上 6 點的晨報,以及一個自己 vibe-code 的看板 app 讓 worker loop 逐專案做下一步。早上常有 15 或 16 封草稿信等著改;規則是不可逆又會讓自己難堪的事不做,所以不寄信、不發 LinkedIn,做簡報則可以。策略與幫組織想 AI 的工作,也刻意留給自己做。
- 何時停與 ticket 來源被問到開放式任務怎麼停,Chris 說每個 loop 有自己的 skill,worker 在脈絡快用完或碰到不可逆動作時停下,更新專案檔交給自己審。關於 ticket 怎麼寫,分成兩種模式:規格可信又有回饋時全自動;其餘就在 Claude Code 裡讓它提問、自己回答。給別人用的程式碼,尤其安全相關,仍會讀 diff。
- session、脈絡與認知債slash loop 用同一個 session,外層 while 則每次是新 session;Chris 偏好新脈絡,因為檔案可以自己讀、Opus 的長脈絡檢索很好。worker 不能自行結案,最後由自己確認,以免產生 cognitive debt;每晚也請 Claude 把當天各台機器的 session 整理成摘要。
- token 成本有聽眾問要不要優化掉多餘的步驟,Chris 的答案是直接燒 token,現在是免費 token 的年代。自己用 Max 20 方案,每週常接近上限,也提到剛出的 GLM 新模型看起來有希望。
- skill 版本與效果Chris 說 prompt 就在 skill 裡,由 Claude 寫與維護,放在 .claude/skills 或家目錄並用 GitHub 版控。被問到怎麼知道有沒有進步,則承認很主觀,只用別的 skill 做壓力測試,沒做過盲測,因為 Claude 本身不確定性高。目前正在做 AirSkills 來打包與版本化 skill。
- 知識管理的 vaultChris 分 code 與 vault 兩個目錄,vault 是從 Obsidian 累積下來的數千份 Markdown,採 Zettelkasten 一則筆記一個想法,另有 projects、通話逐字稿,並用命令列 embeddings 工具做搜尋;也建議從今天就開始累積。
- skill 分享的摩擦自己用時 symlink 加 GitHub 就夠,難在分享:npx skills 要為單一 skill 開 repo,寄 zip 或用 submodule 都不合理,plugin marketplace 版本化的是 plugin 而非 skill。別人貢獻的修改該不該合併,Chris 也說這些都還沒解決。
- 團隊協調與瓶頸被問到三位工程師的團隊怎麼協調,Chris 建議 ticket 系統接上 AI、開工前先認領,也許團隊本來就太大;也講了 theory of constraints:月底才 release 卻一次出 200 個 PR 會更慢,要先修瓶頸。對多個微服務 repo,則說 repo 結構不重要,從上層資料夾啟動即可,真正要處理的是 release 依賴。
- 多 agent 編排工具被問到 Gastown、MCP Agent Mail,Chris 說試過 Gastown 但沒跑起來,覺得大家把事情想得太複雜,瓶頸是描述需求與審查,不是 token 速度,比較看好讓不同模型或全新脈絡來反駁,並以模擬受眾為例。
- CI、測試與讀 diffChris 認為 CI/CD、lint 與測試是必要的,但 AI 同時寫測試和程式時可能整個誤解需求;只有 pre-release 專案才放手讓它出貨,安全相關仍讀 diff。UI 點擊測試在自己的經驗裡約五成有效,端到端測試則很有幫助。
- 對抗式審查與人的瓶頸有聽眾分享 spec、開發 agent、對抗式審查 agent 來回迭代的做法,Chris 認同,並說自己永遠是瓶頸,一早常有 30 件事待審,其中不少是別人也能做的雜活,因此在想要不要雇人處理。最後請大家散場。
名詞
- Ralph loop
- 反覆把同一個任務交給 AI 的做法,最簡單的版本是外層 while 迴圈;好壞取決於 prompt 與回饋
- Geoffrey Huntley
- Chris 介紹的 Ralph loop 原始提出者
- Matt Pocock
- Chris 說自己去年 9 月從其影片學到把 Ralph loop 往下一步推
- n8n
- Chris 原本用來做每週電子報的自動化工具,後來換成 skill
- Beads
- 可以取代純文字 ticket 資料夾的 ticket 工具,Chris 建議有興趣的人試試
- /loop
- Claude Code 的功能,用 cron 排程反覆執行同一件事,Chris 說 session 約三天就要重開
- simplify
- Claude Code 內建的 skill,會用三個 subagent 檢查最近改動能否更簡潔
- lethal trifecta
- Simon Willison 提出的說法:不受信任的輸入、網路存取、重要機密資料三者並存就會外洩
- Docker sandbox
- Chris 提到的隔離方式,用 docker sandbox 指令在容器裡跑 Claude
- AirSkills
- Chris 自己在做的 skill 打包與版本管理產品
- theory of constraints
- 系統裡永遠有一個主要瓶頸,不先處理它,其他優化都沒意義
- cognitive debt
- Chris 指的是對程式碼庫能做什麼、怎麼運作逐漸不熟悉的狀態








