軟體行業的 AGI 如此接近:從 ScreenKite 如何從 6 個月內做到比 Screen Studio 更快更好講起
軟體行業的 AGI 如此接近:從 ScreenKite 如何從 6 個月內做到比 Screen Studio 更快更好講起
對軟體工程來說,我認為 AGI 的時代已經到來,起碼對於軟體工程師來說,他們已經完全能夠構建任何一個產品,從零到一。我這裡給大家介紹一個我的案例,我一個人大概花了半年多一點的時間把它從零構建成了和 Screen Studio 這類產品一樣(甚至更好)的產品,並且 4K 影片匯出的速度快 3 倍。
從短短几個月構建 ScreenKite 的故事講起。中間大概經歷了幾個月(大概12月到3月)的緩慢迭代期,比如說在旅行與工作並沒有時間,但是由於 ScreenKite 的開發過程,讓我看到了 AGI 時代的到來,我認為傳統的軟體工程師的職業已經徹底結束,所以我決定徹底離開我的工作。靜下心來想想未來應該怎麼做。
為什麼想構建 ScreenKite 呢?因為我去年的八月份和朋友一起開了一個 AI 的社群,然後我經常需要錄屏講課,那時候有購買 Screen Studio,但 Screen Studio 匯出影片實在是太慢了,尤其是匯出 4K 60幀的影片,遠遠比要錄製和剪輯時間花的要長,所以那時候的瓶頸是匯出。我在想能不能構建一個純粹 native 的 macOS 應用去做這件事呢?所以我就開始用當時的 Claude Code 開始構建了,那時候的模型還是 Opus 4.0 大概是。
另外一個想象就是,那時候我們已經感覺到 AI 可以輔助於部分的影片剪輯了。無論是 CapCut 一直到今天還是其他的軟體的話,都沒有一個非常好的 AI 剪輯功能。尤其是我自己是用 Codex 和 Claude Code,所以我也想構建一個 AI native 的影片編輯器。最好是本地的,因為我本地用 macOS 的渲染還是很快的。
所以去年的10月1日我就開始 ScreenKite 這個專案的第一個提交。有意思的是我這麼多久過去之後呢,其實感覺是沒有一個非常好用的開源專案可以參考的,所以整個專案算是 Claude Code 和 Codex 兩個 AI 從讀文件然後獨立發明的。
一開始的專案就是一個 macOS 原生專案。螢幕的錄製與多路流式輸入,比如說是螢幕錄影,然後前置攝像頭,還有兩路的音訊的輸入其實是一件非常複雜的過程。說實話,對硬體或者是對編排的壓力還是蠻大的,還有時間上的同步。其實一開始我感覺有大概 2 個月的時間都沒有把這件事做對,感覺是這個樣子。
因為這塊的話,說實話參考文件和教程還有開源專案並不是很多,也許今天有非常多,但是當時沒有。所以只能讓 AI 去來不斷的實現,然後因為這個專案呢,它是一個非常複雜的原生專案,然後也沒法去做 AI 自動化演示,所以每次迭代之後呢,我都需要構建這個專案來去迭代。
中間其實是有一個轉折點,也就是 GPT 5.2 Codex 後大大增強了迭代能力。之前我大概是用 Opus 作為主力,然後用 Gemini 和 Codex 作為審查。直到那之後的話,我就開始逐漸遷移到 Codex 作為主力,偶爾用 Claude 和 Gemini 模型作為審查了,因為實在是太過強大了。這個時間點和大家認識到的 OpenClaw 的爆火是非常一致的。
具體來說,目前的迭代方式就是以 Codex 為主,使用 acpx bridge 到 Claude Code 和 Gemini CLI 去做 code review。我個人發現不同的 AI 思考問題的角度還是不同的,雖然我基本上不看一行程式碼了,但是我覺得 Codex 寫完的程式碼再讓幾個 AI 來互相 review 之後,也會讓我感到更加放心。我也有幸給 openclaw/acpx 貢獻了幾次程式碼,非常喜歡這個專案。
開發過程也是如此,就是一開始的話我們迭代 app 基本上就是透過編排一個 agent,也就是用 Claude Code 或者是 Codex,在去年12月份之前的話,大部分情況我都會產生一個問題,就是做一個功能會損壞掉一到兩個功能。這有兩方面的原因,一方面是當時的模型的能力並不足夠強大,這是第一個原因,也是最根本的原因。那第二個我最近意識到的一個問題也就是測試的程式碼覆蓋率低下。這就是我們就覺得是不是可以用 AI 來,這就是產生了我兩個觀點,第一個就是 AI 模型會逐漸吞噬軟體或者是大規模的降低軟體的開發成本。
那第二點則是測試程式碼甚至更重要於生產程式碼,因為它是保證 agent 迭代的穩定性的重大保障。如果沒有這個的話,對於影片渲染,GPU 加速,比如說 Apple 的 Metal 的最佳化還是很容易出現迴歸問題的。
值得一提的是,ScreenKite 的開發過程中起碼有 30% 的部分是完全無人之手的,也就是說從需求到驗收我都是完全自動化的。有點像 OpenAI 的 Symphony,也有點像 OpenClaw 的作者 Peter Steinberger 提到的不斷按 continue 就可以了。我也確實是這麼做的。
ScreenKite 本來是一個 Mac 的原生應用,在上週 OpenAI 釋出了它的 Rough Loop(也叫做 /goal)之後,我想嘗試一下能不能用極少數的 prompt 把整個 Mac 原生應用改寫成一個完整的 Windows 應用。目前看來基本上花了大概 58 個小時用 GPT 5.5 Medium 基本上把這件事已經完成了,大概使用了不到 7B token。雖然從 LoC 來看只有 macOS Swift 程式碼的 30%,但是基本功能和 UI 已經完全類似了。
ScreenKite 開發過程的簡單回顧
我個人對這個專案傾注了非常多的感情,其中也有非常多的感受。一個最直接的感受就是,創造的瓶頸居然被這樣解決了,我非常開心。我已經是十多年的 iOS 開發者,但是對 macOS 尤其是 GPU、Metal 還有 macOS 的一些特殊領域非常不熟悉。在 Codex 和 Claude Code 的幫助下能夠做出來這麼複雜的產品,我感覺非常開心。這個專案目前大概有五十多萬行程式碼,我覺得已經是一個比較成熟的專案了。
但另一方面也是非常 burn out 的。其實每天的工作在我覺得完全的 AGI 到來之前,仍舊是不斷地去做 AI 的 QA 工程師,當然也是它的產品經理。對於我提到的剩下 70% 的工作,還是需要 human in the loop 的。
我本來打算放一些截圖,展示 ScreenKite 從老版本到現在的演變過程。我其實想用 agent 去構建每個歷史版本然後截圖,但沒想到最大的瓶頸是蘋果的開發者工具,對於太老的專案它已經無法構建了。我也不想浪費更多的時間去重新安裝老版本的 Xcode 去給大家截圖。本來還是想策劃一個不斷演示產品迭代歷史的截圖集的,但是由於蘋果的限制,沒法做到,只能如此了。
是不是購買軟體便宜很多呢?
當然不是,仍舊貴幾千倍到幾萬倍。考慮到你的時間和 token 消耗的話,那如果現在 token 沒有被補貼的話,我們大概還要花非常非常多的錢。那這個軟體每年的訂閱成本是一百多美元,但是實際構建的成本要好幾萬美元。
我在兩臺電腦上開發 ScreenKite,大致花費的 token 數量(假設沒補貼):
MacBook A:
| Tool | Total tokens | Cost |
|---|---|---|
| Claude | 4.87 B | $3,354.09 |
| Codex | 116.69 B | $92,791.20 |
| Gemini | 0.06 B | n/a |
MacBook B:
| Tool | Total tokens | Cost |
|---|---|---|
| Claude | 2.68 B | $2,207.20 |
| Codex | 54.51 B | $39,557.73 |
| Gemini | 0.07 B | n/a |
現在開發一個新的軟體產品,我大概會採取什麼樣的流程呢?
我覺得現在流程跟原來是不一樣了,現在最簡單的來說就是做一個 UI 很簡陋但快速迭代功能比較齊全的這種原型,然後在原型基礎上再去管正確性和美觀,UI 和使用者體驗一定很重要。
之後的話我們就會要去做更多的事情:比如說讓 AI 去給我們整理出來我們的願景,協助我們定義一個願景文件,然後根據願景文件去修復各種問題,無論是架構上的還是需求上的還是邏輯上的問題。當這個原型製造出來之後的話,很長一段時間都可以用 agent harness 去自動或者半自動化的迭代了,因為需求和願景已經定了,那這基本上就是一個固定投入與產出的一個做法了,我認為。
ScreenKite 的未來是怎麼樣?
首先就我的投入來說,我不認為把這個軟體比如說賣29或者9美元有什麼意義,起碼我看不出來這樣的話會佔領什麼市場,因為目前同質化的產品太多了,所以我不認為這個領域還有什麼收費並且可以做出差異化的地方。 因此 ScreenKite 就是一個免費的 Screen Studio 和 Loom 的替代。也歡迎大家來使用和提交問題反饋。 我認為軟體的價值對大多數人來說就在於第一是創造價值,比如說你可以用這個軟體做出不一樣的東西,提高方法。第二個就是可以節約時間,比如說影片的後期剪輯與匯出速度。這兩點是我未來想做的,當然也是想幫助到我自己。 影片的後期剪輯在目前大語言模型的情況下,我認為 Google 的 Gemini 模型的多模態是最有可能最先解決的。所以我想目前來說 ScreenKite 的後期剪輯部分也作為一個工具來獨立去給 AI 使用是一個潛在的機會。 此外,除了這種 AI 端到端的自動化剪輯,我認為還有一個很有意思的機會就是 code to animation,code to visuals,也就是用 hyperframes 和 remotion 生成的影片片段插入到我們的影片編輯器裡,這樣的話就可以渲染出來更快更好的影片。目前當然來說可以用比如說 hyperframe 的影片編輯器去做一個影片的渲染,但是對於特別長的影片來說的話渲染效能是比較差的,速度也是比較慢的。另外就是說對於每一個段落的話,或者對於一個稍微長一點的影片來說最好還是有一個傳統效能的影片編輯器更有效率。 因此 ScreenKite 也有一個姊妹產品,PilotCut(我本來也買了 CoPilotCut 的域名,但是想想現在寫程式碼的經歷,覺得還是 PilotCut 吧)。https://www.pilotcut.com
對開發者有什麼啟示?
分發與 branding 遠遠比其他更重要了,因為模型在不斷的迭代,在構建上面的瓶頸會逐一攻破,更難的就是 branding 和分發。也就是為什麼別人要買你的軟體。這就有點像可口可樂或者紅牛一樣,其實同樣都是飲料,為什麼要買這種大品牌呢?為什麼大家習慣於購買這個呢?就是 branding 在裡面。
如果迴歸到構建的技術本身上,就是不要再開發 native 應用了,這塊的話無論除錯還是迭代還是除錯效率,UI 還原度都要低很多。Electron 和 Web 技術才是未來,尤其是當軟體可以被動態構建與分發的時候,native 應用的劣勢會越來越大。未來可能作業系統會有一個 native 相容層,就類似瀏覽器這種存在。在上面構建應用效率會遠遠高於 native 軟體,至少在早期迭代的時候。因此我認為 Screen Studio 選擇 Electron 依舊是正確的道路。其實很多應用,尤其是 AI Labs 做的最新的應用也可以證明這一點。比如說為什麼 OpenAI 和 Anthropic 在他們最強大的桌面端應用 Codex Desktop 和 Claude Desktop 為什麼用 Electron 而不是用 Native,這就可以解決一個問題。因為 Native 本身我個人認為設計也是有非常多的歷史遺留問題,並不夠直覺化。這種直覺性對於人類很重要,對於 AI 來說更重要。
設計和使用者體驗依舊重要,雖然現在有 AI,但是對於這種確定性要求很高的軟體,我們是必須需要一個非常好的使用者體驗的,這也是想和其他人做出差異化的一個重要的原因。如何做出不同的軟體,我們是需要非常優秀的設計師的。這裡我很感謝我的設計師朋友 @hi_caicai 幫我的設計。 比如我的設計師朋友可以很快用 Claude / Codex,配合 Tauri 構建 ScreenKite 的 UI 和使用者體驗的重新設計給我,而不是用 Figma。相對於 Figma 的 Dev Mode,coding agents 可以直接讀 Tauri 的前端程式碼來還原設計到 SwiftUI 和 AppKit(當然目前的 LLM 模型並不擅長,無法 few-shot)。
我覺得雖然軟體的開發執行層面已經達到了 AGI,但是決定做什麼與不做什麼、決定怎麼做、做到什麼程度,還有 UI 與使用者體驗,依舊無法做到 AGI。我覺得目前的大語言模型是很強很強的執行者,但並不是一個有自主意志的 AI agent。我相信在不遠的將來可能會達到一個完全有自主意識的 AI。不過目前來說,如果硬要找一些職業上的慰藉的話,就是我們作為人類的創造性、同情心,還有對世界的感受,你的經歷,一切都是非常獨特、非常重要的事情。所以這就是我作為一個在執行層面已經被替代的軟體工程師,目前心裡唯一的一些慰藉。
好工作的重要性
我覺得其實 AI 時代到來如何工作多好,其實花多少時間並不關鍵,關鍵是如何寫出那個核心的 prompt。 選擇做什麼與不做什麼,無論對公司還是個人來講都是非常重要的事情。雖然 Token 能幫我們做很多事情,但是產生的無盡的程式碼與 Markdown 或者是任何東西總是一種負擔。這也是我感覺使用別人的 agent 技能與自己構建自己的是完全不同的原因。
我離開上一份工作的原因其實也不完全是因為覺得自己的工作被 AI 所取代,其實也是覺得 AI 在逐漸重新定義真正的好工作是什麼樣子的,那絕對不是無休止的開會與踢皮球還有辦公室政治,是更應該關注於解決問題與快速構建,構建之餘應該是多休息自己的大腦,讓自己可以花更短的時間內完成更多的工作而不是在去盲目的加班了。 《Good Work: Reclaiming Your Inner Ambition》(Paul Millerd)這本書裡說到「"Most of my writing happens in the three-hour blocks I schedule each week, and my years are filled with seasonal flows of intense work and leisure. But the lines between work and non-work are fuzzy. Since I love thinking about ideas and exploring my curiosity, "work" is happening all the time in conversations with friends, on long bike rides, in the shower, and at the gym.」(中文:我的大部分寫作都發生在我每週安排好的三小時寫作時間裡……因為我熱愛思考各種想法、探索自己的好奇心,'工作'幾乎無時無刻不在發生:和朋友的對話中、長途騎行時、洗澡時、在健身房裡。) 我不是反對對熱愛的事業加班,我也希望我也可以找到為之奮鬥並開心的事業。但是對於我個人來說,我認為放慢腳步才可以做出來更好、更有價值、更獨特的事情。反而花很多時間在不斷的 token maxing 不是未來。我個人也不是非常認同比如說 Meta 這種內部的 token maxing 做法,而且我個人的賬號已經有兩次被 Meta 不負責任的禁止掉,找不到任何人來幫助我解封。這裡順便一提,Meta 的監督委員會是可以申訴的,但是 Meta 在封禁你的時候並不給你工單號,故意讓你無法申訴。 而且我覺得這家公司太過激進主義,反而造不出來東西。從我們現在用的 AI 模型上來看,目前的狀態是如此。雖然我是 Meta 的持股的小股東,但是我覺得他們並沒有走上哲學意義上正確的路。
未來大概會是什麼樣?
我覺得對於絕大多數白領行業來說,很多工作都會被 AI 自動化取代。一個殘酷的現實確實是很多人將會失去工作,包括我在內。我最近也逐漸陷入了存在主義的危機。其實就是對於沒有完成一個被動收入資本積累的我來說,很難在這個社會上按照原有的路徑生存下去,必須找到活下去的方法。我也認為 Anthropic 管理層並沒有過於危言聳聽,畢竟 Dario Amodei 去年大概五月份說六個月之內 AI 會寫90%以上的程式碼,在現在看來是一個保守的估計了。
不過老實來講,我認為從我學習程式設計以來,我覺得很多工作確實是比較機械性的工作。比如說學習一些繁複複雜的語法,比如 Objective-C, Rust, C++,所以導致這種工作只有極少數的人能來做。最近 Boris Cherny,也就是 Claude Code 的作者在紅杉資本的採訪中也提到現在的大語言模型有點像印刷書的發明,可以減少比如說文盲,也就是程式設計文盲的數量,反而增大了需求。想到中世紀的時候大家都是文盲,跟今天的世界確實不可同日而語。但是如果樂觀地來看的話,在短暫的振奮之後肯定會變得越來越好。 當然我個人還是想說地球上的機會可能會變得沒有那麼多了。如果人類可以儘快開發外太空的話,相信人類會經歷非常非常富足的年代。這裡我還是希望 SpaceX 和藍色起源這兩家公司能夠加把勁。