看板 Soft_Job ※ 圖文整理 回首頁

[情報] 一個月 2,500 個 PR,她怎麼讓 agent 自己合併

作者:Matt Pocock、Lauren Tan(poteto)
時間:2026-10-03(Asia/Taipei)
來源:Matt Pocock 直播/1:05:36/en
Matt Pocock 與 poteto 的直播封面插圖
▲ 這集的封面。Matt Pocock 問 Lauren Tan,網名 poteto,一個月怎麼送出那麼多 PR。

上一集 Matt 找 Uncle Bob 談過程式品質。這集的客人是 Lauren。兩人都有一套很多人在用的 skill。skill 就是寫給 agent 的工作說明,通常是一份 markdown。

Matt 說他想把她大約十天前的那場談話拆開問。那場談的是她上個月送進正式環境的 PR,她自己講的數字是大約 2,500。貼文在 X 上,Matt 說觀看大概三百萬,他講的是大約。

節目標題寫她人在 SpaceX。她自己的時間序是:三月加入 Cursor,Cursor 現在是 SpaceX AI。Cursor 是她寫程式、也拿來跑 agent 的編輯器。她現在手上的產品是 Grok Bot。

一、信任階梯是從盯一隻 agent 開始的

她說這條路在進 Cursor 之前就開始了。她之前在 Meta 的 React 團隊,休息一個月,休息期間反而開了 side project,用 AI 寫碼。

那是今年一月、二月初。大家還在終端機裡做自己的 orchestrator,agent 視窗還沒那麼常見。她也被這件事吸進去,結果發現自己把大把時間花在盯一隻 agent:skill 一直改,卻很難知道它有沒有用。

那個 side project 後來變成 pstack 的底,當時她還不知道。pstack 是她把自己的做法收成一套 skill,給 agent 用。她說早期那包還開源,要人去她的 GitHub 看一個她拼成 noodle 的東西,裡面有 skills,還有一個 brain 目錄。

她當時想交出去的,是「比較像我會怎麼做」。寫程式像她,流程也像她。

四月初她被找去看 Cursor 的 agents window,因為畫面很頓。她有 React 經驗,於是自己看 flame graph 和 heap snapshot。前者是看時間花在哪一段程式,後者是看記憶體裡留了什麼。

看完還是她在傳話。她用的詞是 meat proxy:人卡在 agent 和 Chrome DevTools 中間。Chrome DevTools 是瀏覽器裡看效能、抓記憶體的那套工具。

進公司時她把個人 skill 擱下了,覺得用不上。做到 agents window,再做到 Grok Bot,才覺得那些教訓還在,尤其是驗證。她覺得前沿模型也愛抄近路。她後來很多 skill,都是在讓容易走的那條路,剛好是對的那條路。

Matt 問,領域知識是不是越來越不值錢。她覺得模型越強,卡住人的地方變成你能不能把意圖講清楚。醫生、律師這種不是工程師的人,只要稍微願意碰工具,腦袋裡又有清楚的成品,agent 就做得出東西。

Matt 說他從 agent 出現後就一直在磨用詞。TDD 是早期的例子。那個詞會讓 agent 改順序:先寫測試,先把驗證擺前面。他說 grilling 做的是類似的事,把你腦中的詞逼出來,或讓 agent 先提案、你再點頭。

Lauren 說她抄了 Matt 最近的一招,少寫同義反覆的測試。tautology 這個字把一大包意思壓進去。她覺得現在是自然語言跟程式語言碰到一起,底下都是溝通。Matt 補了一句,他大學讀的是戲劇。

二、她講的是米其林廚房

Matt 說軟體工廠是現在的熱詞,他自己也在做相關的課。他想聽的是:從同時跑一兩隻、五隻 agent,走到很多隻,中間到底長怎樣。他先問她為什麼不愛工廠,改講米其林廚房。

她說工廠這個詞不算錯。很多人聽到工廠,不會想到品質和手藝。她在意使用者碰到的東西。米其林廚房是她後來用的比喻。她愛吃,網名又跟馬鈴薯有關。

