來源:市場資訊
(來源:陸向謙)
![]()
4月1日早上,OpenClaw發(fā)布了最新版本。
在GitHub上,OpenClaw擁有超過352,000顆Star,超越React,是GitHub歷史上Star數(shù)最多的軟件項(xiàng)目。
全球超320萬月活用戶,3800萬月訪問量。創(chuàng)始人Peter Steinberger因?yàn)檫@個項(xiàng)目被Sam Altman稱為"天才",已加入OpenAI。
然而在這個最新版本的Release Notes里,貢獻(xiàn)者名單中出現(xiàn)了一個陌生的ID——Luckymingxuan。
項(xiàng)目維護(hù)者BruceMacD在合并頁面寫了一句:"Thanks @Luckymingxuan!"
![]()
幾天后,第二個PR也被合并了。這次合并者不是BruceMacD——而是Peter Steinberger本人。
![]()
![]()
Luckymingxuan的真實(shí)身份,是一個北京國際學(xué)校的高二學(xué)生。16歲,還沒滿17,名叫宋明軒。
繼楊天潤之后,一個16歲中國高中生,如何殺進(jìn)了全球5000個待審核PR的隊(duì)列、只有約1560人貢獻(xiàn)過代碼的開源項(xiàng)目?他到底做對了什么?
/01/ 當(dāng)一臺4080顯卡的電腦,遇上一個"部署不成功"的bug
明軒接觸OpenClaw的時間其實(shí)并不長——2026年2月中下旬才開始玩,滿打滿算不到兩個月。
他手頭有一臺配置不錯的PC,4080顯卡,i9處理器。"感謝我父親的支持,他說你要是學(xué),那我就給你買個最好的。"
他一直想在本地部署一個Ollama模型,接入OpenClaw,在自己電腦上跑一個私人AI助手。"相當(dāng)于是我個人的賈維斯,在本地我也不用花一分token錢,雖然得掏一掏電費(fèi)養(yǎng)它。"
3月26號,他跟實(shí)驗(yàn)室的楊仕明老師開完線上會后,正式開始折騰部署。
從晚上7點(diǎn)折騰到10點(diǎn)。三個小時。部署失敗。
"我以為是我很菜。"明軒笑著回憶,"因?yàn)镺penClaw這么厲害的項(xiàng)目,不可能是它出錯吧?然后我就瘋狂排錯。網(wǎng)關(guān)配置?環(huán)境變量?版本問題?什么都懷疑了一遍。"
轉(zhuǎn)折來自陸向謙實(shí)驗(yàn)室楊老師的一句話——"明軒,這個選項(xiàng)為什么長這樣?我看不應(yīng)該是這樣啊。"
他回去一查,發(fā)現(xiàn)不是自己菜,是OpenClaw的代碼寫錯了:選擇Ollama作為模型提供商后,系統(tǒng)彈出了所有提供商的完整模型列表,而不是只顯示Ollama的模型。
更關(guān)鍵的發(fā)現(xiàn)是——這不是新bug。最近5個快照版本都有這個問題。
為什么全球那么多開發(fā)者在用,沒人發(fā)現(xiàn)?
明軒給出了一個特別有意思的分析:"OpenClaw部署本身就有點(diǎn)難度,真正深入玩它的都是極客玩家。而極客玩家不會在部署這一步卡住——他們會用更老的穩(wěn)定版本。新版本的代碼幾乎都是AI寫的,一股AI味,真人沒怎么手寫。所以這個bug很明顯,但能提交PR的人都已經(jīng)跳過了部署階段,沒人在安裝那一步出問題。"
一個有趣的認(rèn)知盲區(qū):最有能力修bug的人,恰恰不會遇到這個bug。
而明軒,恰好卡在了那個縫隙里。
/02/ "機(jī)不可失"——凌晨12點(diǎn)爬起來的真實(shí)原因
他其實(shí)差一點(diǎn)就沒修。
幾天前他遇到另一個OpenClaw的bug,也想修。結(jié)果當(dāng)天晚上發(fā)現(xiàn)問題,第二天下午官方就修好了——不到一天。
"那次經(jīng)歷在我腦子里種下一個信號:這幫人修bug速度極快,你猶豫一晚上,機(jī)會可能就沒了。"
26號晚上11點(diǎn),他洗漱完畢,關(guān)燈、上床,準(zhǔn)備睡覺。
"我在睡前跟我媽說,要不我去改一下代碼?我有點(diǎn)睡不著,我媽說你改唄。"
"但我自己壓制住了,說還是睡吧,明天早起改。"
然后他翻了一個多小時。
"滿腦子就是在想——這個問題是不是沒有我想的那么難?會不會是它忘記引入了?還是寫錯了?那代碼都是AI寫的……"
翻來覆去睡不著。12點(diǎn),他起來了。
明軒描述得很形象:"渾身跟打了雞血一樣。我說我必須得把這個bug改了,我就不信了。"
后來他在一次對外分享中,用了一句話逗笑了所有人——"垂死病中驚坐起,閻王夸我好身體。"
![]()
但他當(dāng)晚真正起來的理由特別務(wù)實(shí):"我說這個東西我再不改,有人就幫我改了。機(jī)不可失,時不再來。"
/03/ 三小時,國產(chǎn)模型,一套"誘導(dǎo)baby"的AI協(xié)作方法論
接下來的3個小時,是這整個故事中信息密度最高的部分。
先說工具。明軒用的不是什么頂配裝備,當(dāng)時他手頭上能用的只有國產(chǎn)的AI編輯器和大模型。
"沒用什么特別聰明的工具,厲害的模型我都用欠費(fèi)了。"
但他知道怎么跟AI協(xié)作。他在采訪中把這套方法描述得極其詳細(xì),幾乎可以當(dāng)作一份操作手冊。
第一步:限定范圍,不要讓AI自由發(fā)揮。
他不會直接告訴AI"幫我修這個bug"。他的第一步是問:"你覺得這是什么問題?" 記住AI的判斷。再問:"如果鎖定一下范圍,你覺得是哪幾個文件?"把范圍縮小。然后說:"就改這幾個文件,不要改多余的,只有這幾個最重要。"
"我跟誘導(dǎo)baby一樣,一步一步來。"
第二步:每一步都要跑測試,不能信AI說的"改好了"。
"AI也有很多幻覺。它有的時候自己沒有解決問題,還跟我說解決了。"
他講了一個極其生動的場景:"AI改完代碼,沒經(jīng)過我審核的同意,偷偷全給我提交上去了。我說撤回!撤回到前面那幾個commit!我跟它說好了,只允許在這里改,不許再給我私自做決定去push。"
"慢慢它就好像明白我什么意思了。它不會再立馬提交了,會先跟我說——'明軒,你看看這個代碼,你覺得怎么樣?你跑一下測試。'"
第三步:建立"保險機(jī)制",確保隨時可以回滾。
每一次小改動,他都會提交一個commit,大改動就開新分支。AI每一次輸出,他都要手動跑一遍測試。
"我不一定每行代碼都逐行檢查,但每一次AI的改動,我都會親自跑一遍測試。一旦發(fā)現(xiàn)它出現(xiàn)幻覺,立刻撤回到上一個我確認(rèn)過沒問題的版本。在這個安全錨點(diǎn)之上,我放手讓AI自由發(fā)揮——改得聰明的,合并;改得離譜的,撤回。反復(fù)循環(huán),直到問題解決。"
"就像打拳,直接打殺傷力不夠。但如果你換成高跟鞋的尖一戳,就很痛了——也就是要找到關(guān)鍵點(diǎn),描述好問題,拆解一步一步,再蠢的模型也會變得聰明很多。"
我問他:完全不懂編程的人,能用AI修這個bug嗎?
他想了幾秒:"完全不懂編程也可以改。但最難的是排錯——你不知道它用什么方法解決了問題。而且你提交PR的時候,描述欄要寫得很清晰:怎么排錯的、什么問題、改之前改之后是什么樣。"
然后他說了一句特別精準(zhǔn)的話:"你說一行代碼都不寫可以嗎?可以,但你在提交的時候會被卡。用AI很快就能把問題解決,但你怎么描述這個問題、怎么提交、怎么讓審核者愿意合并——這一步會卡。"
凌晨三點(diǎn),他提交了完整的PR。
"12點(diǎn)到3點(diǎn),我的感覺是只有十幾分鐘就過去了。就跟跑車加速一樣,瞬間投入進(jìn)去,對時間完全沒有概念了。"
他說自己在學(xué)校從來沒有一次性學(xué)習(xí)到凌晨三點(diǎn)。
"但這是我熬夜中收獲最大的一次。"
/04/ 5000個PR里,審核者為什么選了他?
提交之后,故事遠(yuǎn)沒有結(jié)束。
OpenClaw當(dāng)時積壓著5000多個PR等待審核。全球開發(fā)者都在提交代碼,其中不乏在硅谷工作十年以上的資深工程師。
"我也沒抱什么希望。寫都寫上去了,萬一呢?"
在等待的6天里,他沒有坐等。他每天早、中、晚各看一次GitHub——不是刷存在感,而是因?yàn)镺penClaw只有一個main分支,更新極快,代碼沖突隨時可能出現(xiàn)。
"一旦有沖突,審核者看都不帶看的。"
他就隨時盯著,一有小沖突就立即修復(fù)、重新提交。"我相當(dāng)于幫他們節(jié)省時間成本,確保審核者看到我代碼的時候,可以直接合并。"
但這只是被選中的必要條件。真正的關(guān)鍵,是他摸索出來的一套"讓審核者無腦點(diǎn)yes"的PR寫法。
這套方法也值得拿出來單獨(dú)講。
他在提交PR之前,專門去看了50多個已經(jīng)被合并的PR是怎么寫的。
發(fā)現(xiàn)一:足夠簡潔。
"讓人一眼看明白你改了什么、有什么風(fēng)險。審核者的時間極其有限,你得讓他無腦點(diǎn)yes——能做到這種程度就可以了。"
發(fā)現(xiàn)二:用截圖說話,不要用文字堆砌。
"把改動前的截圖、改動后的截圖全貼上去,每個都圈起來。前面描述精簡,后面靠圖說話。"
發(fā)現(xiàn)三:小步快跑,別一次改太多。
這是他吃了虧之后總結(jié)的核心經(jīng)驗(yàn)。
"我第一個PR寫了太多內(nèi)容。一個分支里修了好幾個問題,提交了一堆commit,中間還有撤銷的commit堆在里面,看起來一坨。審核者根本不看這種。"
后來他把一個大bug拆成幾個小PR,每個只改一兩個文件。"你只改了五六行代碼,審核者不需要多強(qiáng)的審核能力,一看就明白,直接就過了。"
他提到了一個有趣的反面教材:前段時間有一個叫楊天潤的開發(fā)者,他一共提交了150多個PR,全是拿AI寫的,結(jié)果只通過了20個——通過率不到14%。更夸張的是,因?yàn)樗刻焯峤?0多個PR,直接把審核系統(tǒng)堵住了,OpenClaw后來被迫設(shè)了新規(guī):每個人同時最多只能有10個活躍PR。
"150個里面只過了20個,說明可能完全沒有人工審核就直接提交了。開源社區(qū)更希望你手動看一眼,用最簡單的話說清楚你改了什么。你幫審核者省步驟,他們才愿意幫你合并。"
明軒目前一共提交了3到4個PR,合并了2個。通過率超過50%。
"雖然隔了6天才審核,但審核者真正看我代碼到點(diǎn)合并,可能只用了幾秒鐘。因?yàn)槲覍懙米銐蚯逦?
/05/ "在實(shí)驗(yàn)室做項(xiàng)目就是迷你版的OpenClaw"
讓一個16歲的高中生知道怎么寫PR、怎么跟AI協(xié)作、怎么站在審核者角度思考——這些能力從哪來的?
明軒對此有一個特別坦率的回答:
"我并不是完全純業(yè)余過來的。我之前給陸向謙實(shí)驗(yàn)室的GitHub項(xiàng)目提交過代碼、提交過PR,這個經(jīng)驗(yàn)是有的。"
2022年,他媽媽幫他找到了陸向謙實(shí)驗(yàn)室。那一年,他才開始真正寫代碼,學(xué)的是Lua,做Roblox游戲。
但在那之前,他的人生軌跡跟編程幾乎沒有關(guān)系。
"我加入實(shí)驗(yàn)室之前是搞美術(shù)的,從四五歲開始學(xué),學(xué)了8年。板繪、漫畫設(shè)計(jì)等等,本來打算未來往設(shè)計(jì)方向發(fā)展。"
四五年級接觸了Scratch編程,學(xué)到初一不想學(xué)了。"太沒意思了,整天就刷題,到后來跟上學(xué)沒什么區(qū)別,我覺得太無聊了,想找點(diǎn)有意思的項(xiàng)目。"
他跟電腦的緣分有一個很具體的起點(diǎn):"我家有一臺舊電腦,本來被我爸要賣掉的,只能賣50塊錢。我自己一點(diǎn)一點(diǎn)把它修好了——從那以后,對電腦、對代碼、對軟件產(chǎn)生了莫大的興趣。"
后來加入實(shí)驗(yàn)室,他的GitHub上就沒斷過項(xiàng)目。最早是一個Discord聊天語音機(jī)器人,"就是想讓自己的Discord服務(wù)器能跟AI對話"。
到了高一,他在實(shí)驗(yàn)室接手了AI客服項(xiàng)目,前后做了兩個版本,從最初的TikTok自動回復(fù),迭代到后來更完整的直播AI插件。中間還給實(shí)驗(yàn)室的nove-api項(xiàng)目貢獻(xiàn)過代碼,負(fù)責(zé)周期性總結(jié)模塊。
甚至就在接受采訪的前幾天,他還順手寫了一個叫SubBlocker的小工具——功能很簡單,就是在看英文視頻的時候擋住字幕,強(qiáng)迫自己練聽力。
在這些大大小小的項(xiàng)目中,明軒一點(diǎn)一點(diǎn)練出了真正做項(xiàng)目的能力。
回顧在實(shí)驗(yàn)室的這幾年,他說有兩個時刻最關(guān)鍵。
第一個,是剛加入不久。楊老師在做一個AI直播間客服項(xiàng)目,說:"明軒,你能不能解決這個問題?解決了你來講課。"
"我當(dāng)時一番激情,整晚整晚熬夜,吭哧吭哧幾天搗鼓出來了。楊老師第二天直接說:明軒,這個月之后的課都由你來講AI客服這一塊。"
那是他第一次覺得自己"不只是業(yè)余愛好者"了。
第二個,就是OpenClaw的PR被合并。"相當(dāng)于我的代碼能力被全球的開源社區(qū)認(rèn)可了——無論是質(zhì)量還是提交方式都是合規(guī)的、正規(guī)的。"
然后他說了一段讓我印象極深的話:
"我真的沒想過,給OpenClaw寫代碼跟在實(shí)驗(yàn)室的流程,重疊率高達(dá)80%到90%。在實(shí)驗(yàn)室也得過CI測試、也得寫描述、也得過老師審核,楊老師CI不過都不讓你提代碼。OpenClaw就是文件多一點(diǎn)、描述寫清楚一點(diǎn),實(shí)際上特別像實(shí)驗(yàn)室的項(xiàng)目。"
"實(shí)驗(yàn)室就是迷你版的OpenClaw開源社區(qū)。"
"而且你別看OpenClaw那么大的項(xiàng)目——全球貢獻(xiàn)者只有1560個左右,它很多CI都沒過直接就合并了。我們實(shí)驗(yàn)室這邊CI還都得全過才允許提交。某種意義上,我們這邊的標(biāo)準(zhǔn)比OpenClaw還嚴(yán)。"
他對實(shí)驗(yàn)室的總結(jié)很務(wù)實(shí):"它更像是一個buff加速卡,極大地壓縮了我的成長時間。如果我自己摸索,可能到23歲、26歲才能達(dá)到現(xiàn)在的水平。但在這個環(huán)境里,周圍都有國內(nèi)外的小伙伴在做同樣的事,大家能一起玩,效率被極大放大了。"
/06/ "他們聊完之后真正做出來的——零"
明軒在北京讀一所走美國和加拿大方向的國際學(xué)校。現(xiàn)在高二,成績曾經(jīng)很靠前,尤其是數(shù)學(xué)。但這個學(xué)期,他主動降低了花在學(xué)業(yè)上的時間占比。
"我們有一個學(xué)長特別厲害,三年考了七門AP。這么厲害的同學(xué),都不一定能申請到特別好的名校,那我呢?"
"要在數(shù)學(xué)上再往上拔就得刷題了,已經(jīng)不是靠學(xué)習(xí)能彌補(bǔ)的,我覺得沒必要花這些時間。"
他把精力轉(zhuǎn)向了代碼和開源項(xiàng)目。我問他同學(xué)知道這件事嗎?
"不知道,我偷偷做的。"
為什么不說?答案不是謙虛,是一種被經(jīng)驗(yàn)教訓(xùn)過的自我保護(hù):
"我之前試過跟同學(xué)分享。結(jié)果他們就開始戴有色眼鏡——'你這么厲害怎么會出錯?'編程出一個小bug他們就大驚小怪。所以后來我就不說了,這個PR他們到現(xiàn)在都不知道。"
他試過更積極的方式。Coze火的時候,他手把手教同學(xué)怎么注冊、怎么創(chuàng)建智能體,甚至把注冊鏈接和操作步驟都寫好發(fā)過去了。
"但到目前為止,聊完之后真正把東西做出來的——零!一個人都沒有。"
"不是他們不聰明。是沒有人想過自己去改代碼、去解決一個真實(shí)問題。學(xué)校考試不讓你用AI工具,但社會上的實(shí)際問題都是開放的,能解決就行,隨便用什么工具。但沒有多少人想過這個事情。"
有人說過他不務(wù)正業(yè)嗎?
"有過。但一旦你做出來了,他們就開始感興趣了。他們以為從0到1是一個質(zhì)變的過程,但其實(shí)中間是量變。在實(shí)驗(yàn)室積累了很多,個人也做了很多努力,是一個雙向奔赴的過程。"
學(xué)校教的東西對這次貢獻(xiàn)有幫助嗎?
"誠實(shí)地講,幫助不是很大。數(shù)學(xué)有一點(diǎn)——微積分對理解大模型訓(xùn)練有用。其他科目能讓我摸到門,但摸不到門檻。"
"學(xué)校老師是為了教書而教書、為了讓我們考出分而教。你說他們自己做出過一個很厲害的項(xiàng)目嗎?肯定沒有。如果做得很好,他們就不來教我們了。但實(shí)驗(yàn)室的老師是有成功經(jīng)驗(yàn)之后回來教的,落地性完全不一樣。"
/07/ "在GitHub上寫的每一行代碼,都是真實(shí)的"
4月1日早上,明軒那天跟學(xué)校請了假,下午有個AI活動要參加。
他打開GitHub,一條新通知跳出來。
"我一開始看錯了。以為是給楊老師提交的那個PR合并了——因?yàn)槲彝瑫r也給實(shí)驗(yàn)室的項(xiàng)目提代碼。最初感受挺平淡,然后往上一滑,不對!不是楊老師的項(xiàng)目,是OpenClaw的。"
"Thanks @Luckymingxuan。"
![]()
4月1號,那天很戲劇,正好是愚人節(jié)。
"我真有一瞬間想,萬一是楊老師給我開的玩笑呢?哈哈。"
他點(diǎn)進(jìn)合并者BruceMacD的主頁。是OpenClaw負(fù)責(zé)Ollama模塊的核心維護(hù)者,同時也是Ollama開源社區(qū)的資深貢獻(xiàn)者。
不是玩笑。"我直接站起來鼓掌。"
整整一個小時才緩過勁來。然后打電話給媽媽,媽媽回來抱了抱他:"太棒了,兒子你太厲害了。"
幾天后第二個PR也被合并。這次合并者是創(chuàng)始人Peter Steinberger本人。
![]()
"我點(diǎn)開他主頁——我去,真是Peter?@Luckymingxuan,謝謝明軒。這就有點(diǎn)像喬布斯給你發(fā)了個邀請,感謝明軒對蘋果公司做出的貢獻(xiàn)。難以言表,都說不出話來了。"
我問他:你研究過Peter嗎?
"研究過。網(wǎng)上很多人說他隨便寫了一個項(xiàng)目就火了。不是的!我深入看了他的GitHub,他的貢獻(xiàn)圖是全綠的——每天至少10個提交以上的深綠色,一整年幾乎沒有空白。你沒見過一個人的GitHub是全綠的,他不是隨便寫寫就成功的,在GitHub上是見了真章的。"
采訪最后,我問他:你接下來要做什么?
"繼續(xù)深入玩OpenClaw,繼續(xù)給開源社區(qū)提代碼。畢竟在GitHub上寫的每一行代碼都是真實(shí)的,是為人類做出了貢獻(xiàn),不是在學(xué)校里做小鎮(zhèn)做題家。"
大學(xué)呢?"真誠地講,完全沒有必要了。但它是一個好的跳板——想去美國硅谷發(fā)展的話,學(xué)生身份拿簽證更容易。大學(xué)不是目的,是工具和跳板。"
我繼續(xù)追問了他,如果對同齡人說一句話,你會說什么?
他指了指自己的GitHub個人簽名。那上面寫著一句英文,是他2022年剛開始寫代碼的時候就寫上去的——
![]()
"Nothing is truly impossible, it's all about finding the right approach."
沒有什么是不可能的,關(guān)鍵是找到你的路徑。
"這句話四年后被這次提交完全印證了。"
然后他說了一段我覺得是整個采訪中最值得被聽到的話:
"有很多比我能力強(qiáng)的人,沒有想過給開源項(xiàng)目提代碼。他們只想過提issue,讓別人去修,壓根沒打算過自己動手。"
"試一試。無論你的起點(diǎn)在哪里,都可以試一試。"
說完這句話,他的鬧鐘響了。晚上八點(diǎn)半,他該去給實(shí)驗(yàn)室的學(xué)生上課了。
雖然他才是一位16歲的高中生,但已經(jīng)是實(shí)驗(yàn)室的小老師,已經(jīng)在給全世界最有名的開源項(xiàng)目貢獻(xiàn)代碼。
他在學(xué)校的同學(xué)們,至今不知道他做了什么。
在GitHub的Release頁面上,OpenClaw 2026.4.1版本的貢獻(xiàn)者名單里,Luckymingxuan安安靜靜地排在那里。
全球352,000顆Star。5,000個待審核PR,約1,560個貢獻(xiàn)者。
其中一個,是來自中國的16歲高中同學(xué)。
特別聲明:以上內(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.