
以下為編譯。
Dax成長之路:從 Minecraft、創(chuàng)業(yè)失敗到開源世界
主持人: 在聊 OpenCode 之前,我想先從你這個(gè)人開始。你現(xiàn)在在做全球最熱門的 AI 開發(fā)工具之一,但你身上有一種挺少見的氣質(zhì):你并不迷信 AI。那我們先倒回去一點(diǎn),你最早是怎么進(jìn)入技術(shù)行業(yè)的?
Dax: 挺典型的。我小時(shí)候就開始寫程序了,我爸也是軟件工程師,所以入門比很多人容易一些。后來我高中畢業(yè)就開始工作,也創(chuàng)過公司。那時(shí)候我以為自己很懂,回頭看其實(shí)完全不懂。后來公司經(jīng)歷了一次很小規(guī)模的 acqui-hire,我算是正式進(jìn)了科技行業(yè),之后做過咨詢,也創(chuàng)過幾家公司,再后來差不多有六年時(shí)間都在全職做開源。
主持人: 我還看到你很早就在折騰 Minecraft 服務(wù)器和 mod。
Dax: 對。Minecraft 基本人人都知道。當(dāng)時(shí)有個(gè) mod 框架出來,我后來直接參與了那個(gè)框架,也做了很多 mod。我真正感興趣的其實(shí)不是"玩游戲",而是"做沙盒"。我會(huì)開一個(gè)一百來人的服務(wù)器,然后用這些 mod 去搭各種奇怪情境,觀察人在這些環(huán)境里會(huì)怎么行動(dòng)。我覺得這個(gè)特別迷人。那當(dāng)然,背后就需要寫很多 Java。
更重要的是那個(gè)社區(qū)。當(dāng)時(shí)我其實(shí)還是編程新手,大家主要都在 IRC 上交流。里面有一些非常厲害、也非常資深的程序員,但他們不是那種特別有職業(yè)野心的人。他們更像是已經(jīng)處在比較舒服的人生狀態(tài)里,每天可能就工作兩小時(shí),技術(shù)非常好,但沒興趣去卷職場,于是把精力投進(jìn) Minecraft。這讓我在很短時(shí)間里學(xué)到了非常多東西。
主持人: 后來你去了創(chuàng)業(yè)公司,自己創(chuàng)業(yè),也做過早期創(chuàng)業(yè)者。像 Ride Health 那段經(jīng)歷,對你影響很大吧?
Dax: 很大。那是一家交通和醫(yī)療交叉領(lǐng)域的公司,最開始就我和另一位聯(lián)合創(chuàng)始人,后來長到二十人左右。那是我第二次真正意義上創(chuàng)業(yè),走得比之前更遠(yuǎn),但最后基本也算是災(zāi)難收場。不過我是在那兒認(rèn)識(shí)我太太的,她當(dāng)時(shí)是產(chǎn)品負(fù)責(zé)人,我是工程負(fù)責(zé)人。我們共事一年后在一起了。所以如果你問我結(jié)果怎么樣,我會(huì)說:雖然公司不算成功,但這件事比創(chuàng)業(yè)退出還值。
不過那段經(jīng)歷給我的教訓(xùn)很深。大家都很年輕,二十出頭,整個(gè)團(tuán)隊(duì)像是把"年輕創(chuàng)業(yè)團(tuán)隊(duì)"這件事演了個(gè)遍?,F(xiàn)在如果我以后要投公司,我大概率不會(huì)投一堆特別年輕人組成的團(tuán)隊(duì)。因?yàn)槟菚r(shí)的我們,腦子根本還沒完全長好,安全感、自我證明欲、關(guān)系處理方式、沖突反應(yīng),全都會(huì)在創(chuàng)業(yè)這種高壓而親密的環(huán)境里被無限放大?,F(xiàn)在回頭看,我大概到 26 歲左右,才真正覺得自己"穩(wěn)定下來"了。在那之前,我未必應(yīng)該負(fù)責(zé)經(jīng)營一家公司。
主持人: 所以你會(huì)覺得,年輕人創(chuàng)業(yè)成功其實(shí)是例外,不是常態(tài)?
Dax: 我會(huì)這么看。大家當(dāng)然都會(huì)舉那些著名案例,但平均來看,我不覺得那是常態(tài)。創(chuàng)業(yè)太親密、太高壓了,如果一個(gè)人作為"人"本身都還沒有長穩(wěn),很多問題都會(huì)在工作里爆出來,尤其是在那么小、那么密集的團(tuán)隊(duì)里。你后來再回看,會(huì)覺得當(dāng)年很多沖突、很多情緒、很多判斷,其實(shí)都被放大了,完全沒必要那么戲劇化。
主持人: 那在你早期那幾年,科技圈其實(shí)挺崇拜大公司和明星獨(dú)角獸的。你有沒有想過去那些地方?
Dax: 想過。那是 2010 年代前半段到中段,大廠和熱門獨(dú)角獸確實(shí)特別有吸引力,好像所有人都在拼命往那邊走。那時(shí)如果你不往那個(gè)方向去,會(huì)有一種"你在科技行業(yè)里要失敗了"的氣氛。但說實(shí)話,我不是"主動(dòng)沒去",而是我根本沒把自己訓(xùn)練成適合那套系統(tǒng)的人。那些公司有一整套很結(jié)構(gòu)化的面試流程,要刷題、準(zhǔn)備、針對性訓(xùn)練。我覺得自己是個(gè)不錯(cuò)的程序員,也做過幾次類似面試,有些甚至做得還不錯(cuò),但那種高度競爭、長期備考式的路徑,不是我會(huì)自然投入精力去走的。我更喜歡直接做東西,更偏實(shí)踐,也更難把注意力轉(zhuǎn)去別的地方。
主持人: 那你后來是怎么真正轉(zhuǎn)進(jìn)開源的?
Dax: Ride Health 出問題之后,我去了一個(gè)大概 B 輪階段的創(chuàng)業(yè)公司。對當(dāng)時(shí)的我來說,那已經(jīng)是我待過最大的公司了。后來我被放進(jìn)一個(gè) director 的位置,第一次成了純管理者,每天有三四個(gè)小時(shí)會(huì)議,但我還是特別想寫代碼。于是會(huì)議之外的時(shí)間,我就開始搞開源。我自己先寫了一些很爛的小東西,然后碰到了剛上線不久的 SST。那是 Frank 和 Jay 做的項(xiàng)目。我開始給它貢獻(xiàn)代碼,他們當(dāng)時(shí)在 YC 后融資,我還投了點(diǎn)錢。結(jié)果一個(gè)月后我直接加入了團(tuán)隊(duì),他們把那筆錢當(dāng)工資還給我了,但稅還是得我自己交。所以我后來學(xué)到一個(gè)經(jīng)驗(yàn):如果你可能要去一家公司工作,最好別先以投資人身份往里面投錢,否則錢轉(zhuǎn)一圈回來還得白交一筆稅,很不劃算。
主持人: 后來 SST 之外,你們還做了 OpenNext。