自己煮飯的時候,切菜、備料、收拾都是你。家人突然全擠進廚房,多數人會緊張,因為別人不知道刀具放哪。她說自己廚房的上限常常就是一個人。

要多幾雙副手,切工作要切在會讓結果變好的地方。主廚後來不再每道菜都自己下鍋。他要管什麼時候進貨、怎麼保存、什麼時候備好。她把這對上 tech lead,也有點像廚房的負責人。

工程師現在也類似。碼多半不是你手打的。名字還是掛在你身上。技能、環境、碼庫,是她說的新食材。

Matt 接的是另一件事。很多人覺得模型和 harness 已經被別人調好了,自己碰不到 Claude Code 內部,只好信任。他喜歡她把力氣放在 agent 待的地方:改碼庫,並且給它驗證自己工作的工具。

三、先給 agent 手和眼睛

她說就算你不用 pstack,工具箱裡最該有的 skill 是驗證。意思是 agent 能跑程式、像使用者一樣點下去,也能抓 trace、拍 snapshot。

這是她進 Cursor 之後做的第一個 skill。how、why 那些 skill 再好,她還是夾在中間。agent 看不到自己做出來的結果,就沒有下一輪。別人講 loop 的時候,她覺得讓它真的轉起來的,是這段驗證。

第一個拿來用的場景,就是 agents window 的效能。她想做 hill climbing:先有一把尺,agent 可以一直試著把分數做高。她也提到 Andrej Karpathy 放的 auto research,裡面有類似的想法。

pstack 裡她花很多時間磨這支驗證 skill。她說公司裡現在每個 app 都有自己的驗證 skill,而且會自己維護,大家都在用。

她還做了一支 CLI。CLI 就是把固定步驟收成一支命令,agent 呼叫它,不必每次重寫。起因是去年底到今年初,大家在煩 context window。對話一被壓縮,後面常常變笨。她把不需要判斷的部分寫進程式,判斷留給 agent。

改寫語法樹、做遷移,這種機械的事她也想交給腳本。腳本把碼照規則改過去,agent 不必每次重新發明一遍。

早期沒有這支 CLI 的時候,agent 每次驗證都把做法重做一遍,每隻還不一樣,慢,也浪費。放進 skill 之後,下一隻直接用。

Matt 把它理解成:skill 本體保持短,確定的步驟藏進程式。她同意。死板的交給程式,需要想的交給 agent。

四、碼庫窄到幾乎只有一條路

Matt 說,若 agent 總在同一個地方犯錯,可以讓那種寫法在環境裡做不到。他對好碼庫的講法是:改東西不容易把別的東西弄壞。Lint、型別檢查是一層,抽象怎麼設計是另一層。

她覺得工程師現在該花時間的地方,就是這個環境。信任不夠的時候,你只能盯著 agent,沒有餘裕去磨自己的工具。她比成只會記事本、沒聽過編輯器和 Git。刀是鈍的,期限又壓下來,就只剩趕工。

廚房的例子是壓蒜器。切蒜很慢,就買工具。每個廚師自己發明一套,廚房會亂。

她跟 Matt 都寫 TypeScript。她喜歡型別縮窄:一個很寬的型別,經過檢查之後變成一個很窄的常數。碼庫的約束對她是同一件事,可能的寫法被削到很少。

他們內部有一套叫 Dune 的框架,不開源。她跟別人講的方式是:有點像內部的 Next.js,但是給 Electron app 用。Next.js 是做網頁應用的框架。Lint 很嚴,慣例也很硬。每個功能自己一個目錄,另外有註冊機制把這些目錄掃出來。

這樣很難寫出壞碼。agent 要加功能,就進新目錄,不會再去一隻很長的檔案後面接著寫。Grok Bot 最初幾個版本,她說大概是八隻這種檔案,每隻至少一萬行。她是看著拆開的。

她還有一個習慣:看 agent 怎麼失敗。看到一個可以更好的錯,就退一步問,能不能變成 lint,能不能讓碼庫讓這種寫法做不到。Matt 補了一句,TypeScript 自己也有一隻大概兩萬五千行的型別檔,兩人笑過。

