软件行业的 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 和蓝色起源这两家公司能够加把劲。