我們的目標(biāo)從一開始就很明確:這個(gè)項(xiàng)目最好最終"不需要存在"。它只是因?yàn)?Next.js 團(tuán)隊(duì)天然會(huì)更偏向 Vercel,所以生態(tài)里出現(xiàn)了一個(gè)空檔。我們想把這個(gè)空檔補(bǔ)上,理想情況是未來官方把這件事處理好,那 OpenNext 就不再需要。后來它確實(shí)逐漸走向了這個(gè)方向:Cloudflare、Netlify、微軟、Google 等等也都加入進(jìn)來,為 OpenNext 做適配器,Next.js 團(tuán)隊(duì)后來也有時(shí)間推出官方 adapters API。過去一兩年,這件事慢慢從"對抗"變成了"協(xié)作",OpenNext 的必要性也在慢慢下降。
OpenCode 是怎么誕生的?
主持人: 那 OpenCode 是怎么來的?這其實(shí)是個(gè)非常新的故事,差不多是 2025 年夏天開始的。
Dax: 更早一點(diǎn)。那是 2025 年 2 月左右。當(dāng)時(shí)我們的公司正在全力沖盈利。SST 已經(jīng)有了商業(yè)化路徑,差不多有三四個(gè)月時(shí)間我們一直處在"錢快燒完了,但收入在往上走"的狀態(tài)。到 2 月的時(shí)候,我們只剩下一個(gè)月現(xiàn)金流,但同一個(gè)時(shí)間點(diǎn)我們也剛好實(shí)現(xiàn)了 break even。很奇怪的是,我們整個(gè)團(tuán)隊(duì)當(dāng)時(shí)都很冷靜,好像默認(rèn)"事情會(huì)有解",最后也確實(shí)有。
那給了我們一點(diǎn)空間去想:既然理論上接下來可以做任何事,那我們到底想做什么?我們很早就覺得,這個(gè)十年如果你還在做開發(fā)者工具,就不可能回避 AI。歷史上每一輪浪潮都是這樣:有些東西一出來,表面上會(huì)顯得非?;恼Q,因?yàn)橹灰臣聺摿ψ銐虼?,它就?huì)吸引大量投資,而大多數(shù)投資最后都不合理。所以最容易犯的錯(cuò)誤,是看到一大堆不靠譜的東西,然后得出"整件事都不值得參與"的結(jié)論。但通常真實(shí)情況是:里面有些東西確實(shí)很蠢,可也有極少數(shù)東西非常真實(shí)。如果你徹底缺席,就會(huì)把真正有價(jià)值的那部分也錯(cuò)過。所以我們開始試一些 AI 方向的想法,其中很多甚至都沒有正式發(fā)布,因?yàn)樽龅揭话胛覀兙桶l(fā)現(xiàn)不成立。后來整個(gè)團(tuán)隊(duì)開始用 Claude Code。這是第一個(gè)真正讓我們持續(xù)用下去的 AI 編程工具,它確實(shí)解決了我們工作流里的一些煩人問題。我們在用的時(shí)候有個(gè)瞬間,我突然問自己:為什么不是我們做了這個(gè)?我們本來就應(yīng)該做這種東西。
然后我們開始從"市場定位"而不是"功能細(xì)節(jié)"去看這件事。市場上已經(jīng)有一批 coding agent 了,但不知道為什么,沒有人真正占住"開源"這個(gè)位置。而在開發(fā)者工具世界里,這是一個(gè)極有價(jià)值的位置。數(shù)據(jù)庫、編譯器、基礎(chǔ)設(shè)施、各種開發(fā)工具,長期看過去,開源選項(xiàng)最終往往都會(huì)變成默認(rèn)選項(xiàng)。與此同時(shí),模型供應(yīng)商之間的競爭又極其激烈。Claude 當(dāng)時(shí)很強(qiáng),但你不可能真相信其他投了幾百億美元的玩家會(huì)坐著讓 Anthropic 贏。OpenAI 會(huì)推,開源模型會(huì)推,其他公司也會(huì)推。所以在一個(gè)模型競爭極度劇烈、生態(tài)不斷變化的階段,做一個(gè)中立的、開源的、能接所有模型的產(chǎn)品,是很有戰(zhàn)略價(jià)值的。
主持人: 所以你們一開始不是從"我要做最聰明的 agent"出發(fā),而是從"我要先占住最重要的位置"出發(fā)。
Dax: 差不多就是這個(gè)意思。我們起步時(shí)就三個(gè)人,都是聯(lián)合創(chuàng)始人。后來找了一個(gè)朋友來幫我們一起做早期版本,成了第四個(gè)人。再之后我們又拉來一個(gè)一直很想合作的優(yōu)秀設(shè)計(jì)師,那是上線后的事情了,大概是秋天。團(tuán)隊(duì)其實(shí)很小,但方向一旦想清楚,后面很多動(dòng)作就順了。
從 65 萬到接近 800 萬月活
主持人: 你們上線后增長有多快?
Dax: 非??臁?斓匠隽宋覀冎白鲞^的任何東西。到 2025 年 12 月,我們的月活已經(jīng)到了 65 萬。當(dāng)時(shí)我們覺得這已經(jīng)很驚人了。那時(shí)候秋天我們還在跟別人說,目標(biāo)是"明年年初做到 100 萬月活",所有人都覺得我們瘋了。結(jié)果 2026 年 1 月,我們直接到了 250 萬月活。再往后一個(gè)月是 650 萬,我當(dāng)時(shí)估計(jì)接下來很快會(huì)到接近 800 萬。我們的下一個(gè)目標(biāo)就是 1000 萬。
主持人: 那個(gè)從 65 萬到 250 萬的跳升,發(fā)生了什么?