環境的好處是,規則不用全塞進 agent 要記住的清單。它走過去會撞上。

五、2,500 個 PR 從哪來

她說量要拉高,前面講的環境得先在。廚房和刀準備好,人才有辦法不在場。她把比喻再走一步:主廚把行政主廚教會了,第二家、第三家才開得起來。每個大的 chat 像一家店。她在幾家之間看,有的店看比較緊。

外面還有一圈資訊,以前也是她在搬。bug 回報落在 Slack、Linear、X。Slack 是團隊訊息,Linear 是工單。這些沒接上她說的內圈。

她把內圈定義成:agent 對著一份意圖在改碼。那份意圖是快照,會過期。新訊息來了,人又得把脈絡送進去。沒有東西把資訊拉回來,你就得自己在 Slack 或 X 上蒐:bug、功能需求、有人說後端有某個限制。

她覺得 Grok Bot 適合做外圈。Grok Bot 接到信箱、行事曆、Slack、Linear、X 這類外面的系統,把脈絡拉進來。外圈接上內圈之後,agent 可以自己拿脈絡。

例子很平。Slack 的 MCP,或你自己的 harness 去訂一個頻道。MCP 是讓 agent 呼叫外部服務的接頭。然後你跟它說:這個頻道有 bug 就去分流,用已經做過的驗證重現,確認 main 上還在,不是使用者自己的環境或少裝了依賴。

她會一直問,這一步為什麼還需要我。agent 要自己回答,而且要真的資料,不能靠猜。有人講 company brain、context graph。她覺得詞太重。她要的是:本來她得親手遞的資訊,教會它自己去拿。

她沒有坐在那裡一個月手開 2,500 個對話。Cursor 有個新功能叫 Projects。一個 project 是雲端上的協調 agent,有自己的電腦。它不自己寫碼,負責派工、監督、把脈絡傳下去。

Grok Bot 可以傳訊息給這些 project,也可以叫它開一個新的,人不用先打開 Cursor。一次湧進很多則相關的效能問題時,她不想一張單配一隻 agent。分開修會做重複的事,也會漏掉比較高的那層:看一則以為 bug 在這裡,多看幾則才發現在上面。

PR 也不全是使用者回報,有的來自讀碼。她說這 2,500 裡,新功能只佔一部分,很多是她講的 gardening,整理程式碼。環境若只幫自己和自己的 agent,新人還是會迷路。她希望新進來的人第一天就能寫出像樣的碼。

觸發也不一定是每小時掃一次。她有一些 routine。一個例子是 React 的 footgun:有一隻 agent 一直在找壞模式,她不叫它立刻修,叫它先寫進一份文件。隔幾天再看,常常發現是同一件事。單子來太快的時候,人會漏掉全貌。先排隊,才看得到模式。她說幕僚長式的 agent 看得到整片,也能把執行分出去。

六、她沒有每道菜都嘗

別人會問,2,500 個 PR 你怎麼審。她說你不會想走到完全不再試菜。店一多,也不可能每道都嘗。她做的是抽樣。

工廠的品管做不到全檢,就每天抽。看 agent 在寫什麼、哪裡在抄近路。一次兩次可以當個案。多隻 agent 都在傳播同一個 workaround,就要改廚房:skill、約束、lint、型別。改久了,環境會把人和 agent 帶去比較窄的寫法,你才走得開。

她特別講,裝上 pstack 不會自動變成這樣。要花時間看碼、看 agent 在哪裡失敗,把護欄擺好,讓對的行為變成預設。

她現在可以讓 agent 自己合併。人睡了,它們還在做。她說自己有十個以上這種幕僚,各看一塊:Grok Bot 桌面版的效能、使用者回報的 bug,還有一隻在玩「如果改寫成另一種語言、做成原生 app 會怎樣」。最後那個她說只是玩具。

