从“安装.md”到“零代码应用”:LLM正在催生的不是工具革命,而是应用定义权的转移
当“安装.md”取代了复杂的安装脚本,当一张图片的输入和输出就能构成一个完整的应用,我们正在目睹软件开发的权力从工程师手中向更广泛的用户群体转移——但这一过程远比表面看起来更加微妙。
核心观点:LLM所带来的真正变革,并非仅仅是更快地编写代码,而是从根本上改变了“应用”和“基础设施”的定义边界,使得原本需要复杂工程才能实现的功能,现在被降维成可自然语言描述和执行的简单指令。
在最近的一次内部技术讨论中,一位AI领域的知名研究者提出了三个看似简单却极具颠覆性的例子:一个叫“menugen”的应用,完全不需要传统代码,输入一张图片就能输出一张处理后的图片,整个逻辑都通过LLM原生能力完成;用“安装.md”文件替代传统的shell安装脚本,只需用文字描述安装步骤,让LLM智能地适应不同系统环境执行;以及基于LLM的知识库,能够对非结构化数据(如任意来源的文本文章)进行真正意义上的计算。
这三个例子之所以引人注目,不是因为它们展示了多么惊世骇俗的技术能力,而是因为它们揭示了一个更深层的趋势:LLM正在模糊“应用”与“非应用”、“基础设施”与“能力”之间的传统边界。
先看“安装.md”这个例子。传统的软件安装逻辑,是一个典型的“软件1.0”问题:你需要一个精确的、分步的、针对特定操作系统和环境编写的脚本。如果环境发生变化(比如你用的是不同的Linux发行版,或者某些依赖库版本不兼容),脚本就会失败,你需要手动调试。而“安装.md”的做法,是把安装目的和步骤用自然语言写下来,交给LLM去解释和执行。LLM作为一个“高级的英语解释器”,可以智能地适应当前环境,甚至在遇到错误时自动进行调试和修正。
这里的关键不在于LLM能否完美替代所有安装脚本(实践中显然不能,至少目前还不能),而在于它提出了一种新的抽象层级:用意图描述替代过程描述。传统的软件开发,本质上是对过程的精确编码;而LLM的出现,使得对意图的描述成为可能,并且这种描述在某些场景下比过程描述更健壮、更灵活。
反对者会立刻指出:自然语言的歧义性、LLM输出的不确定性、以及对关键系统操作可能造成的灾难性后果,这些都使得“安装.md”只适用于非关键场景。这种批评是有道理的。在涉及系统安全、数据完整性、或者精密计算的场景中,我们依然需要传统的确定性代码。但是,这种批评也忽略了一个事实:世界上绝大多数安装场景并不是在操作核反应堆或者生命支持系统,而是在安装一个文本编辑器、一个开发工具、或者一个网页应用。在这些场景中,一次安装失败的最大代价不过是多花几分钟重新尝试,而LLM带来的灵活性和跨平台适配能力,恰恰是传统脚本长期以来的痛点。
再看“menugen”这个例子。一个完全不需要传统代码、只依赖LLM原生能力的图像处理应用,听起来像是科幻小说。但细想一下,这恰恰揭示了LLM的“新大陆”:那些可以完全被LLM“吞噬”的应用类型。传统上,如果一个应用要处理图像,你需要编写复杂的算法、调用了OpenCV这样的库、处理各种边缘情况。但在LLM的世界里,如果你能清晰地描述“把这张图片里的人像换成动漫风格”,LLM就能直接生成结果。当然,目前的LLM在图像生成的精细控制方面还远不如专门的扩散模型,但关键不在于它做得有多好,而在于它的门槛有多低——任何能说出自己需求的人,理论上都可以“创建”一个这样的应用。
这带来一个根本性的问题:当创建“应用”不再需要技术能力时,应用的定义权就从开发者转移到了用户。过去,一个应用是什么样,由开发者的技术选择和设计决定;现在,一个应用可以是一个随需应变的、由自然语言描述的功能集合。用户不再需要去应用商店搜索一个“图片转动漫风格”的工具,他们只需要对着一个通用的LLM接口说出自己的需求。
这种转变的影响是深远的。传统软件行业的商业模式建立在稀缺性基础上:开发一个应用需要稀缺的编程技能,因此开发者拥有定价权。但当任何一个有语言能力的人都可以“创建”一个功能时,这种稀缺性就消失了。随之而来的,是对“平台”价值的重新评估。一个能够理解用户任意意图并生成相应功能的通用LLM,本身就是最大的平台。而传统的、针对特定功能设计的独立应用,其生存空间将被严重挤压。
当然,这个推论需要谨慎对待。现实世界中,用户的需求往往比简单的“图片转动漫”复杂得多。一个完整的企业级应用,涉及用户认证、权限管理、数据持久化、多终端适配、以及与现有系统的集成。这些需求无法通过一次LLM对话就得到满足。但这也恰恰是“LLM知识库”这个例子试图说明的方向:对于非结构化的、来自任意源的数据,传统软件开发几乎无能为力,因为传统代码只能处理结构化的、可预测的数据。而LLM天生就是处理非结构化数据的“应用”——你可以把任意格式的文档、邮件、网页扔给它,它都能基于内容进行推理和回答。
这意味着,未来的“基础设施”可能不再仅仅是服务器、数据库和API,而是包括LLM的上下文窗口、嵌入向量、以及指令模板。当一个企业说“我们的知识库”时,它可能不再指一个结构化的数据库,而是一个能够根据自然语言查询动态组织信息的LLM实例。这种基础设施的转变,对现有的一整套软件堆栈和开发方法论都构成了挑战。
同时,我们也看到一种新的“代理经济”正在浮现:像“Stripe争议解决器”这样的AI代理,它能够自动收集证据、生成报告、并代表用户与金融机构沟通。这不再是一个简单的工具,而是一个“数字员工”,它拥有自己的目标、自主决策能力、以及外部系统的交互能力。这种代理的兴起,将进一步模糊“应用”和“服务”的边界。用户购买的不再是一个静态的软件,而是一个动态的、能主动解决问题的能力单元。
但这种变化也带来了新的不确定性。用户真的准备好信任这些代理了吗?当代理代表你做出错误的决定时,责任如何划分?当代理与代理之间开始交互时(比如你的争议解决代理与银行的风控代理对话),这种代理对代理的通信是否会带来新的系统风险?这些都是目前尚无明确答案的问题。
回到最初的主题:LLM带来的不是简单的效率提升,而是对“什么是应用”、“什么是基础设施”这些基本概念的重新定义。我们已经看到一些初步的迹象:使用“安装.md”的开发者发现,他们不再需要为每个操作系统维护不同的安装脚本,而是可以“教”LLM如何在任何环境下工作;“menugen”那样的零代码应用虽然目前还很简陋,但它预示着未来的应用可能从“下载-安装-使用”的模式,转变为“描述-生成-使用”的模式。
这种转变并非一蹴而就,它需要时间来克服现有习惯和惯性。但趋势是明确的:软件开发的门槛正在急剧降低,应用的定义权正在向用户端转移。对于开发者来说,这意味着需要重新思考自己的角色——从“编写代码”转向“设计和维护能够被LLM有效调用的能力接口”。对于用户来说,这意味着需要提升自己的意图表达能力——在使用AI之前,先学会清晰地、结构化地描述自己的需求。
最终,我们正在进入一个“软件民主化”的新阶段。但正如所有的民主化进程一样,它既带来机会,也带来挑战。机会在于,更多人可以参与到数字创造中来;挑战在于,当任何人都有能力创建“应用”时,真正的筛选和价值判断将变得更加困难。未来属于那些既能利用LLM的灵活性,又能理解传统软件工程中关于可靠性、安全性和可维护性基础原则的人。不是二选一,而是两者兼备。
参考来源
- Fireside chat at Sequoia Ascent 2026 from a ~week ago. Some highlights:
- The first theme I tried to push on is that LLMs are about a lot more than just speeding up what existed before (e.g. coding). Three examples of new horizons:
- 1. menugen: an app that can be fully engulfed by LLMs, with no classical code needed: input an image, output an image and an LLM can natively do the thing.
- 2. install .md skills instead of install .sh scripts. Why create a complex Software 1.0 bash script for e.g. installing a piece of software if you can write the installation out in words and say "just show this to your LLM". The LLM is an advanced interpreter of English and can intelligently target installation to your setup, debug everything inline, etc.
- 3. LLM knowledge bases as an example of something that was *impossible* with classical code because it's computation over unstructured data (knowledge) from arbitrary sources and in arbitrary formats, including simply text articles etc.
- I pushed on these because in every new paradigm change, the obvious things are always in the realm of speeding up or somehow improving what existed, but here we have examples of functionality that either suddenly perhaps shouldn't even exist (1,2), or was fundamentally not possible before (3).
- The second (ongoing) theme is trying to explain the pattern of jaggedness in LLMs. How it can be true that a single artifact will simultaneously 1) coherently refactor a 100,000-line code base *and* 2) tell you to walk to the car wash to wash your car. I previously wrote about the source of this as having to do with verifiability of a domain, here I expand on this as having to also do with economics because revenue/TAM dictates what the frontier labs choose to package into training data distributions during RL. You're either in the data distribution (on the rails of the RL circuits) and flying or you're off-roading in the jungle with a machete, in relative terms. Still not 100% satisfied with this, but it's an ongoing struggle to build an accurate model of LLM capabilities if you wish to practically take advantage of their power while avoiding their pitfalls, which brings me to...
- Last theme is the agent-native economy. The decomposition of products and services into sensors, actuators and logic (split up across all of 1.0/2.0/3.0 computing paradigms), how we can make information maximally legible to LLMs, some words on the quickly emerging agentic engineering and its skill set, related hiring practices, etc., possibly even hints/dreams of fully neural computing handling the vast majority of computation with some help from (classical) CPU coprocessors. - https://nitter.net/karpathy/status/2049903821095354523#m
- Has anyone switched from Electron to Flutter? Here is what I am considering. - https://www.reddit.com/r/electronjs/comments/1t0xejh/has_anyone_switched_from_electron_to_flutter_here/
- P.S. this Mapbox cost is another cost detected by my new Situation Monitor dashboard with AI insights, it scouts all my projects insights on what to improve
- A few weeks ago it detected the Cloudflare bill was too high and we found they made a mistake which they quickly fixed and refunded
- Really nice! - https://nitter.net/levelsio/status/2050344326769590440#m