另一部分,坦白講,Anthropic 幫了我們大忙。他們想禁止用戶在 OpenCode 里使用 Anthropic 的訂閱。這個(gè)決定一下把事情引爆了。我們自己甚至都沒怎么發(fā)言,主要是用戶社區(qū)直接炸了。Anthropic 無意間把我們和他們放進(jìn)了同一個(gè)句子里,這其實(shí)是我們不配的,他們是比我們大得多、成功得多的公司,但就是那一周,這件事突然把我們推到了特別大的關(guān)注中心。
主持人: 你怎么看 Anthropic 這件事本身?
Dax: 我覺得這反映出他們還不太習(xí)慣怎么跟開發(fā)者打交道。你當(dāng)然可以為了業(yè)務(wù)可持續(xù)做你必須做的事,這本身沒問題。但你如果在晚上 9 點(diǎn)突然默默下一個(gè)封禁,沒有預(yù)溝通、沒有分階段 rollout,那就是給自己制造一個(gè)"所有人一起討厭你"的時(shí)刻。你哪怕提前一個(gè)月說清楚,分階段推進(jìn),人們還是會(huì)不高興,但不會(huì)形成那種高度集中的憤怒。
主持人: 你們當(dāng)時(shí)慌嗎?因?yàn)槟菚r(shí) Claude 還是最強(qiáng)的編碼模型。
Dax: 反而不慌。我們其實(shí)早就知道這一天遲早會(huì)來,不知道為什么,真發(fā)生的時(shí)候大家甚至有點(diǎn)興奮。因?yàn)槲覀兒芮宄?,我們所處的輿論圈層?huì)扭曲現(xiàn)實(shí)。尤其在 X 上,好像每個(gè)人都有 200 美元的 Claude Max 訂閱,但那不可能代表真實(shí)世界。那時(shí)我們已經(jīng)有 65 萬月活,不可能這 65 萬人都在花 200 美元一個(gè)月。對大多數(shù)普通人來說,一個(gè)月在任何東西上花 200 美元都不是小事。所以我們知道,被影響的是一部分人,但不會(huì)是全部。
更關(guān)鍵的是,在這件事發(fā)生之前的幾周,我們已經(jīng)在跟幾乎所有其他公司談"官方支持 OpenCode 訂閱接入"。微軟那邊已經(jīng)同意 GitHub Copilot 正式支持 OpenCode;我們還跟一些別的公司也在推進(jìn),只是還沒對外說。唯一還沒真正觸達(dá)的大玩家是 OpenAI。所以那天晚上事情一出,我在 X 上被艾特了一百次,大家都在說"他們封了、他們封了"。我當(dāng)時(shí)就覺得:好了,時(shí)間到了。我立刻去聯(lián)系 OpenAI,說,明天早上所有人醒來,都會(huì)很生 Anthropic 的氣。你們現(xiàn)在有一個(gè)絕佳機(jī)會(huì),只要公開站到相反的位置,宣布正式支持 OpenCode,就能直接拿下一場 PR 勝利。結(jié)果第二天早上,他們就答應(yīng)了。
于是當(dāng)天早上,很多人都在說"Anthropic 一封,OpenCode 完了,歸零了"。我在心里一直笑。我想,你們等到今天結(jié)束再看。然后我們就把集成迅速接上,當(dāng)天結(jié)束前對外宣布:OpenAI 正式支持 OpenCode。
主持人: 所以這并不是偶然撞上的運(yùn)氣,而是你們很熟悉的一種策略。
Dax: 對。往前看 OpenNext,你會(huì)發(fā)現(xiàn)我們一直會(huì)玩一種策略:找到一個(gè)階段性的"壞人",然后把它的所有競爭對手團(tuán)結(jié)起來,借力把某件事往前推。Anthropic 很不幸在那一刻成了這個(gè)角色。于是我們就把行業(yè)里其他玩家都 mobilize 起來,讓他們都來支持 OpenCode、支持更開放的模型接入。對小公司來說,只要你站位站對了,世界就會(huì)不斷給你送來你原本都沒預(yù)料到的機(jī)會(huì)。
如果有一個(gè)足夠中立的中間層,所有那些投了幾百億美元的大公司,都會(huì)出于自己的利益來利用這個(gè)中間層。這就是為什么,處在中間位置是有利的。未來 OpenAI 當(dāng)然也可能變成下一個(gè)"壞人",到時(shí)我們可能又會(huì)去聯(lián)合其他人對抗它。這本來就是競爭應(yīng)有的樣子。
主持人: 但你們也因此被一些人批評,說你們對 Anthropic 太刻薄了。
Dax: 是,會(huì)有人這么說。但別忘了,他們是體量極大的公司,是十億美元級別的大公司。像我們這樣的小公司,想要施加哪怕一點(diǎn)點(diǎn)壓力都很難。這就是現(xiàn)實(shí)里的博弈方式。你可以特別喜歡 Claude Code,完全不打算切走,這沒問題;但你最好仍然支持"別人有權(quán)使用自己想用的工具",這本身是好事。
OpenCode 為什么能跑出來:不是先做最聰明,而是先做最順手
主持人: 回到產(chǎn)品本身。為什么市場明明這么熱,但這個(gè)位置居然空著,讓你們拿到了?
Dax: 我覺得開發(fā)者工具領(lǐng)域最大的結(jié)構(gòu)性優(yōu)勢在于:所有做開發(fā)者工具的人自己都是程序員,而程序員通常都特別不擅長做 B2C 產(chǎn)品。他們沒有意識(shí)到,真正大規(guī)模成功的 devtools,本質(zhì)上是 B2C 產(chǎn)品。你當(dāng)然也可以做自上而下、走企業(yè)采購流程的工具,那也能成。但那些真正從個(gè)體開發(fā)者開始自然擴(kuò)散、最后變成行業(yè)標(biāo)準(zhǔn)的東西,幾乎都是自下而上的。你必須像做消費(fèi)產(chǎn)品一樣思考它。
所以我們特別在意用戶第一次打開 OpenCode 時(shí)的感受。它必須明顯不同,而且更好。為此我們直接從底層自己做了一個(gè)終端渲染框架。Claude Code 和其他很多終端型 coding agent 沒這么干,它們更多是基于 Ink 之類的東西把需求先滿足了。但我們愿意提前投這筆成本,因?yàn)橹灰脩粢簧鲜郑蜁?huì)立刻覺得:這東西是被認(rèn)真做過的。它未必適合所有人,有些人可能覺得它過于強(qiáng)烈、過于"滿",但你至少會(huì)帶著一個(gè)判斷離開:做這個(gè)產(chǎn)品的人是有能力的。
我們還非常重視降低一切摩擦,盡可能讓用戶馬上進(jìn)入"開始 prompt"的狀態(tài)。比如你在一臺(tái)被企業(yè)嚴(yán)格鎖定的筆記本上,能不能裝、能不能用,這些看似不性感的問題我們也在想。說白了,我們最早幾個(gè)月的 harness 其實(shí)不怎么樣,尤其前五個(gè)月。它并不是最聰明的 harness,但它"夠用",而且大多數(shù)用戶一開始根本感知不到差距。等我們先把用戶份額拿下來,再回頭把 harness 慢慢做聰明、做優(yōu)化、做得更好。市場上其他人一開始都在想:"先把 smartest harness 做出來,再贏"。我們的邏輯是反過來的:先把體驗(yàn)和采用做起來,然后再把內(nèi)部能力追上。結(jié)果我們用一個(gè)"中等水平的 harness",先成了用戶最多的那個(gè),之后再繼續(xù)把底層也做好。
主持人: 你們后來也嘗試過 GUI 和桌面端。
Dax: 對。我們做過一個(gè)桌面 App,當(dāng)時(shí)用的是 Tauri。但老實(shí)說,那一步大體上是我們的失誤。我個(gè)人很愛終端,我的工作全在終端里完成。但如果你看到我們的用戶數(shù)字快接近 800 萬,你就會(huì)意識(shí)到:不可能真的有 800 萬人都應(yīng)該在終端里工作。很多用戶在 GUI 里體驗(yàn)會(huì)更好。我們其實(shí)很早就知道這點(diǎn),所以同時(shí)在試 Web App 和桌面 App。方向上我們是對的,問題在于我們沒有足夠嚴(yán)肅地去做,沒有足夠快地推進(jìn),也沒有足夠認(rèn)真地想技術(shù)選型。后來我們決定重新轉(zhuǎn)回 Electron。
主持人: 還有個(gè)有意思的點(diǎn),你們沒有做那種"在 GitHub PR 上自動(dòng)打品牌水印"的增長黑客。很多其他工具都在做。
Dax: 我們一開始其實(shí)有。因?yàn)樽钤?OpenCode 某種程度上有點(diǎn)像 Claude Code 的 clone:它做什么,我們就跟著做什么。所以提交信息里也會(huì)寫"committed with OpenCode"之類。后來越來越多用戶問,能不能關(guān)掉。我想了想,覺得這事太 lame 了。就像賭場到處用小技巧把你困住。我不是說做消費(fèi)產(chǎn)品就不能做增長,但我覺得沒必要走到那種程度。這種增長手段太明顯了,誰都看得出來你為什么這么做。最后我們干脆把它默認(rèn)關(guān)了。
OpenCode 怎么賺錢:控制臺(tái)、推理服務(wù),以及"推理可能非常賺錢"
主持人: 說到這里,還是得問個(gè)現(xiàn)實(shí)問題:你們終究是一家商業(yè)公司。OpenCode 的商業(yè)模式到底是什么?
Dax: 現(xiàn)在主要有兩條線。第一條最初其實(shí)只是為了把新手引導(dǎo)做順。OpenCode剛上線時(shí),用戶得自己去接各個(gè)大模型廠商的賬號,這件事非常別扭。而且那時(shí)你就算注冊了賬號,也不一定能拿到足夠的使用配額去高強(qiáng)度用OpenCode。所以我們想,至少得做一個(gè)統(tǒng)一的推理服務(wù),讓用戶注冊一次就能獲得足夠額度,還能接多個(gè)模型。于是我們做了OpenCode Zen。
一開始它只是一個(gè)新手引導(dǎo)輔助層,結(jié)果增長得非???。再加上開源模型越來越流行,我們也發(fā)現(xiàn):把開源模型真正托管好,遠(yuǎn)比大家想得難。所以Zen后來慢慢變成一個(gè)聚合最優(yōu)模型推理服務(wù)的地方。前沿模型當(dāng)然重要,但開源模型怎么用最低成本、最穩(wěn)定、最好地托管,同樣很關(guān)鍵。這個(gè)業(yè)務(wù)長得非??臁N覀兦皫讉€(gè)月對外說過,它在上線五六個(gè)月左右時(shí),已經(jīng)跑到五千萬美元的年化收入了。這里面的利潤率也可能相當(dāng)不錯(cuò),尤其是一些開源模型,如果托管方式合理,利潤空間會(huì)很好。
第二條業(yè)務(wù)就非常無聊,但企業(yè)一定需要。假如一家有一千名工程師的公司要用OpenCode,你不可能讓每個(gè)人自己下載安裝,然后各自填一個(gè)API key。企業(yè)一定需要一個(gè)控制面:有哪些供應(yīng)商、什么權(quán)限、預(yù)算控制、使用配額、審計(jì)、策略,這些都需要統(tǒng)一管理。所以我們做了這樣一個(gè)產(chǎn)品。它也是開源的,但大多數(shù)公司會(huì)直接買我們的托管版。未來它會(huì)更公開一些,現(xiàn)在主要還是企業(yè)部署形態(tài)。
還有一件事也很關(guān)鍵:企業(yè)現(xiàn)在終于開始認(rèn)真看自己在大模型上花了多少錢,然后問一句,"我們到底在干嘛?我們真的因此做成更多事了嗎?"這對我們是個(gè)很好的時(shí)機(jī),因?yàn)殚_源模型已經(jīng)變得非常有競爭力,而且便宜十倍左右。企業(yè)買我們的控制面以后,往往也會(huì)順手接入我們的推理服務(wù),開始混用更便宜的開源模型。如果未來推理成了我們更核心的收入來源,我們甚至可能不再向控制面本身收費(fèi),而是主要靠推理收費(fèi)。
主持人: 你前陣子還說過一個(gè)很有爭議的觀點(diǎn):推理其實(shí)是一個(gè)非常賺錢的業(yè)務(wù)。對很多軟件工程師來說,這聽起來有點(diǎn)反直覺。
Dax: 因?yàn)榇蠹視?huì)把訓(xùn)練成本、研發(fā)成本和推理業(yè)務(wù)混在一起看。如果你單獨(dú)看"純推理"這一段,理論上的成本底線其實(shí)就是電費(fèi)。當(dāng)然前面還有買 GPU 的資本支出,也有運(yùn)維團(tuán)隊(duì)、基礎(chǔ)設(shè)施等等,但一旦硬件已經(jīng)在那里了,生成一個(gè) token 的最低成本,接近于給這些機(jī)器供電的成本。我們自己也在大規(guī)模租 GPU 跑模型,而且我們甚至還沒完全直達(dá)最底層,我們中間也還用了一層供應(yīng)商??杉幢闳绱耍行┠P臀覀兛匆谎蹣?biāo)價(jià),再對比一下我們自己的成本,中間能有接近80%的利潤空間。
另一個(gè)被很多人忽略的事實(shí)是:價(jià)格其實(shí)漲了。表面上大家覺得模型越來越便宜,但從用戶實(shí)際使用結(jié)構(gòu)看,過去大家默認(rèn)用的是 Sonnet,因?yàn)?Opus 太貴;后來他們把 Opus 調(diào)便宜了一些,結(jié)果大家開始默認(rèn)用 Opus,但 Opus 即使降價(jià)了,還是比 Sonnet 貴得多。所以從整個(gè)市場的消費(fèi)組合來看,價(jià)格其實(shí)是往上走的,而托管這些模型的基礎(chǔ)成本并沒有同步上漲。如果 Anthropic 或 OpenAI 本身能拿到規(guī)模巨大的 GPU 合同,我一點(diǎn)也不會(huì)驚訝他們在某些階段看到 90% 左右的推理毛利。當(dāng)然這未必是長期可防守的利潤率,但在當(dāng)前這個(gè)階段,并不夸張。這有點(diǎn)像早年的云計(jì)算。大家都說云是個(gè)血海市場、到處虧錢,但真正做過的人都知道,云業(yè)務(wù)可以非常賺錢。只不過那些公司沒有任何動(dòng)力去主動(dòng)糾正外界的悲觀敘事。AI 也是一樣。訓(xùn)練當(dāng)然燒錢,研發(fā)也貴得嚇人,但長遠(yuǎn)看,推理作為一門生意本來就是成立的。
從創(chuàng)業(yè)公司到大廠,整個(gè)行業(yè)都在搶算力
主持人: 但你又說過,哪怕像你們這樣的公司,也已經(jīng)被 GPU 卡住了。
Dax: 因?yàn)檎麄€(gè) GPU 供給鏈現(xiàn)在全都繃得很緊。從 GPU 生產(chǎn)、配套硬件、供應(yīng)鏈,到相關(guān)勞動(dòng)力,整個(gè)鏈條都很緊。推理需求還在瘋狂增長,我甚至懷疑它不是線性增長,而是接近指數(shù)增長。但 GPU 的產(chǎn)能擴(kuò)張不是指數(shù)級的,那更像是線性過程。當(dāng)這兩條線相交時(shí),就一定會(huì)出現(xiàn)緊縮。對我們來說,想拿到用于推理的 GPU 容量,往往要提前預(yù)留、提前支付。因?yàn)榇蠹叶荚诙冢腥硕寄J(rèn)這種緊缺還會(huì)繼續(xù)?,F(xiàn)在想拿到穩(wěn)定的推理容量,真的很難。而且外界看創(chuàng)業(yè)公司融了 20 億美元,會(huì)覺得這已經(jīng)是天文數(shù)字了。但大廠一年在 AI 上的資本開支是幾百億、上百億美元級別。Amazon、Meta、Google、Microsoft 這種級別的玩家,幾乎是在把整個(gè)供給側(cè)都吸走。你如果是供應(yīng)鏈上的一家公司,它根本不想跟你這種小公司聊,它只想先把和大廠的訂單處理完。所以現(xiàn)在確實(shí)非常緊。不過按我的經(jīng)驗(yàn),任何行業(yè)里只要出現(xiàn)短缺,通常接下來都會(huì)進(jìn)入一段激烈投資,然后走向過剩。這次也許會(huì)不同,但歷史上更常見的路徑是:先緊,再過度供給。只是至少在今天,AI 這條線還是很緊的。
AI 讓工程團(tuán)隊(duì)自動(dòng)更快了嗎?Dax 的答案是:未必,很多時(shí)候只是"更輕松地完成同樣的事"
主持人: 你有條很有名的觀點(diǎn),大意是:很多公司以為自己本來就處在高效狀態(tài),只是被"寫代碼速度"卡住了,所以一旦有 AI 就會(huì)飛起來。但現(xiàn)實(shí)不是這樣。
Dax: 對。我想說的是,軟件行業(yè)太大了。全世界幾乎任何公司都雇軟件工程師。大多數(shù)環(huán)境其實(shí)并不是特別激動(dòng)人心、特別有使命感的環(huán)境。很多人就是來上班、干活、回家陪孩子,過正常生活。你給他一個(gè)按鈕,讓他可以更快做完工作,最自然的結(jié)果不是"他會(huì)做十倍更多工作",而是"他會(huì)瘋狂按這個(gè)按鈕,然后做差不多的工作量,把省下來的精力和時(shí)間留給自己"。這完全合理。如果你沒有很強(qiáng)的動(dòng)機(jī)讓自己持續(xù)超額投入,那你不會(huì)自動(dòng)把這些省下來的產(chǎn)能全部上交給公司。
當(dāng)然,不同公司差異很大。有些團(tuán)隊(duì)本來就極有動(dòng)力,激勵(lì)也對,大家愿意沖。但大多數(shù)地方不是這樣。問題在于,在一個(gè)并不高激勵(lì)的組織里,通??倳?huì)有少數(shù)幾個(gè)"非理性地在乎質(zhì)量"的人。這些人以前會(huì)是質(zhì)量守門員,會(huì)盯代碼審查,會(huì)想辦法把事情做好?,F(xiàn)在 AI 一上來,其他人都在更快地產(chǎn)出 PR,這些真正還在乎的人就會(huì)被"垃圾 PR 洪流"淹沒。我們團(tuán)隊(duì)里就有人從這種公司過來,他們說自己之前就是那個(gè)還在乎的人,結(jié)果每天淹死在大量低質(zhì)量變更里,最后精疲力盡,只能離開。
主持人: 那企業(yè)該怎么重新設(shè)計(jì)激勵(lì)、薪酬、組織方式?
Dax: 對創(chuàng)業(yè)公司來說相對簡單一點(diǎn)。像我們這種團(tuán)隊(duì),本來就在一個(gè)很刺激的市場里,來的人大多競爭心強(qiáng),也知道做成了之后股權(quán)會(huì)很有價(jià)值。我們一直也愿意給很高的薪資。甚至在 AI 之前我就一直覺得,很多創(chuàng)業(yè)公司招兩個(gè)人,各發(fā)一個(gè)"還不錯(cuò)"的工資,其實(shí)不如直接把預(yù)算合成一份,高薪招一個(gè)能真正改變公司方向的人。我們不需要招一千個(gè)人,我們需要的是二十個(gè)真正厲害的人,所以高薪一直有用。但對更大規(guī)模的公司,我沒有什么特別好的答案。公司一旦大到某個(gè)程度,對一個(gè)人來說,額外多做很多事通常就沒有足夠強(qiáng)的個(gè)人理由了。所以我不覺得這個(gè)問題能靠一句"有了 AI 就好了"解決。
主持人: 那 AI 至少讓你們在執(zhí)行層更快了嗎?
Dax: 瓶頸還是那個(gè)瓶頸:你還是得先想清楚該做什么。你完全可能花一年時(shí)間去搞清楚"正確的方向到底是什么",等方向?qū)α?,?gòu)建本身也許確實(shí)變快了。但如果你問我直觀感受,我會(huì)說:以前我大概 95% 的精力花在想該做什么,5% 花在把它做出來;現(xiàn)在我大概 96% 花在想該做什么,4% 花在做。也許這說明執(zhí)行效率提高了 20%,但你的日常體感不會(huì)是"世界輕松了十倍"。它還是一樣難。
主持人: 成本這件事現(xiàn)在是不是也開始壓過來了?比如 CFO 會(huì)問:為什么每個(gè)工程師每月還要多花 1000 到 2000 美元?
Dax: 是。每項(xiàng)新技術(shù)都會(huì)先經(jīng)歷一個(gè)"炫耀期"。現(xiàn)在很多公司都想讓外界覺得自己特別未來、特別先進(jìn),所以會(huì)炫耀"我們每個(gè)工程師一個(gè)月花 1 萬美元跑 AI,這絕對值"。這種敘事里面有很多表演成分,它會(huì)過去的。然后會(huì)出現(xiàn)真正的財(cái)務(wù)問題:大公司動(dòng)不動(dòng)幾千名工程師,你真讓每人每月多花 1000 美元,預(yù)算結(jié)構(gòu)都會(huì)被改寫。如果你又無法很明確地證明產(chǎn)出顯著增加,那這件事不會(huì)長期成立。還有一種很微妙但很真實(shí)的情況:也許所有這些 AI coding 工具的凈結(jié)果,只是"同樣的工作量被完成了,但工程師們更開心,因?yàn)楣ぷ鞲p松了"。對很多公司來說,這不夠。他們會(huì)說,那你還是回去自己敲吧。
主持人: 但另一邊,很多 CTO 也會(huì)說,不給好工具,最強(qiáng)的人會(huì)走。
Dax: 這點(diǎn)也是真的。尤其在高端人才市場上,如果一個(gè)非常優(yōu)秀的人本來就有無限機(jī)會(huì),你讓他天天被 Jira 折磨、不給好工具,他真的會(huì)走。我知道有人就是這么走的。所以頂層市場的情況和大盤市場又不是一回事。只是我們現(xiàn)在看到了整個(gè)世界的廣闊:絕大多數(shù)公司根本不在"最前沿工具大戰(zhàn)"的那一層。很多公司最后的現(xiàn)實(shí)就是:給你一個(gè) Copilot,通過 OpenCode 接一下,額度就這些,用完拉倒。并不會(huì)因?yàn)檫@樣就立刻被時(shí)代拋棄。
Dax 給團(tuán)隊(duì)發(fā)的那封備忘錄:別再堆功能、別再靠 agent 悄悄埋雷
主持人: 你之前發(fā)給團(tuán)隊(duì)那封 memo 很多人都在轉(zhuǎn)。你在里面說了三件事:我們在發(fā)一些不值得發(fā)的功能;在做功能時(shí)原始設(shè)計(jì)有問題,就被迫往上疊補(bǔ)丁,但 LLM 會(huì)接著把這些補(bǔ)丁繼續(xù)往下滾;以及我們需要花更多時(shí)間清理代碼。你當(dāng)時(shí)為什么會(huì)寫這封內(nèi)部信?
Dax:因?yàn)檫@些問題一直都有,只是 LLM 把它們放大了。第一件事,功能太容易發(fā)了。以前用戶提一個(gè)問題、競品上一個(gè)新功能、或者我們自己想到一個(gè)點(diǎn)子,你還會(huì)因?yàn)殚_發(fā)成本猶豫一下?,F(xiàn)在很容易直接"讓Agent做一個(gè)"。用戶要功能,一句話;競品有個(gè)功能,一句話。最后你以為自己堆出了一千個(gè)功能就等于做出了好產(chǎn)品。其實(shí)你做出來的是一個(gè)怪物,一個(gè)弗蘭肯斯坦。任何功能一旦上線,就幾乎要永久支持,以后所有新功能都要跟它交互。所以你必須比以前更克制。不是因?yàn)槟馨l(fā)十倍東西,就代表我們突然有了十倍值得發(fā)的好點(diǎn)子。
第二個(gè)問題更大:打補(bǔ)丁。以前你給系統(tǒng)加新能力,如果系統(tǒng)結(jié)構(gòu)不太支持它,你會(huì)在兩個(gè)選項(xiàng)里選:要么從第一性原理出發(fā),把系統(tǒng)重構(gòu)到能優(yōu)雅支撐這個(gè)能力;要么臨時(shí)吸收一個(gè)補(bǔ)丁。這個(gè)判斷一直存在,你會(huì)掂量這個(gè)補(bǔ)丁多難看、這個(gè)功能對業(yè)務(wù)多重要,然后做權(quán)衡。問題是現(xiàn)在Agent會(huì)非常輕松地幫你把補(bǔ)丁打上去,而且后續(xù)它也會(huì)繼續(xù)幫你"對付"這些補(bǔ)丁帶來的問題。于是你的判斷被扭曲了。太容易說"先臨時(shí)修一下"。很多本該停下來重新想系統(tǒng)設(shè)計(jì)、重新整理架構(gòu)的地方,現(xiàn)在都被我們直接一個(gè)補(bǔ)丁糊過去了。
主持人: 你后來提了一個(gè)特別好的說法:以前工程師打補(bǔ)丁,會(huì)有一種"刺痛感"。你知道自己在做壞事,你心里會(huì)不舒服。這種感覺其實(shí)在幫你校正判斷。但 agent 把這個(gè)感覺拿走了。
Dax: 對,這個(gè)形容特別準(zhǔn)確。以前你自己打補(bǔ)丁,你會(huì)感覺不對,會(huì)隱約發(fā)毛。第二次、第三次再寫的時(shí)候,這種感覺會(huì)疊加。你知道你在給未來埋雷。現(xiàn)在因?yàn)槭?另一個(gè)東西"在幫你處理,它把那個(gè)不舒服的感覺弱化了。問題沒有消失,地雷也還在那里,只是你當(dāng)下沒那么痛。所以你的判斷失真了。人生很多事都靠正確的反饋回路。你感受不到痛,就會(huì)一直做錯(cuò)。
主持人: 第三個(gè)點(diǎn)是"清理"??蓜?chuàng)業(yè)公司最缺的就是時(shí)間。清理代碼看起來又不會(huì)直接帶來新增用戶和收入。
Dax: 這確實(shí)很難。我們每天一睜眼,就是一千個(gè)人在喊你該做 A、做 B、做 C;每天都有競品出來;每天都像被海量刺激拖著跑。如果我們完全被這些力量牽著走,我不覺得最后會(huì)去到任何好地方。但有趣的是,清理這件事現(xiàn)在反而比以前容易得多。以前你發(fā)現(xiàn)一種更好的模式,往往只是從此以后新代碼按新模式寫,舊代碼太多,沒人愿意回頭收拾?,F(xiàn)在不是了?,F(xiàn)在你可以讓 agent 去把舊代碼一并遷過去。你可以把全代碼庫里的舊模式一起替換掉。技術(shù)債從來沒有像今天這樣容易被系統(tǒng)性清掃過。我當(dāng)然知道這不會(huì)直接變成明天的收入。但我想建的是一個(gè)五年后我們還愿意待著的地方。世界上有很多公司都很成功,可如果讓你隨便選一家去工作,你大概不會(huì)選其中 99%。我不想把公司做成那 99% 里的一個(gè)。我想確保這里五年后仍然是個(gè)我們每天工作起來感覺不錯(cuò)的地方,不是那種誰都不想加入、大家天天只是在和遺留爛攤子搏斗的地方。
主持人: 你在 memo 里還有一句很重的話:最糟糕的是,我甚至不覺得這些犧牲真的換來了更快的速度。我覺得我們只是在"正常速度"前進(jìn),卻誤以為自己飛起來了。
Dax: 是的。我們"感覺"自己在高速奔跑,但我回頭看,真的未必。我們也沒比競品快多少,至少看不出來明顯更快。所以如果你真想討論生產(chǎn)力,最大的風(fēng)險(xiǎn)其實(shí)是:你特別容易把自己騙了。你以為你產(chǎn)能爆炸,結(jié)果坐下來認(rèn)真看,往往沒那么夸張。對我來說,這意味著要重新相信"慢一點(diǎn),把地基打牢,再?zèng)_刺"的價(jià)值。
反 hype、講品味、重反饋,才是 OpenCode 真正的工程文化
主持人: 你還有一個(gè)特點(diǎn),就是特別愛對各種 AI 預(yù)測"潑冷水"。比如那條很火的話,說"24 到 29 歲的工程師很快會(huì)成為科技行業(yè)最有價(jià)值的人,因?yàn)樗麄兺瑫r(shí)擁有前 AI 時(shí)代原則和后 AI 時(shí)代速度"。你公開說這是胡扯。
Dax: 因?yàn)槲艺娴氖軌蛄?。每天醒來打開 feed,就是各種預(yù)測:未來一定怎樣、哪類人一定贏、哪類公司一定死。大家都在憑空編。那條尤其好笑,因?yàn)樗举|(zhì)上就是"像我這樣的人擁有所有優(yōu)勢,不像我的人擁有所有劣勢"。你一眼就能看出來,說這話的人自己就在 24 到 29 歲這個(gè)區(qū)間。我覺得這些預(yù)測背后的心理結(jié)構(gòu)非常簡單:我們都處在一個(gè)劇烈變化的時(shí)刻,每個(gè)人都在焦慮自己會(huì)在這個(gè)變化里處于什么位置。最自然的心理防御機(jī)制,就是特別自信地預(yù)言一個(gè)"自己會(huì)贏"的未來。你幾乎可以把所有熱門預(yù)測都拆回這一點(diǎn):我的公司會(huì)贏,別人的公司會(huì)輸;我的工作不會(huì)被 AI 替代,別人的工作會(huì)。大家會(huì)給自己一套看似理性的解釋,但更底層的事實(shí)是:大家都在害怕。
我也會(huì)緊張,也會(huì)擔(dān)心。只是我越來越不相信那些宏大而確定的判斷。歷史上真正發(fā)生的事情,幾乎從來不是當(dāng)下看起來最顯然的那個(gè)版本。真正落地的結(jié)果往往非常反直覺,只不過事后回頭看,又會(huì)覺得"好像一直都很合理"。所以我寧愿只想明天和后天:今天該做什么,明天該做什么。一年前我都沒想到自己今天會(huì)在做這個(gè),一年后我也不知道我會(huì)在做什么。
主持人: 回到產(chǎn)品和工程方法論。你覺得自己從早年到現(xiàn)在,有什么原則是沒變的?
Dax: 一個(gè)最樸素的原則是:你的產(chǎn)品里很可能只有一個(gè)真正好的主意。那你最重要的工作,就是讓用戶盡快體驗(yàn)到這個(gè)主意。聽起來很簡單,可你隨便去試市面上很多產(chǎn)品,就會(huì)發(fā)現(xiàn)從"聽說這個(gè)產(chǎn)品"到"感受到價(jià)值"之間,開發(fā)者會(huì)不知不覺塞進(jìn)一大堆多余步驟。我自己會(huì)每隔兩周跑一次"第一次使用體驗(yàn)"測試:起一個(gè)新的 Docker 容器,重新跑一遍 OpenCode,從零開始安裝和使用。每次都能抓出我們不小心加進(jìn)去的摩擦。對我來說,產(chǎn)品不是"用戶有一個(gè)問題,你立刻發(fā)一個(gè)對應(yīng)功能"。真正的產(chǎn)品工作,是把大量問題吸收進(jìn)來,然后找到一種解決方案,能同時(shí)解決五十個(gè)問題。這很難,靠經(jīng)驗(yàn)、靠思考、靠和用戶聊天、靠理解團(tuán)隊(duì)、靠理解代碼庫。AI 到目前為止,在這件事上沒有幫到我哪怕一點(diǎn)點(diǎn)。
主持人: 那你怎么提升這種"產(chǎn)品 sense"或者"taste"?
我們現(xiàn)在二十多人,最近三個(gè)月長得很快,所以也處在一個(gè)很煩的階段:人數(shù)比以前多了,但速度反而是最慢的時(shí)候,因?yàn)樗腥诉€在磨合、還在上手。我們是開源公司,代碼全是公開的,所以很多事情天然就是在 public 里做。我們內(nèi)部大概把新東西分成兩個(gè)階段:第一階段是"把一個(gè)東西從零推上山",這很痛苦,因?yàn)楹芏嗍虑槎歼€沒存在;第二階段是"它雖然還沒做完,但大部分關(guān)鍵問題已經(jīng)清楚了",我們通常會(huì)把這個(gè)點(diǎn)定義成"至少可以 demo 給別人看"的里程碑。我們會(huì)拼命把事情盡快推到這個(gè)點(diǎn)。一旦到了這一步,因?yàn)橛脩袈曇舴浅4螅麄儠?huì)很明確地告訴你后面該做什么、哪里難用、哪還缺一塊。于是工程師會(huì)自己拿 GitHub issue、拿 X 上的回復(fù),自己做后續(xù)路線,不會(huì)有一個(gè)中間層來替他們過濾總結(jié)。
我們作為創(chuàng)始人,盡量讓團(tuán)隊(duì)理解整個(gè)市場、競品、位置、為什么要做這個(gè)。只要上下文給足,大家會(huì)自然做出還不錯(cuò)的優(yōu)先級判斷。我們很看重動(dòng)機(jī),因?yàn)檫@是個(gè)長游戲。如果是長游戲,最重要的策略就是:怎樣讓自己盡可能長時(shí)間待在牌桌上。唯一可持續(xù)的方法,就是每天做讓自己興奮的事。所以我們經(jīng)常讓團(tuán)隊(duì)直接去抓他們真正覺得重要、真正興奮的問題。有時(shí)候我會(huì)明確反對某個(gè)方向,結(jié)果最后證明是團(tuán)隊(duì)對、我錯(cuò),這反而讓我很開心。
主持人: 我們還沒正式聊"品味"?,F(xiàn)在很多人說,AI 很難替代的一件事,就是 taste。
Dax: 我覺得"taste 很重要"當(dāng)然是對的,但問題是:你真的信嗎?很多好觀點(diǎn)都很簡單,所以人人會(huì)重復(fù)它??珊唵尾淮砣菀综`行。你說自己相信品味、相信質(zhì)量,那你真的愿意為此做那些"非理性"的事嗎?因?yàn)楹芏鄠ゴ蟮漠a(chǎn)品,少做 50% 的精細(xì)處理,可能在短期商業(yè)結(jié)果上都看不出太大差異??赡欠N對質(zhì)量的縱容,會(huì)像感染一樣慢慢擴(kuò)散:你在一個(gè)地方開始偷懶,最后會(huì)在所有地方偷懶?,F(xiàn)在空氣里有一種非常強(qiáng)的聲音,覺得代碼不必好、產(chǎn)品不必好、什么都不必好,只要商業(yè)上能贏就行。這個(gè)念頭一旦真的進(jìn)了你腦子,你就做不出好產(chǎn)品了,因?yàn)槟愀静辉傩胚@件事。
我很欣賞的人里,Mitchell Hashimoto 一定算一個(gè)。他們那套公司路徑和我們理想中的方向很像:開源、被廣泛采用、最終成為默認(rèn)。Terraform 就是最典型的例子。他后來做 Ghostty,我也非常喜歡,里面很多對架構(gòu)、細(xì)節(jié)、產(chǎn)品感受的處理,真的都能用得出來。他有個(gè)觀點(diǎn)我非常認(rèn)同:做產(chǎn)品不是在往里面塞 feature,而是在思考每一個(gè)新 feature 會(huì)怎樣和舊 feature 發(fā)生交互。那才是產(chǎn)品工作的本質(zhì)。
而且我現(xiàn)在越來越強(qiáng)烈地覺得,AI 時(shí)代產(chǎn)品"腐爛"得比以前快得多。大公司產(chǎn)品腐得更快,創(chuàng)業(yè)公司產(chǎn)品也一樣?,F(xiàn)在一個(gè)產(chǎn)品如果已經(jīng)做了一年,可能都已經(jīng)有點(diǎn)開始爛了。也正因?yàn)槿绱?,質(zhì)量反而可能變成更強(qiáng)的區(qū)分點(diǎn)。但質(zhì)量不是你嘴上說一句"我們重視質(zhì)量"就會(huì)出現(xiàn)的,它必須體現(xiàn)在公司每一個(gè)層面,而且很多時(shí)候都來自一些看似不理性的決定。比如我們當(dāng)初自己做終端框架,按教科書講這是最不該做的事,所有人都告訴你"不要重復(fù)造輪子"??晌覀冎雷约合胍捏w驗(yàn),知道 NeoVim 這類工具把終端體驗(yàn)做到了什么程度。既然知道邊界在哪里,我們就不愿意交出一個(gè)遠(yuǎn)低于那個(gè)水準(zhǔn)的東西。早期很多用戶從 Claude Code 轉(zhuǎn)來,第一感受就是:OpenCode 的終端體驗(yàn)更順、更穩(wěn)、更少閃爍。這個(gè)差異,某種意義上就是靠那些"看似不理性"的決定換來的。
主持人: 最后聊聊你自己。你的工作環(huán)境是什么樣?
Dax: 我現(xiàn)在用的是 Framework 桌面機(jī)那套東西,跑 Arch Linux,接一個(gè) 5K 顯示器。麥克風(fēng)是 SM7B,相機(jī)直接用 iPhone。物理機(jī)器只是入口,我所有真正的工作都在遠(yuǎn)程機(jī)器上做,那臺(tái)更強(qiáng),會(huì)開很多終端會(huì)話,每個(gè)項(xiàng)目一個(gè)。編輯器是 NeoVim,通常左邊 NeoVim,右邊 OpenCode,兩個(gè)并排。我基本就在這兩邊來回切。
主持人: 那你怎么看 AI 時(shí)代工程領(lǐng)導(dǎo)者的角色變化?
Dax: 現(xiàn)在大家都在問:如果工程師不再主要自己寫代碼,那工程師到底做什么?很多人說,工程師的職責(zé)變成了"把系統(tǒng)弄到足夠安全,讓別人能安全發(fā)代碼"。比如測試、guardrail、約定、pattern、約束,讓一個(gè)人或一個(gè) agent 改代碼時(shí),不至于把系統(tǒng)炸掉。我覺得這話有道理,但某種程度上它也一點(diǎn)都不新鮮。我們一直都在試圖解決這個(gè)問題:怎么讓一個(gè)沒那么成熟的人也能相對安全地發(fā)代碼?怎么讓代碼庫的結(jié)構(gòu)更清楚、測試更可靠、約定更明確?以前是為了初級工程師,現(xiàn)在只不過多了一群 24/7 工作的"傻子"——也就是 coding agents。
所以一些老東西反而會(huì)回來。我們一直都比較相信領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),只是以前做得比較輕。現(xiàn)在我們反而開始做得更重一些,因?yàn)槟切┛瓷先ズ?企業(yè)味"、很啰嗦的模式,今天開始重新有用了。過去大家討厭它們,是因?yàn)樗鼈兒芊爆崱⒋蜃趾芾?;但現(xiàn)在不是人手打了,所以它們的缺點(diǎn)被弱化,優(yōu)點(diǎn)——可靠、模塊化、安全、邊界清楚——被放大了。我甚至覺得一些老派設(shè)計(jì)模式都可能回潮。以前高手嫌它們像訓(xùn)練輪,不需要;現(xiàn)在 agent 沒有訓(xùn)練輪,那你就得重新把訓(xùn)練輪裝回去。
主持人: 那你給更資深工程師的建議是什么?怎么在這個(gè)時(shí)代繼續(xù)保持競爭力?
Dax: 我不太敢輕易給建議,因?yàn)槲覀冞@個(gè)公司本來就很奇怪:創(chuàng)業(yè)公司、開源公司、所處市場也很特殊,很多經(jīng)驗(yàn)未必能普適。但如果一定要說,我會(huì)說一件我在 AI 之前就一直相信的事:軟件工程能力本身當(dāng)然是一種可遷移技能,你完全可以只做"優(yōu)秀的軟件工程師",這就已經(jīng)能有很好的職業(yè)生涯了。但如果你同時(shí)還成為某個(gè)行業(yè)的專家,這個(gè)組合會(huì)非常強(qiáng)。
比如你去做農(nóng)業(yè)軟件。如果你真的懂農(nóng)業(yè),又是個(gè)不錯(cuò)的軟件工程師,那你大概已經(jīng)是全世界前十檔的稀缺組合了,整個(gè)行業(yè)都會(huì)想要你。最棒的是,軟件工程師和其他職業(yè)不同,你不用在 22 歲就決定自己一輩子都在某個(gè)行業(yè)。你可以在醫(yī)療做十年,再轉(zhuǎn)去農(nóng)業(yè),再轉(zhuǎn)去別的領(lǐng)域。每待一年,你對那個(gè)行業(yè)的理解就可能超過 99% 的人。工程師最大的優(yōu)勢之一,就是你能進(jìn)入世界上幾乎任何行業(yè),并且把那一套業(yè)務(wù)真正學(xué)明白。問題只是,很多人太容易把自己變成純粹接 ticket 的人——"加一個(gè) UI、改一個(gè)接口",然后從不去理解自己身處的行業(yè)。可那恰恰是你最值得抓住的機(jī)會(huì)。
主持人: 最后一個(gè)輕松點(diǎn)的問題。有沒有什么書推薦?
Dax: 好笑的是,我?guī)缀醪蛔x書。我太太很愛讀,她讀完以后會(huì)把里面最好的想法告訴我,然后我就拿去說得像是自己的想法一樣。真要說的話,我早些年有一段比較認(rèn)真讀書的時(shí)期。Nassim Taleb 的一些東西對我影響挺大,比如《Skin in the Game》《Black Swan》。這些推薦其實(shí)很老派,也許一本書里真正重要的就那么一兩個(gè)觀點(diǎn),但那幾個(gè)觀點(diǎn)又確實(shí)很根本。我尤其著迷的一類概念,是"涌現(xiàn)"和"自下而上系統(tǒng)"。世界上很多偉大的東西,并不是靠一個(gè)自上而下的總設(shè)計(jì)師規(guī)劃出來的,而是很多小個(gè)體在局部互動(dòng)中慢慢長出來的。不管是穩(wěn)健軟件、城市街區(qū)、還是生物抵抗疾病的能力,你都能看到這種 bottom-up 的力量。我現(xiàn)在看很多事,都會(huì)下意識(shí)用這個(gè)框架去看。
這場對話到最后,其實(shí)留下了一個(gè)比"OpenCode 為什么增長這么快"更有價(jià)值的問題:當(dāng) AI 讓生成代碼這件事越來越廉價(jià)時(shí),真正稀缺的到底是什么?Dax 給出的答案很樸素——不是更快敲代碼,而是判斷什么值得做、什么不該做;不是盲目加功能,而是守住產(chǎn)品整體性;不是把 hack 推給 agent,而是保住工程系統(tǒng)的反饋回路;不是沉迷于"未來一定怎樣"的口號,而是在不確定里繼續(xù)做對眼前的事。
如果說 OpenCode 的爆發(fā)說明了 AI 開發(fā)工具的時(shí)代確實(shí)已經(jīng)到來,那么 Dax 的這場訪談提醒我們的則是:真正決定一家產(chǎn)品公司能不能活得長、活得好、活得像樣的,依然是那些看上去"老派"的東西——節(jié)制、質(zhì)量、品味、上下文、反饋,以及對系統(tǒng)后果的敏感。