pstack 裡有個她叫 full autopilot 的跑法。每個 PR 會拉起一組驗證 agent,把應用跑起來,像人一樣點,找 regression,找到就自己修,修到可以合併。很吃 token。可以調,十隻驗證改成一隻,或只叫它確認自己做完。

她現在的習慣是合併之後再看。早上看 commit history,有問題就改環境:revert、加 lint。她說第一晚打開這種跑法很害怕,怕半夜把東西弄壞。她也說自己現在睡比較好。

Matt 說這跟 Karpathy 講的 vibe coding 不一樣。那種講法幾乎是忘掉碼的存在。這邊碼和環境不好,出來的東西就不好。他說也許像調光器,有的地方暗、有的地方亮。她覺得所以廚房比工廠貼。你還是會回店裡看一眼、試一口。

七、單向門,跟你自己的刀

Matt 問,如果是醫療、法律、金融,很多 PR 合併了收不回來,怎麼辦。收得回來的那種,合併了還能 revert。

她說回到驗證做得多硬。領域本身驗得了,收不回來的改動會比較有機會先被擋下。程式幾乎沒辦法驗的工作,她覺得很難走到自己合併。軟體很多時候驗得了。數學裡有些證明也驗得了。

她回憶以前證明常常得換一套語言寫,例如 Lean 或 TLA+,再用 solver 看你有沒有蓋住所有情況。她也提到自己看過一套把程式和證明寫在一起的語言。自動字幕把名字聽糊了,這裡不把那個名字寫死。

如果 agent 真的能用你信得過的方式驗證,證明過了,她會問那為什麼不合併。有的領域就是驗不動。這題她說自己沒有現成答案。

時間快到了,Matt 問 pstack 跟他自己的 skill 怎麼並用。他自己把 skill 看成流程寫成文字。

她說 Matt 當天分享的一招她覺得有用:回去看以前的對話,挖那些你一再插手的地方,收成可以重用的 skill。

她覺得兩邊放得在一起。skill 到最後就是文字。每個人還是該有自己的刀。廚師換餐廳,刀是自己帶的。有人會把 Matt 的 grill-me 跟 docs 放一起,或把他的 wayfinder 接上 pstack 裡負責執行的 skill。用誰的多,看你信誰。她還是建議叫 agent 去翻你插手的模式,提議變成 lint 或新 skill。

她說過去的 chat 是真的發生過的流程。pstack 裡有個 skill 叫 recall,就是這麼來的。她在做 Cursor 的虛擬化,bug 很多,每次新開 chat 都想把上一輪帶過來。recall 把這件事壓成一個 skill,不用每次寫一篇長文,叫它去翻哪些 chat。

她覺得模型越強,skill 越該只留下流程。去年那種逐步的指令、確切要敲的命令,可以拿掉。想的話,把 wayfinder 跟 poteto-mode 編成你自己的模式也行。她說 skill 沒有魔法,就是選過的詞。


※ 來源:LIVE: Poteto (creator of pstack) on shipping 1,000's of PR's a month at SpaceX(Matt Pocock,1:05:36,直播約 2026-10-03 Asia/Taipei)。本頁為非官方圖文整理。數字與人名依節目口述。pstack、Grok Bot、Cursor Projects 這些名字,自動字幕常聽錯,文內依節目標題和她後來講清楚的說法。

推 s0enke(YouTube): 她點到一個悖論:為了約束 agent 重做的那些確定性關卡,不用 agent 的人也用得上,agent 要做的事會變少。關卡越多,碼庫越好,還能放進 CI 或審查。
→ jordanh1604(YouTube): 我把 Matt 的 skill 改一版裝在全域,每個專案再從 pstack 分一支,依那個碼庫和 Claude Code 調整。我還是一次一隻、頂多兩隻 agent。
→ n-o-i-d(YouTube): 該量的也許是重複出現的 bug 怎麼變,而不是合併了幾個 PR。驗證都擺上去了,為什麼 Cursor 還在出有 bug 的軟體?
→ OP: 本頁為非官方圖文整理。上面三則來自這支 YouTube 的留言,不是 PTT 原文。