
杀不死我的让我更强大
--尼采
因为这篇属于沉思录系列,要写的严肃点,请大家见谅。
但写这篇文章是和大家分享我对软件行业的信心,和现在的高兴的状态,本来不想写,但想着独乐乐不如众乐乐,写出来让大家一起开心开心。
近来软件被AI黑的不行, SaaS当然也是,有人说的很极端,软件行业已经被资本抛弃了。未来是AI吞噬世界,AaaS(Agent as a Service)才是未来。这个论调是非常熟悉的,马克安德森说的“软件吞噬世界”,言犹在耳,世界又即将被AI吞噬了。不知道世界目前在软件的消化道的哪个部分,还是已经被消化掉了。
其实,后来者要把自己定义出来,才能建立新话语权和定位。先来者总是会试图包括后来者的概念,扩大自己的定义,以便不被新观念排除在外,“不被时代抛弃”。这可能就是语言不断推陈出新,或者说被污染的原因。这些因素我希望被排除在这篇文章的争论之外。所以本文说的软件就是传统的软件或者SaaS软件,特别说明,如果不特指本文的软件就是指SaaS软件,另外,如果和AI有关的话会单独说明。
一、AI coding的分类和影响
目前有50%以上的Token是用在AI 编程上。但AI coding的应用场景比较广泛。考虑到在实际应用的边界不同。我将其分成两类:
第一类是辅助编程模式,包括问题定义、可行性分析、需求分析、设计、编码、测试、维护直至报废的全过程的部分自动化和提效,但最终还是需要人来确定可以执行,实际上辅助的是软件的生产过程。核心的差异是,参与人是软件的生产者,和消费者是可以分开的。比如vibe coding,trae。
第二类JIT(Just in time)模式,根据人的需求直接生成代码运行,人获得的代码生成的结果。参与人得到的不是代码而是代码运行后的结果。参与人虽然也是软件的生产者,但更重要的是软件的消费者。比如现在的OpenClaw。
辅助编程模式不管自动化程度有多高,改变的是软件的生产成本,即使成本再低仍然存在,何况软件的成本也不光光是软件的生产成本。这种成本结构的变化,改变的软件行业的供需结构。在成本极大的情况下,会构成两个层次的冲击:
第一层冲击是对现有的软件价值的重估。编程效率的提高,会影响到重置成本。如果软件的重置成本变的非常低,那么竞争门槛必然会答复下降,考虑到组织惯性和路径依赖,已经存在的公司未必比新公司有优势。那么行业的价值评估体系会受到极大的冲击。即使这样行业本质没有变化 ,还是需要SaaS,还是需要标准软件产品不管这个产品有没有AI。只是可能一代新人换旧人,谁掌握了更高的软件生产效率,谁就是赢家。失败者清盘退出。但在大家都认识到这一点的情况下,没有哪家企业会坐事不理,对治理结构良好的大公司,能够解决这些怠于竞争的人,不换思路就换人。
从这角度出发,这种冲击的结果可能反直觉的,在软件行业的边际成本为零的情况下,扩张速度将是首选的要素,最终很可能赢家通吃。以SaaS行业冲击传统软件行业为例,在预期SaaS续期高毛利的情况下,这个行业基本满足这种假设,事实上产业界也是这么做的。而在美国已经呈现出特定领域SaaS寡头结构特征,所以在这波AI重估软件企业价值之前,美国的SaaS企业还是活的不错,甚至在疫情期间还成长了一大波。中国的SaaS产业,由于价格偏低,续期毛利并没有美国的高,尽管前几年也在烧钱扩张,但基于高毛利续期费用的假设在中国不太成立。在资本一但风吹草动,就无法通过自己造血来继续扩张, 没有完成从竞争到寡头结构的过程。然后在资本挤泡沫的时候,那些行动缓慢者 ,管理不善者,被现金流和行业口碑淘汰。当然有一些虽然死了,但还没有埋掉。两者居然起到了殊途同归的效果,也是颇让人赞叹唏嘘。在美国已经出现以AI降本之名以同质产品进行竞争的情况。虽然,这很可能是原来的市场共谋被打破的原因,但技术推动的成本降低使这种共谋被打破成为可能。
第二层冲击是可能会改变软件的资本品的定位,构建在应用层上的标准软件或者SaaS这个行业可能就不存在了。SaaS和标准软件产品本质是资本品,一个边际成本为零的资本品。也就是广泛的使用者通过这种资本品来获得未来长期的收益,这个资本可以买也可以自己建。由于自建的成本在一些软件上,可能成本太高,所以选择自建。但不管怎么选择,都是资本品,有长期耐用,价值高等特征。长期耐用和价值高有关系,我们可以想象一下,自己的车长期耐用。但如果只有花5000人民币就能买一辆,尽管可能还是耐用,但更换的频率应该要比20万一辆高很多。
所以软件编程效率提升多少很关键, 原来一个100万开发成本的项目(一般的定制开发项目产生的软件也是资本品),效率提升了10倍,成本就变成了10万。10万仍然是一个资本品,那效率可能提高100倍吗?也就是成本只有1万?考虑到软件的生产过程,在辅助编程的模式下,似乎是个一个难以达成的目标。但很原来10万的产品,可能就会变成消费品级别的投入了。可以参考一下巫老师的一次AI创业。
也就是要改变软件资本品的定位必须达到第二类模式或者接近第二类模式。
然后让我们看看第二类是否可行?如果我说在特定场景下可行,应该没人反对。以OpenClaw为例子,根据提示词或者Skills动态生成操作系统脚本来完成消费者需要做的工作,比如说邮件分类,文档整理,抓取信息生成汇报等等。
那么我们需要考虑的是,哪些场景能够达到高标准的或者是可用级别的自动编程和自动运行?需要什么前置条件。
很多人喜欢说第一性原理,那我也尝试这个角度来看看。倒推一下:
首先,程序要运行。现在的AI产生的程序本质上还是生成人类发明的编程语言以及使用了整个解释/编译到执行的体系。那就需要有个执行环境。以下OpenClaw为例就是需要装在一个操作系统上,能够调用操作系统脚本和各类工具。这就是环境。 考虑到复杂系统需要多人或者多个Agent执行,那么数据访问权限、文件权限这些问题也需要在环境中解决。这波OpenClaw帮助大家理解了一把什么叫权限,我这里就不多解释了。
第二,AI生成代码,所需要也不是仅仅用户提示词就可以的。还需要相关的系统提示词、甚至要构建提示词工程和RAG。这些也需要一个机制。要达到可用级别也需要一个平台。
第三,需要与之配套的基础设施,比如用来处理大量数据的数据库,算法库。这些传统意义上的基础架构和组件。
其实辅助编程模式同样需要这些,但JIT模式需要全部自动化,并且要用Agent来自动调度。整体上来看,需要一个超过AI原生开发平台更高的系统工程平台2222,能完成部署,运行等所有工作。
我们仍然以OpenClaw为例子,为什么它能达到生成代码直接使用?部分简单的工作,OpenClaw直接生成脚本(或者自动创建Sklls),复杂需要人工干预,提前建立skills,注册工具和接口供OpenClaw使用,其实这个已经不能完全算第二类模式。由此引发的思考就是,如果我们能够提供一些预置Skills和接口,那我们也能提供更多的工具,让第二类模式得以实现。
那么类似OpenClaw的JIT模式的可行模式我称之为软件编织(Orchestration)。
软件从此开启编织新时代。
(未完待续)