2月25日,OpenAI在其官方視頻欄目中發(fā)布了對知名開源項(xiàng)目OpenClaw創(chuàng)建者Peter Steinberger的深度訪談,由OpenAI高管Romain Huet主持。
訪談里,Steinberger復(fù)盤了OpenClaw的爆紅、自己如何用Codex等“代理式工具”寫軟件,以及開源與安全的真實(shí)矛盾。
幾周前還需要主持人“介紹一下”,如今Steinberger在舊金山被上千名用戶線下“圍觀”。他形容自己“各方面都有點(diǎn)超載”,但也直言這正是他想看到的結(jié)果:“我一開始就是想激勵別人——現(xiàn)在這就是最有趣的形式。”
![]()
涌現(xiàn)的智能:“它自己找到了解決問題的路徑”
很多人以為OpenClaw是一夜成名,但其背后是長達(dá)十個(gè)月的瘋狂試錯(cuò)。真正讓Peter確認(rèn)這款產(chǎn)品具備極高市場契合度(PMF)的,是AI智能體展現(xiàn)出的“涌現(xiàn)能力”。
Peter把未成熟的AI智能體接入了日常通信軟件。某天,有人發(fā)來一條語音信息。按照原本的程序邏輯,AI不具備處理這種未知音頻文件的能力。然而,令人毛骨悚然又無比興奮的一幕發(fā)生了:AI開始顯示“正在輸入”。
“我當(dāng)時(shí)就在想,我根本沒寫過這個(gè)功能,這怎么可能奏效?”Peter回憶道。
當(dāng)他詢問AI是如何做到的時(shí),AI的回答揭示了當(dāng)前大模型恐怖的自主規(guī)劃能力:“你發(fā)給我一個(gè)沒有后綴的文件。我查看了文件頭,發(fā)現(xiàn)它是Opus音頻格式,所以我在電腦上調(diào)用了FFmpeg把它轉(zhuǎn)換了。我想轉(zhuǎn)錄它,但你沒安裝Whisper,于是我四處尋找,用curl命令把文件發(fā)給了OpenAI的接口,拿回了文本。”
這個(gè)細(xì)節(jié)極具穿透力。AI已經(jīng)跨越了“你讓我寫一段代碼”的階段,進(jìn)化到了“你給我一個(gè)問題,我自主調(diào)用系統(tǒng)工具鏈去尋找答案”。
生產(chǎn)力大爆炸:一人,一年,9萬次提交
在過去一年里,Peter一個(gè)人在GitHub上完成了超過9萬次代碼提交,橫跨120多個(gè)項(xiàng)目。這種效率在人類軟件工程史上是不可想象的。
“一年前,這也是絕對不可能的。沒有任何模型能讓一個(gè)人建構(gòu)出這種規(guī)模的東西。”Peter直言。
他的工作流極其簡單粗暴:把一個(gè)高達(dá)1.5MB、包含所有代碼文件的Markdown文檔拖進(jìn)AI模型(如Gemini、Codex),直接寫下“給我寫個(gè)技術(shù)規(guī)格說明書”,然后輸入“構(gòu)建”。在這個(gè)過程中,AI甚至?xí)约壕帉憸y試工具(如Playwright)去走通登錄流程并沿途檢查錯(cuò)誤。
“當(dāng)我開始接觸這項(xiàng)新技術(shù)時(shí),每次都讓我多巴胺飆升。我突然意識到,現(xiàn)在我簡直可以構(gòu)建任何東西。”Peter表示。
這直接觸及了當(dāng)前軟件行業(yè)的核心痛點(diǎn):研發(fā)成本。以往需要一個(gè)架構(gòu)師、前端、后端、測試組成的完整團(tuán)隊(duì)才能跑通的MVP(最小可行性產(chǎn)品),現(xiàn)在一個(gè)人在幾個(gè)小時(shí)內(nèi)就能完成。
“大多數(shù)代碼都很無聊”:代碼在貶值,意圖在升值
當(dāng)代碼可以被輕易生成,“寫代碼”本身就失去了壁壘。
目前,OpenClaw面臨著超2000個(gè)開源代碼合并請求(PR)。但Peter審視這些代碼的方式已經(jīng)完全變了。他不再逐行閱讀代碼,而是讓AI去審查。
“大部分代碼都很無聊。它只是將一種數(shù)據(jù)形狀轉(zhuǎn)換為另一種數(shù)據(jù)形狀。我實(shí)際上并不關(guān)心代碼,我關(guān)心的是這個(gè)人到底想解決什么問題。”
他將現(xiàn)在的開源貢獻(xiàn)戲稱為“提示詞請求(Prompt Request)”。他拿到別人的代碼后,第一句話是問AI:“你理解這個(gè)PR的意圖嗎?”隨后,他會通過語音與AI討論這是不是最優(yōu)解、是否存在架構(gòu)問題,討論成熟后,再由AI一鍵生成并合并代碼。
這種范式的轉(zhuǎn)變說明,軟件開發(fā)的本質(zhì)已經(jīng)從“熟練掌握編程語言”變成了“清晰定義問題和管理系統(tǒng)架構(gòu)”。Peter直言,那些還在用老舊方式手工敲代碼的開發(fā)者(他稱之為VIP coding)會被淘汰。
“我媽能裝” vs “黑客樂園”:安全爭議把開源推到臺前
對于OpenClaw的未來,Steinberger的目標(biāo)是兩頭都要:“我想在‘我媽也能裝’和‘好玩、可黑’之間找到平衡——這很難。”
他描述OpenClaw長期的默認(rèn)安裝方式其實(shí)很“反常規(guī)開源”:git clone后源碼就在本地,代理“坐在源碼里,也知道源碼”,不滿意就“直接提示它改自己”,近似“自修改軟件”。
但這也把安全矛盾放大。他直言“提示注入還沒解決”,同時(shí)吐槽外界忽略使用邊界:項(xiàng)目里的Web服務(wù)最初只打算給“可信內(nèi)網(wǎng)”調(diào)試,但有人硬要暴露到公網(wǎng),然后安全圈再反過來說“沒有公網(wǎng)該有的登錄限制”。
“我在安全文檔里一直喊‘別這么干’,但人們還是會這么用。”
他表示自己已引入安全專家,現(xiàn)實(shí)目標(biāo)是“支持這些用法,同時(shí)讓大家別一腳踩穿地板”。
給還沒上車的人一句話:先玩起來
談到歐洲開發(fā)者對代理工具接受度偏慢,Steinberger的建議非常直白:“用玩心去做。去做一個(gè)你一直想做的東西。”
他引用一句流行判斷并站隊(duì):“我覺得英偉達(dá)的CEO說過,短期內(nèi),你不會被AI取代,你會被使用AI的人取代。”
最后他拋出時(shí)間判斷:“我認(rèn)為在接下來的一年里,這一切將會徹底爆發(fā)。”
“人們沒有意識到,GPT-5.2在‘這東西能直接跑通’的層面上,又是一次量子級躍遷。我至今仍對它能運(yùn)作得如此之好感到驚訝。”
訪談全文翻譯如下:
Romain Huet: Peter,歡迎來到 OpenAI。我們在網(wǎng)上已經(jīng)認(rèn)識很多年了,但我很高興終于有機(jī)會和你進(jìn)行面對面的深入交流。
Steinberger: 感謝你們的邀請,我也是。順便說一句,你們的辦公室很漂亮。
Romain Huet: 謝謝。你過去這幾周可真是瘋狂。一個(gè)月前,我們最初有了做一期視頻的想法。如果我們當(dāng)時(shí)就做了,我可能還得專門介紹一下你。但現(xiàn)在,我想你甚至都不需要介紹了。一個(gè)開源項(xiàng)目能登上《華爾街日報(bào)》可不常見。恭喜你取得的這些成功!你現(xiàn)在感覺如何?
Steinberger:說實(shí)話,現(xiàn)在各方面都有些超負(fù)荷。但是,當(dāng)初我開始嘗試接觸 AI 的時(shí)候,我就想啟發(fā)大家。我覺得現(xiàn)在正是最有趣的狀態(tài),所以我感到很自豪。
Romain Huet: 這太棒了。你過去一周都在舊金山參加了一些活動,比如 Codex 黑客松,而且你還參加了一個(gè)專門針對 OpenClaw(注:指代受訪者的開源 AI 項(xiàng)目)的聚會活動。
Steinberger: 那個(gè)活動其實(shí)是社區(qū)自發(fā)組織的。當(dāng)時(shí)大家說我們需要辦個(gè)線下聚會,于是我就建了一個(gè)關(guān)于聚會的 Discord 頻道,我說“好啊”。結(jié)果我到了現(xiàn)場,發(fā)現(xiàn)竟然有上千人!我被大家的創(chuàng)造力、現(xiàn)場的色彩氛圍,以及那么多充滿熱情的人徹底震撼了。
Romain Huet: 那一刻你肯定意識到自己創(chuàng)造了一些神奇的東西。幾周前這個(gè)項(xiàng)目甚至還不存在,而現(xiàn)在已經(jīng)有成千上萬的人在擁抱它、使用它,并聚集在舊金山見你,這真是令人難以置信。
Steinberger: 哪怕是下周在維也納的活動,我們也已經(jīng)有 300 人報(bào)名了。要知道,那里的科技圈氛圍(Tech scene)可遠(yuǎn)不如舊金山濃厚。所以這已經(jīng)是一個(gè)全球性的現(xiàn)象了。
Romain Huet: 這確實(shí)很了不起,它觸達(dá)了不同的洲和不同的文化。那么,你在這里與社區(qū)的交流進(jìn)行得怎么樣?你花時(shí)間與社區(qū)互動,還有那些被你引入項(xiàng)目的一些維護(hù)者,這對你來說體驗(yàn)如何?
Steinberger: 這種體驗(yàn)非常特別。很多人都很喜歡它。許多人對這個(gè)項(xiàng)目抱有一種期待,認(rèn)為它是一個(gè)企業(yè)級的最終產(chǎn)品。但對我來說,很長一段時(shí)間里,它只是我的一個(gè)小游樂場。這整整一年,我都在為 AI 帶來的可能性感到驚嘆。現(xiàn)在,如果你是一個(gè)開發(fā)者,你會覺得這真是一個(gè)不可思議的時(shí)代。
Romain Huet: 在這個(gè)時(shí)間點(diǎn),你認(rèn)為關(guān)于“構(gòu)建”——真正去構(gòu)建產(chǎn)品、成為一個(gè)開發(fā)者——最有趣的事情是什么?這是一個(gè)非常有趣的時(shí)期,整個(gè)工具鏈都在發(fā)生變化,開發(fā)者的定義也在改變,任何人都可以構(gòu)建任何東西。
Steinberger: 當(dāng)我剛開始玩這些新技術(shù)時(shí),每次都能獲得多巴胺的刺激。當(dāng)初我用代碼輔助工具時(shí),它只有大概 30% 到 40% 的幾率能把事情做對。但對我來說,那依然是極其震撼的。因?yàn)槲乙庾R到,現(xiàn)在我可以構(gòu)建任何東西了。以前寫軟件通常會受到很多時(shí)間限制,因?yàn)檐浖_發(fā)很難。雖然現(xiàn)在軟件開發(fā)依然很難,但你的速度已經(jīng)快得多了。
Romain Huet: 我完全同意。如果我們將時(shí)間稍微倒回幾年,我記得大概是在 2011 年或 2012 年,你開發(fā)了 PSPDFKit,那是我們第一次了解你的工作。從外界來看這很有趣,因?yàn)楦杏X你實(shí)現(xiàn)了每個(gè)開發(fā)者的夢想:你遇到了一個(gè)問題,為它創(chuàng)造了一個(gè)出色的解決方案,圍繞它建立了一家公司,擴(kuò)大了規(guī)模,最后成功把它賣掉。但我相信這段旅程絕非易事。
Steinberger: 的確如此。我并不是某天醒來就想:“我要去寫一個(gè) PDF 框架”,那在我興趣清單上絕對是負(fù) 100 分的位置。它就這么自然而然地發(fā)生了。這就像一種奇妙的蝴蝶效應(yīng):從參加諾基亞開發(fā)者大會,到身邊的朋友有這個(gè)需求,再到申請美國簽證等得太久,這一切機(jī)緣巧合最終促使我創(chuàng)立了一家公司。
Romain Huet: 我覺得有趣的是,在建立那家公司之后,你似乎休息了一段時(shí)間。是什么又把你帶回了開發(fā)領(lǐng)域?
Steinberger: 是的,到最后我真的精疲力盡了。好幾年里我都在高負(fù)荷運(yùn)轉(zhuǎn)。經(jīng)營公司很難,做創(chuàng)始人也很難。而且這是我第一次創(chuàng)業(yè),不太懂得如何緩解這些壓力,所以我燃燒得太猛烈了,需要放松一下。
后來我仍然在關(guān)注科技新聞。我看到了 ChatGPT 早期的一些項(xiàng)目,比如 GPT-Engineer 之類的。我覺得挺酷,但并沒有真正讓我感到興奮。你必須得親自體驗(yàn)新技術(shù),光看文章是無法真正體會到它的力量的。所以當(dāng)時(shí)那項(xiàng)技術(shù)并沒有立刻觸動我。
直到我準(zhǔn)備好了,當(dāng)我感覺到“我想再做點(diǎn)東西了”,而且我不想再用蘋果的技術(shù)棧了——因?yàn)槲乙呀?jīng)做了太久,而世界已經(jīng)向前發(fā)展了。當(dāng)時(shí)我隱約有種感覺,當(dāng)你是一個(gè)領(lǐng)域的絕對專家,要轉(zhuǎn)向另一個(gè)領(lǐng)域時(shí),不僅是“困難”,甚至可以說是“痛苦”。因?yàn)槟阌嘘P(guān)于如何構(gòu)建系統(tǒng)的大量宏觀知識,但如果要在沒有 AI 輔助工程的情況下真正去實(shí)現(xiàn),你還需要重新學(xué)習(xí)很多基礎(chǔ)知識來遷移你的經(jīng)驗(yàn)。
后來我就想,不如來看看現(xiàn)在這些 AI 技術(shù)到底怎么樣。真正讓我感到震撼的時(shí)刻是,我拿出了一個(gè)做到一半的項(xiàng)目(之前在完成它之前我就已經(jīng)倦怠了)去測試。
Romain Huet: 對我們開發(fā)者來說,這種情況很常見。我們喜歡有新想法并啟動新項(xiàng)目,但把它們推向終點(diǎn)才是最難的部分。
Steinberger: 我經(jīng)常看到這種情況。這真的很難,甚至有時(shí)候會以失敗告終。但對于這個(gè)項(xiàng)目,我想繼續(xù)做下去,而且我想重寫它。所以我把所有的文件整合在一起,做成了一個(gè)巨大的 Markdown 文件,大概有 1.5 MB 那么大。我把它拖進(jìn) Gemini 1.5 Pro Studio,讓它給我寫一份前端架構(gòu)層面的需求說明書(Spec)。然后我把它拖進(jìn) AI 編程工具里面,寫上“構(gòu)建(Build)”。
接著我就在主屏幕上干別的事,它就在副屏幕上運(yùn)行了幾個(gè)小時(shí)。當(dāng)時(shí)的工具比現(xiàn)在粗糙得多。到了某個(gè)時(shí)刻,那個(gè)強(qiáng)大得有些“瘋狂”的模型(比如 Claude 3.5 Sonnet 等)告訴我:“我已經(jīng)達(dá)到 100% 的生產(chǎn)就緒狀態(tài)了。”我試了一下,結(jié)果程序崩潰了。然后我接入了 Playwright(這是少數(shù)幾個(gè)我會實(shí)際使用的模型上下文協(xié)議 MCP 之一),讓它去構(gòu)建登錄功能,并沿途檢查工作狀態(tài)。
一個(gè)小時(shí)后,它竟然真的跑通了,并且給我展示了一些界面。雖然那是質(zhì)量極差的“代碼垃圾(slop)”,但對我來說,那就是真正頓悟的時(shí)刻。從流程上來說,它展現(xiàn)出的可能性讓我起雞皮疙瘩。那一刻起我甚至激動得睡不著覺,我的大腦爆炸般涌現(xiàn)出我一直想做卻無法實(shí)現(xiàn)的各種想法。從那以后,我就徹底掉進(jìn)這個(gè)“兔子洞”里了。
Romain Huet:很多人把 OpenClaw 視為你的一夜成名之作。但我喜歡并且覺得你的故事中最迷人的地方在于,它是你過去 9 到 10 個(gè)月里一直在做的許多項(xiàng)目的結(jié)晶。看看你的 GitHub 主頁,你構(gòu)建了 40 多個(gè)項(xiàng)目,而且其中一半都在這個(gè)項(xiàng)目里用到了。你可以把它們?nèi)空系巾?xiàng)目中。你能告訴我們更多關(guān)于這段旅程的故事嗎?這些想法和項(xiàng)目是如何融入進(jìn)來的?
Steinberger: 我多希望我能說,我一開始就有一個(gè)統(tǒng)一的宏大計(jì)劃,但其實(shí)大部分時(shí)間我只是在探索。我想要一些東西,而這些東西還不存在,我就自己把它們構(gòu)建出來——或者說,我用提示詞(Prompt)讓它們變?yōu)榱爽F(xiàn)實(shí)。
這完全是一步步來的,因?yàn)槲抑皇窍胱屛业?AI 智能體(Agent)幫我做點(diǎn)事情,當(dāng)時(shí)還沒有統(tǒng)一的愿景。有趣的是,事情最后又回到了原點(diǎn):我最初想做一個(gè)能查看我 WhatsApp 消息的工具。我甚至為此買了個(gè)域名,做了一個(gè)原型。但后來我想,那些大實(shí)驗(yàn)室肯定會做這個(gè)的,我不如等一等,把精力放在其他事情上。我進(jìn)行了大量的實(shí)驗(yàn),我的初衷其實(shí)就是為了好玩,同時(shí)啟發(fā)他人。
到了 11 月,我做了幾個(gè)符合我預(yù)期版本的原型,但都不太好。當(dāng)時(shí)我就納悶:為什么還沒有哪個(gè)實(shí)驗(yàn)室做出這種東西?他們到底在干嘛?于是我構(gòu)建了第一版,也就是后來成為 OpenClaw 的項(xiàng)目。這已經(jīng)是我們換的第 5 個(gè)名字了。
起初我還沒有完全搞懂它的價(jià)值,只是覺得這很酷。因?yàn)槟阒恍杌ㄒ粋€(gè)小時(shí)就能做出第一個(gè)原型,只要把想法用語言表達(dá)出來。真正讓我徹底領(lǐng)悟的,是我去馬拉喀什度周末的旅行。我發(fā)現(xiàn)自己使用它的頻率非常高,因?yàn)樗奖懔恕D抢餂]有很好的網(wǎng)絡(luò),但 WhatsApp 可以在任何地方使用。用它發(fā)圖片、翻譯東西、幫我找餐廳,甚至通過電腦查閱資料,都極其方便。我把它展示給朋友看,讓它幫我發(fā)短信,結(jié)果他們也想要這個(gè)工具。我就說:“你們不該用它,你們還不了解它的風(fēng)險(xiǎn)。”
Romain Huet: 這其實(shí)就是“產(chǎn)品契合市場(PMF)”的標(biāo)志。哪怕你最初沒有為朋友設(shè)計(jì)這個(gè)東西,它只是你為技術(shù)圈同行保留的工具,但你的朋友已經(jīng)迫不及待想要了。
Steinberger: 后來真正讓我大開眼界的是,我頻繁地使用它,然后有人給我發(fā)了一條語音消息。我當(dāng)時(shí)的反應(yīng)是:“等等,這個(gè)工具應(yīng)該處理不了語音才對啊。”
Romain Huet: 跟我多講講這個(gè)故事吧,那天我們聊到這個(gè)的時(shí)候我覺得太不可思議了。
Steinberger: 這恰恰證明了這些模型在解決問題方面的能力有多強(qiáng)。我們?yōu)?AI 輔助工程構(gòu)建了這些系統(tǒng),但在更抽象的層面上,如果你想成為一名真正優(yōu)秀的程序員,你必須是一個(gè)非常出色的問題解決者,這種能力適用于任何領(lǐng)域。
當(dāng)時(shí)我發(fā)送了那條語音消息,然后屏幕上竟然出現(xiàn)了“正在輸入”的提示。我當(dāng)時(shí)想:“我倒要看看現(xiàn)在會發(fā)生什么,我可沒寫過處理語音的功能,這不可能行得通的。”然后模型竟然回復(fù)了我!我非常震驚,問模型:“你是怎么做到的?為什么這個(gè)能行得通?”
模型回答說:“你給我發(fā)了一條消息,但那只是一個(gè)沒有后綴名的文件。所以我查看了文件頭,發(fā)現(xiàn)它是 Opus 格式的音頻。于是我調(diào)用了你電腦上的 FFmpeg 把它轉(zhuǎn)換成了常見格式。接著我想轉(zhuǎn)錄它,但你電腦上沒有安裝 Whisper。我四處找了找,發(fā)現(xiàn)了一個(gè) OpenAI 的接口,我就用 curl 命令把文件發(fā)給 OpenAI,拿到了返回的文本,然后我就回復(fù)你了。”
Romain Huet: 這太難以置信了!這就是賦予智能體工具和完整計(jì)算機(jī)訪問權(quán)限的威力。哪怕你從未對它們進(jìn)行過相關(guān)編程,它們現(xiàn)在也可以自己想出解決方案。
Steinberger: 很有趣的是,當(dāng)我跟別人講這個(gè)故事時(shí),他們的反應(yīng)是:“我的天啊,它居然擅自使用了你的密鑰!這太瘋狂了!”我就會說:“不,我把密鑰放在環(huán)境變量里就是為了讓它用的!如果這是一個(gè)需要訪問 OpenAI 密鑰的腳本,我的機(jī)器人既然運(yùn)行在同一個(gè)環(huán)境中,它理所應(yīng)當(dāng)去訪問。這就是我想要的效果。”
這就是我的頓悟時(shí)刻。現(xiàn)在每次我把它展示給朋友時(shí),我都會把他們拉進(jìn)一個(gè)小群聊里。坦白說,這個(gè)東西最初是為一對一交流設(shè)計(jì)的。所以如果把它放在群聊里,你得選擇你真正信任的人。
Romain Huet: 真正信任的人?
Steinberger: 對,因?yàn)樗?dāng)初的設(shè)計(jì)并沒有考慮到“直接放到公共環(huán)境里還能永遠(yuǎn)做正確的事”。它是你的私人助手。
Romain Huet: 我剛開始設(shè)置它的時(shí)候也非常好奇。我心想,這設(shè)置挺怪的,但它會把我?guī)蚰睦锬兀亢髞砦乙步?jīng)歷了幾次“頓悟時(shí)刻”:你給它的訪問權(quán)限越高,賦予它的工具和技能越多,它的表現(xiàn)就越讓你驚嘆。你賦予它一項(xiàng)虛擬技能,讓它去構(gòu)建一個(gè)網(wǎng)站或應(yīng)用,甚至為你想要舉辦的活動寫個(gè)程序。它不僅能把應(yīng)用建好,還能使用你的 OpenAI API 密鑰往里面加入一些 AI 功能,并將其部署到 Vercel 上。它甚至直接給你生成了一個(gè)可以分享給朋友的鏈接。與僅僅“增強(qiáng)寫代碼的能力”相比,這完全是思維方式的降維打擊。
Steinberger: 整個(gè) 11 月和 12 月,我完全沉迷于此。雖然我還在做些別的項(xiàng)目,但大部分時(shí)間都花在這上面了。但在 Twitter 上,大家似乎并不理解它的價(jià)值,反響平平。而每次我向朋友展示時(shí),他們都想要,但我總是說“它還沒準(zhǔn)備好”。
后來我就想:“我要怎么做才能向大家展示這東西有多酷?”于是我創(chuàng)建了一個(gè) Discord 頻道,直接把我的機(jī)器人放了進(jìn)去。當(dāng)時(shí)沒有任何安全防護(hù),因?yàn)樵谠缙陔A段,我甚至還沒內(nèi)置沙盒功能。我完全是在公開環(huán)境下開發(fā)。我基本上是在用它構(gòu)建它自己。我把代碼扣掉,然后問模型:“你看到這段工具代碼了嗎?”它說:“沒有,我什么都沒看到。”我說:“去查一下你自己的源代碼。”它照做了很多事情,人們看到這一幕后,終于明白了它的威力。
Romain Huet: 當(dāng)你把它像這樣放到 Discord 里時(shí),你給了它什么樣的訪問權(quán)限?你有沒有把比如你所有的推文都給它?它對你有什么樣的背景知識?
Steinberger: 沒有把我所有的推文給它,那太多了,但給了一些我的記憶資料。我很快就開始密切監(jiān)控它,因?yàn)樘崾驹~注入(Prompt Injection)仍然是一個(gè)未解決的問題。不過最新一代的模型確實(shí)非常聰明。我有一個(gè)防御性的系統(tǒng)指令文件(System.md),它定義了我的價(jià)值觀、我希望模型如何工作、如何操作、如何思考、什么對我是重要的,以及那些不能泄露的秘密。
大家對這個(gè)秘密非常好奇,一些路人跑進(jìn)來試圖對它進(jìn)行提示詞注入,粘貼了大段大段的代碼。結(jié)果模型回復(fù)說:“我才不看這些東西。”基本上就是在嘲笑他們。但我當(dāng)時(shí)還是不太放心。第一天晚上,它引起了極大的關(guān)注,然后我就把它關(guān)了去睡覺。睡了大概 10 個(gè)小時(shí),醒來一看,Discord 里有 800 多條消息,我的智能體居然回復(fù)了每一條!我當(dāng)時(shí)嚇壞了,趕緊再次把它關(guān)掉。
我仔細(xì)閱讀了每一條聊天記錄。到后來我就松了一口氣,因?yàn)樗鼘?shí)際上并沒有做任何惡意的事情。它沒有讓人把我的系統(tǒng)指令套出來。我并不是說提示詞注入不可能發(fā)生,但它確實(shí)不像人們想象的那么容易。
Romain Huet: 從宏觀來看,它的表現(xiàn)其實(shí)完全符合你的期望。
Steinberger: 是的。我當(dāng)時(shí)犯的最大錯(cuò)誤是:我雖然關(guān)掉了它,但我忘了我還設(shè)置了一個(gè)守護(hù)進(jìn)程(Launch Daemon)。守護(hù)進(jìn)程的主要作用就是如果程序崩潰或被殺死,它會自動重啟。因?yàn)槟阆胱屗蔀橐粋€(gè)可靠的服務(wù),蘋果等系統(tǒng)就是這么設(shè)計(jì)的。我當(dāng)時(shí)沒想起來這茬,我把它殺掉了,結(jié)果我去睡覺后不到 5 秒鐘它就自動重啟了。現(xiàn)在我吸取教訓(xùn)了。
現(xiàn)在我也加入了沙盒機(jī)制。有人非常自豪地把智能體放在他的 Mac Studio 里,稱之為“城堡”。然后我把它放進(jìn)了一個(gè)極其精簡的 Alpine Docker 容器里。你知道,這些模型真的極具創(chuàng)造力。第一次在那個(gè)幾乎空無一物的容器里時(shí),我讓模型去“查看一下這個(gè)網(wǎng)站”。它進(jìn)去后發(fā)現(xiàn):“這系統(tǒng)里連 curl 命令都沒有,什么都沒有。”我就告訴它:“發(fā)揮你的創(chuàng)造力。”
結(jié)果,它利用自帶的工具、通過 TCP 套接字和 C 編譯器,自己手搓了一個(gè)簡陋版的定制 curl!這樣它就能成功訪問網(wǎng)站了,而且真的奏效了,簡直太瘋狂了!所以說,這些智能體擁有不可思議的資源整合能力。
Romain Huet: 你也遇到了一些挑戰(zhàn),比如人們會審視潛在的安全問題,期望你從第一天起就提供一個(gè)絕對穩(wěn)健的系統(tǒng),盡管你只是發(fā)布了一個(gè)開源項(xiàng)目。
Steinberger: 我總是覺得很好笑。經(jīng)常有人問我:“你能幫我引薦一下你們的 CEO、人力資源或者團(tuán)隊(duì)的其他成員嗎?”我就回答:“團(tuán)隊(duì)就我一個(gè)人,我只是在我的‘山洞’里敲代碼。”但這恰恰體現(xiàn)了他們產(chǎn)生的認(rèn)知失調(diào)。因?yàn)檫@個(gè)項(xiàng)目看起來根本不像是任何單一人類能完成的。
當(dāng)然,我現(xiàn)在有了維護(hù)者,也會收到很多代碼合并請求(PR),但這主要還是我一個(gè)人構(gòu)建的。哪怕是在一年前,這也是不可能實(shí)現(xiàn)的。一年前甚至不存在單人能構(gòu)建出這種規(guī)模項(xiàng)目的模型。這超出了人們對這個(gè)領(lǐng)域的原有認(rèn)知。
Romain Huet: 確實(shí)如此。關(guān)于你的生產(chǎn)力,我相信很多開發(fā)者一定很好奇:“Peter 怎么能如此高效?”今天早上我又看了一下你的 GitHub,我發(fā)現(xiàn)在過去這一年里,你在 120 多個(gè)項(xiàng)目中貢獻(xiàn)了近 9 萬次。但有趣的是,在你的 GitHub 活躍度圖表上,上半年的格子還很白,然后變成淺綠色;到了秋天,大概在 10 月、11 月左右,變成了非常深的綠色。那是發(fā)生了什么?
Steinberger: 我記得我跟你提過使用 Codex 等輔助工具的情況。隨著每一代模型的更新,它們變得越來越強(qiáng)。但不僅僅是智能體變得更強(qiáng)了,相關(guān)的工具也變得更好了。同時(shí),我對如何使用這些工具、如何優(yōu)化工作流的理解也加深了。
你知道,那些堅(jiān)持用傳統(tǒng)方式寫代碼的人,正在形成一種逐漸消亡的派系。他們把 AI 輔助編程貶低為“感知編程(Vibecoding)”,認(rèn)為這是一個(gè)貶義詞。他們嘗試了 AI,但沒有意識到這是一項(xiàng)技能。就像你剛拿起吉他,不可能第一天就彈得很好。所以他們體驗(yàn)不佳,然后就說:“哦不,這東西根本沒用。”
相反,如果你以一種游戲的心態(tài)去對待它,你就需要去學(xué)習(xí)。我現(xiàn)在對哪種提示詞有效、大概需要多長時(shí)間,已經(jīng)有了直覺。如果花費(fèi)的時(shí)間超出了預(yù)期,我會反思:也許是我犯了錯(cuò)?也許是架構(gòu)有問題?是我的思路不對,還是其他什么原因?就像親自寫代碼一樣,寫多了你就會有一種直覺:“這個(gè)功能自然地融入了我的架構(gòu)”,或者“我在和系統(tǒng)對抗”,這都需要時(shí)間去摸索。
Romain Huet: 如果人們想變得像你一樣高效,你現(xiàn)在的常用設(shè)置是怎樣的?因?yàn)槟阌幸痪涿裕骸按蠖鄶?shù)人把他們的設(shè)置搞得太復(fù)雜了。”
Steinberger: 我自己以前也搞得太復(fù)雜過,我稱之為“智能體陷阱(Agentic trap)”。從你首次接觸這項(xiàng)新技術(shù),到你真正變得非常高效,中間這段時(shí)間,很多人會陷入這種陷阱,試圖極度優(yōu)化他們的環(huán)境配置。這實(shí)際上并不能讓你變得更高產(chǎn),只是讓你“感覺”自己更高產(chǎn)。所以我把整個(gè)流程簡化為一個(gè)整體。
這也是一個(gè)非常有爭議的觀點(diǎn):我現(xiàn)在就是直接和模型對話。你只需要像聊天一樣去對待它,模型就像你的伙伴。這和傳統(tǒng)的結(jié)對編程不同,它就是一場對話,我基本只告訴它我想要什么。
我總是會問模型一個(gè)問題:“你有什么疑問嗎?”不知為何,默認(rèn)情況下模型總是被訓(xùn)練成“直接解決你的問題”,于是它就會自行做出假設(shè)。但這些默認(rèn)的假設(shè)并不總是最佳的。你要記住,模型是用大量代碼訓(xùn)練出來的,其中包含很多老舊代碼。所以,“你有什么疑問嗎?”是一個(gè)非常重要的問題。人們沒有意識到,模型通常是從“白板”狀態(tài)開始的。它們不像我們那樣去學(xué)習(xí),每次新會話對它來說都是:“我對這個(gè)代碼庫一無所知,我只能去搜索并找到你讓我改的小地方,然后嘗試修復(fù)它。”它們通常看不到系統(tǒng)的全貌。
如果你想處理得當(dāng),你的腦海中必須要有整個(gè)系統(tǒng)的全貌。你需要給模型提供一些幫助,引導(dǎo)它:“看看這里,看看那里。”在這方面,最新的模型在縱觀全局上做得更好了。
最開始我使用非常基礎(chǔ)的方法,我甚至都不用代碼工作區(qū)(Worktrees),直接處理純文本。保持簡單能讓我更專注于實(shí)際要解決的問題。我甚至不去處理分支之類的事情,只專注于不同的具體問題。理想情況下,如果項(xiàng)目變得越來越大,你就可以同時(shí)在不同層面上工作而不至于讓它們相互沖突。
Romain Huet: 你使用了大量的代碼輔助工具來構(gòu)建 OpenClaw。這些工具如何改變了你的工作方式?
Steinberger: 我嘗試了很多工具。我之所以信任它能構(gòu)建出我想要的東西,是因?yàn)樗悄壳八泄ぞ咧锌煽啃宰罡叩模摇耙淮涡耘芡ā钡谋壤浅4蟆N艺J(rèn)為人們還沒有真正意識到,最新一代的模型升級在“開箱即用”方面又實(shí)現(xiàn)了一次量子躍遷。我至今仍然對它如此優(yōu)異的表現(xiàn)感到驚嘆。
Romain Huet: 這太棒了。我們現(xiàn)在可以直接構(gòu)建東西了,這真的很不可思議。
Steinberger: 是的,大家真的需要親自去試一試。
Romain Huet: 你還有一句名言:你現(xiàn)在發(fā)布的很多代碼,你自己甚至都不看。這種理念帶來了怎樣的改變?
Steinberger:其實(shí)大多數(shù)代碼都是很無聊的。大部分代碼只是將一種數(shù)據(jù)形態(tài)轉(zhuǎn)換為另一種數(shù)據(jù)形態(tài),最終展示給用戶或者發(fā)往某個(gè)地方。所以對于模型寫的大多數(shù)代碼,我對它生成的邏輯有很好的理解。只要我看一眼大致流程,確認(rèn)我腦海中的預(yù)想與它生成的代碼大體一致就足夠了。
我以前帶過團(tuán)隊(duì),手下有很多軟件工程師。帶團(tuán)隊(duì)也意味著你需要接受一點(diǎn):他們寫出的代碼不會和你想要的一模一樣。最終,你優(yōu)化代碼庫是為了讓“智能體(Agent)”能做最好的工作,這與讓“人類”做最好的工作并不總是一回事。這也意味著我得接受那些代碼可能不是我親手寫的那個(gè)樣子。雖然我可以強(qiáng)迫模型按照我的風(fēng)格寫,但在很多時(shí)候,代碼結(jié)構(gòu)是怎樣的其實(shí)無所謂。如果有性能問題,你再去重點(diǎn)優(yōu)化它就好了。
Romain Huet: 你剛才關(guān)于代碼價(jià)值的觀點(diǎn),也極大地改變了你對待開源的方式。我看了一下項(xiàng)目,現(xiàn)在上面大概有 2000 個(gè)未處理的合并請求(PR)。在 AI 出現(xiàn)之前,你必須得親自閱讀所有這些 PR,因?yàn)榇a本身是有價(jià)值的。但現(xiàn)在,你有時(shí)把它稱作“Prompt Request(提示詞請求)”而不是“Pull Request(拉取請求)”,因?yàn)?PR 背后的想法或意圖比代碼本身更重要。
Steinberger: 很多時(shí)候,審查一個(gè) PR 花費(fèi)的時(shí)間甚至比我自己去寫還要長。因?yàn)槲覍幵赶嘈拍P蜎]有惡意,也不愿輕信一個(gè)我從未聽說過、也從未交流過的外部貢獻(xiàn)者。所以我必須更仔細(xì)地審查。
當(dāng)我開始審查一個(gè) PR 時(shí),我對模型問的第一個(gè)問題是:“你理解這個(gè) PR 的意圖嗎?”因?yàn)槲艺娴牟辉诤醮a,我在乎的是這個(gè)人到底試圖解決什么問題。這更像是一個(gè)附帶了巨大解決方案代碼庫的“問題工單”。
首先,很多人還不懂得如何駕馭智能體。其次,他們提交的往往是一個(gè)非常局部的解決方案,因?yàn)樗麄兡X海中沒有整個(gè)系統(tǒng)的概念。最難的部分在于,這個(gè)小的新功能如何融入我更大的系統(tǒng)中?或者這個(gè)小修復(fù)——雖然它很小,但它是正確的修復(fù)方式嗎?它會不會是一個(gè)系統(tǒng)性或架構(gòu)層面的問題?
如果你把模型當(dāng)作對話對象,它會表現(xiàn)得非常好。當(dāng)我直接說“好,現(xiàn)在去構(gòu)建這個(gè)”時(shí),它就會開始干活。所以我會問模型:“初衷是什么?這是最佳方案嗎?”有時(shí)模型會說是,但大多數(shù)時(shí)候它會說不是。然后我就會和它探討什么是最好的修復(fù)方法。比如這是一個(gè)架構(gòu)問題嗎?如果這是一個(gè)關(guān)于消息處理的問題,它只影響 WhatsApp 嗎?還是也會影響 Signal?我們要不要用更通用的方式來解決?這是一個(gè)新功能嗎?我們真的需要這個(gè)新功能嗎?
有時(shí)候,這些討論會持續(xù) 10 到 15 分鐘。我經(jīng)常用語音輸入,因?yàn)檫@簡直就像是在和一個(gè)非常聰明的同事交談。
Romain Huet: 用語音傳遞信息確實(shí)比打字更容易。
Steinberger:是的。當(dāng)我滿意時(shí),我有一個(gè)像 1 slash command 那樣的命令,比如 lnpr,它解釋了整個(gè)過程,用來實(shí)際創(chuàng)建分支,完成所有更改,讓PR被合并。我想創(chuàng)建一個(gè)社區(qū),所以我仍然盡量給創(chuàng)建它的人署名,盡管整個(gè)過程比我自己寫完所有東西要長。但我很感激人們想要成為其中的一部分。
Romain Huet:你對Open Claw未來的愿景是什么,考慮到所有這些圍繞項(xiàng)目的貢獻(xiàn)者?你是否把自己看作是"個(gè)人AI智能體應(yīng)該是什么樣子"這個(gè)想法的先驅(qū),以便有一天十億人都能使用類似的東西?
Steinberger:我想找到一個(gè)平衡點(diǎn):一方面是我媽媽可以安裝的東西,另一方面也是有趣且可 hack 的東西。這很困難。你知道,大多數(shù)開源項(xiàng)目,你下載包。但在很長一段時(shí)間里,我的默認(rèn)安裝是 git clone、build、run。然后你實(shí)際上在磁盤上有了源代碼。智能體就位于源代碼中,并且知道源代碼。如果你不喜歡任何東西,你直接提示智能體,它就會改變自己,就像真正的自我修改軟件。所以很多從未給我發(fā)過PR的人,這也是它更像是一個(gè)"提示請求"的原因,因?yàn)樗麄冎皇抢斫饬巳绾螛?gòu)建持久的軟件。
Steinberger:與此同時(shí),整個(gè)世界,或者說整個(gè)安全行業(yè)都把目光投向了它,這很有趣,也有點(diǎn)令人沮喪,因?yàn)樗e(cuò)過了一些細(xì)微差別,對吧?例如,我有的那個(gè)web服務(wù)器。那是為你設(shè)計(jì)的。最初,我是為了調(diào)試而構(gòu)建它,然后我把它弄得漂亮了,但它只應(yīng)該在你的網(wǎng)絡(luò)內(nèi)訪問,在你信任的網(wǎng)絡(luò)內(nèi)訪問。但因?yàn)樗矐?yīng)該是黑客的天堂,有一個(gè)選項(xiàng)可以讓你改變這一點(diǎn),對吧?因?yàn)橛行┤丝赡苡衅婀值脑O(shè)置,也許使用ngrok,也許使用反向代理。所以我不希望把它限制死是有原因的。
Steinberger:但現(xiàn)在,有人把它放在開放的互聯(lián)網(wǎng)上,盡管我在安全文檔中大聲疾呼"請不要這樣做,這不是它的設(shè)計(jì)用途"。然后安全人員指出:"哦,是的,它沒有登錄限制。"它沒有所有這些當(dāng)它在公共互聯(lián)網(wǎng)上時(shí)需要的功能。我說:"是的,我不是為了那個(gè)意圖構(gòu)建它的。"但因?yàn)樗强膳渲玫模耆阕饕粋€(gè)CVS 10。所以,我為此掙扎了一小會兒。但現(xiàn)在我實(shí)際上請了一位安全專家。這是主要焦點(diǎn)。我意識到我無法阻止人們以非預(yù)期的方式使用它。所以我現(xiàn)在的重點(diǎn)是支持所有這些用例,幫助人們不要搬起石頭砸自己的腳。
Romain Huet:沒錯(cuò)。這就是開源的美妙之處。人們可以接受它,并想出你甚至沒想到的主意。
Steinberger:是的,這就是美妙和瘋狂之處。
Romain Huet:也許稍微跳出Open Claw本身,這周我和很多開發(fā)者聊過。我們知道你會來Codex黑客松,他們告訴我:"彼得怎么有這么多好主意?" "彼得怎么這么有創(chuàng)造力?"我不知道你對此有沒有答案,或者這更像是你追隨自己的好奇心?
Steinberger:更像是意識到現(xiàn)在事情變得容易了。所以即使我找到一個(gè)開源項(xiàng)目可能70%解決我的問題,我也會自己構(gòu)建。這在一年前甚至絕對不可能。而現(xiàn)在,我只是提示一下,它就在副屏幕上運(yùn)行,并且正確工作了。
Romain Huet :我們都來自歐洲。當(dāng)我去舊金山以外的地方,回到歐洲時(shí),我相信你也有同感。很多開發(fā)者和工程師還沒有接受Codex和智能體工具。你對剛開始接觸的人有什么建議?他們應(yīng)該如何重新思考他們的工作方式和工作流程?
Steinberger:我的第一個(gè)建議總是:以 playful 的方式接近它。構(gòu)建一些你一直想構(gòu)建的東西。如果你至少有一點(diǎn)創(chuàng)造者的心態(tài),你的腦海深處一定有一些你想構(gòu)建的東西。就是去玩。你只需要以 playful 的方式對待這件事。因?yàn)槲矣X得英偉達(dá)的CEO說過,短期內(nèi),你不會被AI取代,你會被使用AI的人取代。
Romain Huet:哪個(gè)比你用得好的人。是的。
Steinberger:但如果你的身份認(rèn)同是,我想創(chuàng)造東西。我想解決問題。如果你是高能動性的,如果你很聰明,你會比以往任何時(shí)候都更受需求。
Romain Huet:對。對于擁抱這些工具、塑造好奇心、真正能把任何想法變成現(xiàn)實(shí)的創(chuàng)造者來說,這是一個(gè)多么棒的時(shí)代。就像你用所有這些偉大的項(xiàng)目和Open Claw所做的那樣。
Steinberger:我想一年后,這將會大爆發(fā)。
Romain Huet:是的,2026年將會是有趣的一年。我認(rèn)為這是一個(gè)結(jié)束的好方式。非常感謝你的時(shí)間,彼得。和你在一起很愉快。我們OpenAI的所有人,我喜歡你的工作。我們喜歡支持像你這樣的創(chuàng)造者。老實(shí)說,你對更廣泛的開發(fā)者社區(qū)來說是真正的靈感來源。再次感謝,我們迫不及待地想看看你下一步會做什么。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.