2026年1月29日,The Pragmatic Engineer播客發布了一期訪談。主持人Gergely Orosz的嘉賓是Peter Steinberger,奧地利開發者,PSPDFKit創始人,以及更重要的,最近在開發者社區引發震動的開源項目Moltbot(原名Clawdbot)的作者。
這期節目的標題非常直白:"I ship code I don't read"——我發布我不讀的代碼。所以,顯然談的是他對AI編碼的方法論。

就在這期播客發布的兩天前,Anthropic向Steinberger發出了商標函,要求他將項目從"Clawdbot"改名。在改名過程中,他犯了一個操作失誤:試圖同時修改GitHub組織名和Twitter賬號,結果在釋放舊賬號和註冊新賬號之間的10秒間隙里,加密貨幣詐騙者搶注了這兩個賬號。假冒的$CLAWD代幣一度衝到1600萬美元市值,然後在Steinberger公開否認後暴跌90%。與此同時,安全研究人員在項目中發現了真實的漏洞:通過Shodan搜索"Clawdbot Control",可以找到數百個暴露在公網上的實例,完整的API密鑰、OAuth令牌、對話歷史一覽無餘。
但這些混亂掩蓋不了一個事實:Moltbot在一周內從100顆GitHub星漲到超過80000顆,成為GitHub歷史上增長最快的開源項目之一。Andrej Karpathy稱讚了它,David Sacks發推討論它,MacStories稱它為"個人AI助手的未來"。
Steinberger本人的故事同樣戲劇性。2011年,他在維也納創辦PSPDFKit,一個PDF處理框架,最終服務於近10億用戶,客戶包括Dropbox、DocuSign、SAP、IBM、大眾汽車。2021年,Insight Partners以1.16億美元投資這家公司,Steinberger和聯合創始人退出日常管理。然後他消失了三年。"我需要很長時間來減壓,"他在播客中說,"有幾個月我甚至沒有打開電腦。"
2024年4月,他回來了。但這一次,他的工作方式完全變了。
1. 一個約會應用、一個憤怒的夜晚、一家十億用戶的公司
Peter Steinberger來自奧地利鄉村。14歲時,一個暑期來訪的客人帶來了一台電腦,他從此迷上了編程。高中時他從學校偷了一個DOS遊戲,自己寫了個軟盤複製保護程序,然後把它賣掉。
大學期間,他必須自己掙學費。在維也納的一家公司做橋接工作時,他們給了他一本巨大的Microsoft MFC書籍。"我至今還會做噩夢,"他說。他偷偷把項目用.NET重寫了,幾個月後才告訴公司——"反正東西能用"。
2009年,一個朋友給他看了iPhone。"我摸了一分鐘就立刻買了一台。"真正讓他開始為iOS開發的契機更加私人:他在地鐵上用一個同性交友應用,打了一條長消息,按發送的瞬間列車進了隧道,JavaScript禁用了發送按鈕,錯誤消息彈出,但沒有複製粘貼功能,也沒有截圖功能,消息就這麼沒了。
"我太生氣了。我回家就下載了Xcode。"
他用正則表達式解析那個網站的HTML——"完全不是你應該做的事"——用iPhone OS 3 beta和各種黑客技術拼湊出一個應用,放進App Store,定價5美元。第一個月賺了1萬美元。有一天他在夜店看到有人在用他的應用,想拍拍對方肩膀說"這是我做的",但覺得太奇怪了,沒出聲。
他去原公司辭職,想全職做這個。老闆嘲笑他:"你在犯錯誤,這是一時的風潮。"Steinberger說:"那給了我一個chip on my shoulder(心裡憋著一口氣)。我心想,總有一天我的公司會比你的值錢。花了我八年。"
然後蘋果來電話了。凌晨三點,一個美國號碼,"你好,這裡是蘋果的John,你的應用有問題,有人舉報了圖片。"應用被下架。
他開始做自由職業,在WWDC的酒吧里被介紹給別人——"奧地利最好的iOS開發者之一"——拿到了一份美國的工作,搬去舊金山。後來有人找他修一個雜誌閱讀器應用,代碼"是我見過最糟糕的,一個文件幾千行Objective-C,用窗口當標籤頁"。他本來說一個月重寫,結果花了兩個月,但最終做出來了。
"你知道,在任何技術問題上,領域本身不是最重要的。你總能在任何領域找到有趣的問題。"PDF領域的有趣問題是:渲染一個PDF的C調用可能需要30MB記憶體,而整個系統只有64MB。如果你在後台不夠小心,系統會直接殺掉你的應用。
他花了太多時間在細節上——旋轉時頁面動畫要絲滑——這就是為什麼一個月變成了兩個月。但最終產品很好。一個朋友問他要代碼,他賣給了對方。然後他想:如果他感興趣,為什麼不賣給更多人?
他用一個WordPress模板魔改出一個網站,託管在GitHub Pages上,購買流程的最後一步是Dropbox鏈接,指向他個人Dropbox里的源代碼壓縮包。一個下午搞定。他發了條推,那周三個人買了,每份200美元。更重要的是,有十個人發郵件抱怨——他們想要這個功能,但它沒有。
"我被nerd sniped(技術難題吸引)了。'哦,沒有文本選擇功能?能有多難?'三個月後:'哦,真的很難。'"
這就是PSPDFKit的起源。公司名字來自他的首字母縮寫(Peter Steinberger)、PDF、和SDK的"kit"。他花了五分鐘想這個名字,然後再也沒改過。
2. 十三年、七十人、十億用戶、然後燃盡
PSPDFKit從一開始就是遠程公司。"我知道我在維也納找不到我需要的人。"公司最終擴展到70多人,覆蓋所有平台——iOS、Android、Web、伺服器端——客戶包括Dropbox、DocuSign、SAP、IBM、大眾汽車、歐洲專利局。
他的營銷策略是只關心開發者。"我知道是高管做決策,但如果我能說服公司內部的人,他們會替我做遊說和營銷。"他們從不做冷郵件或激進銷售,全靠口碑,全靠寫深度技術部落格。
"如果人們理解做這個產品的人知道自己在做什麼、熱愛自己在做的事,這會反映在產品上。"他強迫團隊每月花一整天寫部落格。"一天其實挺多的。我現在寫部落格也就幾個小時。"
他對細節的執念近乎病態。"我花了那麼多時間在每個空格、每個換行、命名上。"有一次一個客戶投訴PDF加載要4分鐘,他打開一看:5萬頁的加拿大法律文本,每頁超過100個鏈接,總共超過50萬個鏈接。他的數據模型假設每個PDF最多幾百個鏈接,完全爆掉了。
"但那時候你已經有一個成熟的產品和API了。怎麼在不破壞所有人的前提下完全重新設計內部結構?"他花了兩個月,把所有東西改成懶加載,同時保持外部API不變。"最後我把加載時間壓縮到幾乎瞬間。"
做客服也是他的策略之一。"如果你發工單,CEO親自回復幫你解決問題,這有影響力。"他的方法是倒序處理工單——如果你發工單後5分鐘就收到回復,那是魔法;如果等一兩天,差別不大。
到後來,有越來越多的"人的問題"。作為CEO,他成了"垃圾桶"——所有別人處理不了或搞砸的事最終都落在他頭上。而且很孤獨,因為很多事你不能公開談論。
"有一個周末,凌晨五點我的聯合創始人打電話給我:'有個大飛機公司,他們的飛機趴窩了,因為我們的軟體崩潰了。'"他反匯編了對方的應用,證明是他們篡改了PSPDFKit的源代碼觸發了許可證回退機制。"那是一個'公司完蛋了'和'公司沒事'之間的周末。"
"燃盡不一定來自工作太多,"他說,"更多是因為你在做不再相信的事,或者有太多衝突。"他犯了一個錯誤:試圖更民主地管理公司。管理層內部爭吵不斷。
2021年,Insight Partners以1.16億美元投資PSPDFKit。Steinberger和聯合創始人Martin Schürrer退出日常管理,保留部分股份。
然後他消失了。
3. 三年空白期:當你不必再工作時會發生什麼
"我需要很長時間來減壓。我補上了很多我覺得自己錯過的東西。我旅行了很多。有幾個月我甚至沒有打開電腦。"
有一段時間,他陷入了"為什麼要費心"的狀態。"你不應該這麼早退休,或者說有這麼成功的退出讓你永遠不必再工作。這把我的腦子搞亂了好一陣子。那是艱難的幾年。"
4. 回歸:一個約會分析工具、一個驚人的發現
2024年4月,他有了一個想法——一個Twitter分析工具——這是幾年前就想做的副項目。他打開電腦,想用Web技術重寫。問題是,他對Web幾乎一無所知。
"在公司時,Web那邊有個很聰明的人在管,我從不用操心。"回來後他發現自己得Google最基本的東西。"你知道,你越擅長一種技術,就越難跳到另一種。不是做不到,但太痛苦了。你在這邊能盲打,在那邊得查最基礎的東西,感覺像個白痴。"
然後他看到了Claude Code。
"我把我那個大亂七八糟的副項目拖進Google AI Studio,拖進去一個1.3MB的markdown文件,打了'write me a spec',它生成了400行規格說明。我把這個拖回Claude Code,打了'build',然後一直按'continue'……它告訴我'100%生產就緒',我啟動它,崩潰了。"
但他已經被吸引住了。
"四月份很多人還在合理地持懷疑態度。我覺得,部分原因是那三年我完全沒碰電腦——在那幾年裡,你們測試過AI,學到了它很爛。"
他在四月五月嘗試了Claude Code,然後是Cursor
,然後是Gemini 2.5,然後是Opus 4。"我有一段時間很難入睡。"他在Twitter上告訴朋友們,有人凌晨五點給他發消息,他立刻回復。對方問為什麼還醒著,他說:"哦,這是常態。我還在用Claude。太上癮了。"
"就像老虎機一樣。你按下去,叮叮叮,有時候出來一堆垃圾,有時候出來的東西真的讓你震驚。"
他描述了一個具體的時刻。他的Twitter項目能運行了,但用久了會變得很慢很奇怪,然後又恢復正常,很難復現。問題是資料庫里有一些觸發器,在某些插入操作時會被觸發,讓資料庫變得繁忙。"模型看不到,因為它被抽象得太遠了,那個函數名字也不好grep,和其他東西沒有明顯關聯。我問了無數問題,直到我問:'我們有沒有任何針對這個的副作用?'然後它找到了,我修好了。"
"一切都只是一個正確問題的距離。但你必須知道要問什麼問題。"
5. 新的工作流程:同時指揮5-10個AI agent
Steinberger現在的日常工作流程和傳統軟體開發幾乎沒有交集。
他使用OpenAI的Codex而不是Claude Code。原因很簡單:Claude Code快,但輸出經常第一次跑不通,而且它會回來問澄清問題,打斷心流。Codex慢——一個任務可能要跑40分鐘到一個小時——但它會安靜地讀10分鐘文件,理解整個代碼庫的上下文,輸出幾乎總能直接工作。
"Claude Code會讀三個文件就自信地開始寫代碼,你得不斷推它去讀更多。Codex會安靜地讀文件讀10分鐘,然後給你的輸出幾乎總是對的。"
如果你只開一個終端,這種等待確實難以忍受。但他同時開5-10個agent並行工作。
"我的一般策略是,我設計一個新功能或子系統,和agent對話,討論方案——'這個功能有哪些實現方式?你考慮過這個邊緣情況嗎?這樣設計和那樣設計各有什麼取捨?'我挑戰它、調整它、推回去。等我滿意了,我說'build',它去執行,我立刻切換到下一個任務。然後這個在煮、那個在煮、另一個也在煮……"
他說這種感覺像玩星際爭霸——你有主基地,也有分礦,你在它們之間不斷切換。
"通常有一個主項目占據我的注意力,然後有幾個衛星項目也需要照顧——我可能在它們上面只花5分鐘,它做半小時,然後我再試試看,不需要太多腦力。"
他甚至會故意寫模糊的提示,讓agent去探索他沒想到的方向。"大概80%的時候出來的東西不行,但有時候會有兩個點讓我眼前一亮——哦,我沒想過可以這樣做。"
有一次他想給Moltbot加入電話功能——讓AI能打電話給餐廳訂座。這是一個大模塊,會觸及代碼庫的很多地方。他本能的反應是"這要變成臃腫軟體了"。於是他問Codex:能不能設計一個插件架構?他引用了另一個他知道的項目里的插件系統讓Codex參考。幾個小時後,一個完整的15000行插件架構重構完成了。
"如果我自己寫,要兩周。"
6. 閉環:讓agent能驗證自己的工作
Steinberger反覆強調的核心原則只有一個:閉環。讓AI能夠自己驗證自己的工作。
"這就是為什麼這些模型在編程上這麼強,但在創意寫作上往往一般——代碼可以編譯、可以lint、可以執行、可以驗證輸出。寫作沒有簡單的驗證方式。"
做Mac應用時調試很麻煩——要編譯、啟動、手動操作、觀察結果。他的解決方案是讓agent先寫一個CLI,調用同樣的代碼路徑,然後agent自己跑CLI、自己調試、自己修復。
"我告訴它:你去造一個調試用的CLI,調用所有相同的代碼路徑,然後你自己疊代修復。它就去煮了一個小時,最後告訴我——這裡有個競態條件,那裡有個配置錯誤。我不需要看那些代碼。"
最近他給Moltbot加入了多個消息平台支持,每個平台處理tool calling的格式都有細微差異。他意識到自己在手動調試上浪費太多時間,於是讓Codex設計端到端測試:啟動Docker容器、安裝整個系統、用真實API key調用各個模型、讓模型讀圖生圖再檢查輸出。測試覆蓋了所有平台——Anthropic、OpenAI、Google的GLM——agent自己把所有兼容問題都修好了。
"用agent寫代碼反而逼著你寫出更好的代碼,因為你必須更認真地思考架構,讓系統更容易被驗證。而可驗證性本身就會導向更好的架構。"
這也影響了他對Web開發的態度。"即使是網站,我也會設計成能通過CLI運行的形式,這樣就有完美的執行循環。瀏覽器循環太慢了。"
7. PR已死,Prompt Request萬歲
Steinberger現在看Pull Request的方式完全變了。
"我對提示詞比對代碼更感興趣。提示詞告訴我的資訊量更大——你是怎麼想到這個解決方案的?你問了什麼問題?做了多少引導?代碼只是輸出,提示詞才是思考過程。"
他讓貢獻者把提示詞附在PR里。如果有人提交的只是幾行小修復,他會說:不用了,我自己打"fix"讓Codex跑幾分鐘更快。真正幫他省時間的方式是把功能需求寫得非常清楚,他直接把issue指給agent去實現。
他收到PR後的典型流程是:和agent一起從PR出發,然後按照他自己的設計思路重新實現。agent很少直接復用PR里的代碼,但PR幫助agent理解目標。
"即使在Discord上,我們也不討論代碼。我們只討論架構和重大決策。"
CI也變了。他不等遠程CI(持續集成流水線),agent在本地跑測試,測試通過就合併。
"我有本地CI。agent跑測試,測試通過,我就合併。是的,有時候main會稍微滑一下,但通常很快就修好。我不想等遠程CI那10分鐘。"
他給這個本地驗證流程起了個名字,來自agent自己的用語:"full gate"——linting、構建、運行所有測試。"我慢慢開始用它們的語言了。"
8. 為什麼資深工程師用不好AI
播客中,主持人問他為什麼很多資深工程師對AI編程持懷疑態度。他講了一個具體的例子。
"一周前我看到Nala Coco的一篇部落格,我非常尊敬他,從他那學到很多。但那篇文章在批評當前模型的工作方式。據我理解,他寫了一個提示,放進Claude網頁版,按發送,拿到輸出,跑了一下,編譯不過,然後他就失望了。"
"但你覺得我能第一次就寫出沒bug的代碼嗎?這些模型是我們集體人類知識的幽靈。它們在很多方面工作方式和人很像。當然你第一次不會做對。這就是為什麼你需要閉環反饋。而且你不是發一個提示給模型,你是開始一段對話。"
他還提到:Coco抱怨模型用了舊API。"是的,因為你沒指定macOS版本。所以它做了一個假設,默認用舊API,因為訓練數據里舊數據比新數據多。"
"你越理解這些小東西怎麼思考,你的提示就越好。這是一種技能,和其他技能一樣需要練習。"
他觀察到兩類人在AI輔助開發上的分野:
適應很快的人:關心產品、關心結果、喜歡把東西做出來的人。他們可能不那麼在意代碼具體怎麼寫,但非常在意軟體用起來什麼感覺、能不能解決問題。
適應困難的人:真正熱愛解決算法難題、享受親手寫代碼的人。這恰恰是AI最擅長的部分,所以這類人會感到痛苦,甚至抗拒AI工具。
"有些人真的很喜歡解決硬問題,比如算法——他們不喜歡產品那一套,什麼營銷啊用戶反饋啊。他們更喜歡單純的技術挑戰。但這恰恰是AI正在接管的工作。"
他自己在PSPDFKit管理過70多人團隊的經歷反而成了優勢。帶團隊時你必須學會放手,接受下屬寫的代碼不會完全符合你的風格。
"很多人沒帶過團隊,沒有這種經歷——接受這不是我寫的代碼,但它能幫我達成目標,接下來我們可以改進它。這種疊代改進的思維方式,正是和AI協作需要的。"
9. Moltbot的誕生:一個"超級個人助手"的野心
Steinberger一直想要一個"超級個人助手"——不是那種每天早上發郵件說"這是你今天的三件事"的助手,而是一個真正理解你的存在。
"它會記住你上周和誰見了面。它會注意到你每次見某個朋友之後心情都不好,然後問你為什麼。它會在某天早上叫醒你說:'嘿,我注意到你有三周沒聯繫Thomas了,而且我查了他的Instagram,他現在在城裡。要不要打個招呼?'——一個真正深度個人化的東西。幾乎是電影《雲端情人》的反面。"
2024年夏天,模型還不夠好,他擱置了這個想法。但他造了一大堆CLI工具——控制Google、控制床、控制燈、控制音樂——這些成了後來Moltbot的基礎設施。
最初的版本叫"WhatsApp Relay"——他只是想用WhatsApp觸發電腦上的操作。然後他去摩洛哥參加朋友的生日派對,整天在外面,只用WhatsApp和他的agent交流。
"它帶我逛城市。它開玩笑。它能用WhatsApp以我的身份給其他朋友發消息。"
有一個時刻讓他徹底被吸引住了。他在摩洛哥,發了一條語音消息——但他還沒有實現語音消息功能,只是把文件路徑當字符串傳過去了。30秒後,agent回復了他的語音消息。
"我說:'你怎麼做到的?'"
"'哦,你發了一個文件給我,我看了文件頭,發現是OGG格式。我用FFmpeg把它轉換了。然後我在你電腦上找Whisper,但沒裝。但我找到了OpenAI的API key。所以我curl了一下OpenAI的伺服器,讓它轉寫了。'"
"我當時想:holy cow。"這是Opus 4.5,它如此resourceful(足智多謀)。
他開始用它當鬧鐘。agent在倫敦的Mac Studio上運行,通過SSH連接到他在摩洛哥的MacBook,打開音樂,如果他不回復就把音量調大。為了讓它工作,他加了心跳機制——每隔幾分鐘發一個提示"做點有趣的事,給我驚喜",讓它變得主動。
"從安全角度看,這絕對是瘋狂的。大概是史上最貴的鬧鐘。但太好玩了。"
他把這個展示給一起旅行的朋友。每個人都被迷住了。
10. 為什麼是CLI而不是MCP
播客中,主持人問他為什麼用CLI而不是MCP
(Model Context Protocol,Anthropic推出的讓AI調用外部工具的標準協議)。
"MCP作為權宜之計可以,但整個概念有點蠢。你必須在session加載時預先導出所有函數、所有工具、所有參數說明,然後模型發送精確的JSON,拿回JSON。但模型真正擅長的是使用bash。"
"想像一個天氣服務。模型問有哪些城市,拿回500個城市。但它不能過濾這個列表,因為MCP不支持過濾。然後它問倫敦天氣,拿回溫度、風速、降水、50個欄位——但我只想知道會不會下雨。用CLI的話,我可以用jq只取我要的欄位。我可以把命令串起來。"
"我寫了一個叫make-porter的工具,可以把任何MCP轉換成CLI。所以你可以在Moltbot里用任何MCP——從手機上說'用Vercel的MCP做這個',它會去網站找到MCP、加載它、使用它——全部按需進行。"
11. 爆發:把有完整電腦權限的agent放進公開Discord
2026年1月1日,Steinberger做了一件"絕對瘋狂的事":把他的agent——對他的電腦有完整讀寫權限的agent——放進了一個公開的Discord伺服器。
"有人給Discord貢獻了支持功能。我不確定要不要合併,最後還是合併了。然後我想:讓我們試試,把我的agent加到Discord里。"
人們親眼看到他用語音讓agent查攝影機、控制家居、放音樂、看螢幕判斷其他Codex任務跑完沒有。
"它在後台看我的螢幕。我在廚房,告訴它'看看我的螢幕,我的agent們完成了嗎?'它能看到終端,點進去,告訴我'你的Codex說這個這個'。"
一周之內,GitHub從100星漲到3300星。(到播客發布時,已經超過80000星。)
"每個親身體驗幾分鐘的人都上癮了。這是某種新品類。有點像你當初不理解iPhone的廣告、但一摸到實物就懂了的那種感覺。"
他說技術本身消失了。"你只是在手機上和一個朋友聊天,這個朋友恰好無限足智多謀,能訪問你的郵件、日曆、文件,能幫你建網站、做行政工作、抓取網頁、給朋友打電話、給商家打電話訂位。你不用想什麼是上下文窗口。"
onboarding流程也是agent完成的。"最後兩周,當項目真正火起來的時候,我告訴人們直接把agent指向代碼庫來配置它。我沒有手動設置流程,因為agent可以做這個——而且因為產品是由agent構建的,它們對代碼的命名方式和結構非常熟悉,所以它們特別擅長導航這個產品。"
12. 如果今天重建PSPDFKit
播客中,主持人問:如果今天用AI工具重建PSPDFKit,會有什麼不同?
"我大概只需要30%的人。"
"找到合適的人會很難。你需要真正資深的工程師,真正理解他們在構建什麼,但同時也能適應委託工作、知道哪些部分真正重要需要專注、哪些部分可以'vibe'。"
"你需要那種有產品願景、能同時做設計和開發的人——高自主性、高能力——但人數可以大幅減少。"
他說現有公司會很難高效使用AI。"需要的不只是重構代碼庫,而是重構公司本身。"
13. 對前端規劃方式的影響
傳統上,前期規劃很重要,因為修改成本高。現在還是這樣嗎?
"我仍然會規劃,但我不會投入那麼多,因為現在試一試、看結果、再調整變得容易太多了。調整和試驗變得更像玩耍。"
"在公司時,我堅持每個功能都要先寫提案。因為改動成本高——讓下屬改方向可能要花一兩天。現在那個成本變成了分鐘級別。"
"我一直有這種感覺,你不可能在構建之前就知道你想要構建什麼。你在構建過程中學到太多東西,這些會反饋到你對系統最終形態的思考中。這是一個螺旋上升的過程。"
他仍然非常關心架構、技術債、可擴展性、模塊化。Moltbot成功的原因之一是它非常容易擴展——他花了大量精力讓添加新功能變得簡單。"但我不需要讀每一行代碼。我只需要理解結構。"
14. 對新人的建議
"你需要無限的好奇心。學習的方式變了——你可以問一個無限耐心的機器任何問題。你可以checkout一個複雜的開源項目,問它為什麼這樣設計,它會解釋給你聽。但你必須真的想知道。大學目前還沒設置好來教這些。"
"進入這個市場會更難。你需要構建東西來獲得經驗。我不認為你需要寫很多代碼,但你需要構建系統、理解系統。"
"通過痛苦來學習這種好奇心——這通常不是被教出來的。"
新人也有優勢:他們不會被經驗污染,會用老人想不到的方式使用agent——因為他們不知道"這樣不行",而到那時候可能真的行了。
15. 未來:人人都會有一個AI朋友
"未來每個人都會有一個AI朋友——它理解你,了解你的一切,能替你做事,會主動幫你安排事情。需要大量token,但隨著技術民主化,會逐漸普及到所有人。"
"我其實為Anthropic做了最好的營銷。我不知道有多少人因為Moltbot訂閱了200美元的訂閱,很多人本來就有一個、又開了第二個,因為太耗token了。這不是說它低效——是因為人們太喜歡它了,一直在用,而它在後台spawn子agent、做一大堆事情讓體驗變得絲滑。"
Moltbot的設計哲學是讓技術消失。你走在路上,看到一個活動海報,給Claude發張圖片,它不只告訴你這個活動的評價,還會檢查你的日曆有沒有衝突、朋友有沒有在群里聊過這個。因為它有這麼多上下文,它能給出比任何活在自己小盒子裡的工具好得多的回答。
他造了一個記憶系統。"不完美,沒什麼是完美的。但已經感覺像魔法了。"
16. 關於"vibe coding"
"我不喜歡'vibe coding'這個詞。"
"我稱我做的事為**'agentic engineering'(agent工程)**,帶個小星號。vibe coding從凌晨三點開始。"
"我仍然在心流狀態中。和以前寫代碼時完全一樣的感覺。但精神上更累,因為我不是管理一個員工,而是同時管理5-10個,在不同部分之間切換——這個新子系統、那個功能、那邊的bug——我一直在腦子裡跳來跳去。"
"我希望不必這樣做。我相信這是過渡期的問題,總有一天模型和系統會快到我不需要這麼並行化。但現在,要保持心流狀態,我必須大量並行。"
他現在用來描述寫代碼的詞語都變了。"weaving code into existing structure"(把代碼織入現有結構)——織入。有時候你得改變結構讓代碼能織進去。
"我比以前寫出更好的代碼了——當時我自己寫的也是真的好——但現在我有更好的文檔、更好的測試覆蓋。我從來不喜歡寫測試,寫文檔也是。對我來說從來不是創造性表達。現在每次我設計一個功能,我都會問:這個怎麼測試?我們怎麼閉環?這自動把我推向更好的架構。"
Steinberger的核心洞察是:代碼正在變成輸出,提示詞才是工作本身。他不讀自己合併的大部分代碼,但他對系統架構了如指掌。他讓agent自己跑測試、自己調試、自己修復,他的工作是設計反饋循環、把握產品方向、做架構決策。
在播客的最後,主持人問他推薦什麼非技術相關的工具或產品。他說是一個便宜的Android照片相框,可以上傳照片、朋友可以發郵件給它顯示照片。"從技術角度看很垃圾,運行Android,動畫都有點卡。但它給我無限的快樂,因為它是低科技,只是顯示照片,提醒我生活中的快樂時刻。我買了iPhone 17,到現在還沒拆封,因為懶得把SIM卡移過去。這個200塊的小設備給我的快樂比最新的iPhone多。"
什麼幫他保持理智?去健身房,和教練練,把手機鎖在柜子里。"然後我真的有一個小時只感受自己,在當下,不被通知分心,不想摸手機。我們需要更多這樣的時間。"
有時他出門散步,把手機留在家裡。"感覺很嚇人。手機幾乎像一個器官了。你的身體知道它在哪裡,如果你不知道手機在哪裡,你會panic。"
Q1: 用AI agent寫代碼最重要的原則是什麼?
閉環(Closing the Loop)。設計系統讓agent能夠自己編譯、運行測試、驗證輸出。如果agent不能驗證自己的工作,你就要花大量時間手動檢查;如果它能自己驗證,你只需要設定目標然後檢查結果。這也會倒逼更好的架構——因為你必須把系統設計成可驗證的,而可驗證性本身就導向好設計。
Q2: 為什麼Steinberger選擇Codex而不是Claude Code?
Claude Code快但輸出經常第一次跑不通,而且會回來問澄清問題,打斷心流。Codex慢——一個任務可能要40分鐘到一個小時——但它會安靜地讀大量文件,理解整個代碼庫上下文,輸出幾乎總能直接工作。如果你同時開5-10個agent並行處理不同任務,Codex的慢反而不是問題,整體效率更高。
Q3: PR和代碼審查在這種工作流里還重要嗎?
PR的性質變了——Steinberger現在更想看提示詞而不是代碼,因為提示詞反映思考過程,代碼只是輸出。代碼審查在他的工作流里基本消失了,取而代之的是架構討論。本地測試通過就合併,不等遠程CI。他甚至說,如果有人提交幾行小修復的PR,他寧願自己打"fix"讓Codex跑幾分鐘——這比review PR更快。






