AI 不会吞掉软件,只会吞掉入口
“AI 会吞掉所有软件”这个说法很有传播力,但技术上不够准确。更可能发生的事情是:软件本体继续存在,软件入口被 AI 重写。
计算器、数据库、编译器、PDF 库、浏览器、CAD、CI、权限系统、ERP 不太会因为 LLM 出现而消失。它们处理的是确定性状态、格式、权限、计算和副作用。LLM 不适合直接替代这些系统,却很适合成为它们上方的意图入口。
从交互史看,GUI 的意义之一,是把人和计算机之间的操作鸿沟压低了。用户不必记住底层命令和数据结构,也能通过窗口、图标、菜单和指针操作复杂系统。Agent 时代出现的是另一道鸿沟:LLM 和传统软件之间的鸿沟。CLI、API、MCP 和 Skills 把这道鸿沟压低了,因为它们把软件能力变成模型能读、能调、能记录、能验证的文本接口。
确定性系统不会消失
裸模型不是确定性程序。它可以写出计算器代码,但不应该代替计算器执行财务计算;它可以解释 PDF 结构,但不应该靠想象修改 PDF 二进制;它可以生成 SQL,但实际执行、回滚、审计和加锁的仍然是数据库。
这不是模型能力不够强时的临时现象,而是范式边界。真实软件世界需要可复现、可审计、可回滚、可授权。神经网络输出可以生成候选方案,却很难成为这些确定性承诺本身。
Claude Code Skills 的 PDF 示例很能说明问题。一个 PDF skill 会把操作流程写进 SKILL.md,再借助 pypdf、pdfplumber、脚本和参考资料处理文件。实际改 PDF 的不是模型“懂了 PDF”,而是模型调度了确定性工具。
被吞掉的是操作入口
过去使用软件,用户要学习每个系统自己的入口:菜单、按钮、快捷键、API、CLI、配置文件。AI Agent 出现后,入口可以变成自然语言意图。用户说“把这份合同里的付款节点提出来,和发票系统对一下”,Agent 再去调 PDF 解析、合同库、发票 API、权限系统和表格生成器。
flowchart TB
U[用户意图] --> G[GUI: 人类操作入口]
U --> A[LLM / Agent: 高阶意图入口]
G --> S[传统软件]
A --> C[CLI / API / MCP / Skills]
C --> B[权限与策略]
C --> D[数据库]
C --> E[浏览器 / SaaS]
C --> F[文件格式库]
C --> T[CI / 测试 / 部署]
D --> H[结果与证据]
E --> H
F --> H
T --> H
H --> A
A --> U
这和“吞掉软件”不同。软件的能力没有被神经网络吸收,而是被包装成 Agent 可观察、可调用、可组合的技能包。入口层变高阶了,执行层仍然专业化。
GUI 到 CLI:两次桥接
GUI 解决的是人类怎样操作软件。它把命令、文件、窗口状态和应用能力包装成可视化对象,让非程序员也能直接操纵计算机。软件行业过去几十年的很大一部分增长,来自这层交互抽象变得足够自然。
CLI 在 Agent 时代获得了新的意义。对人类来说,CLI 往往不如 GUI 友好;对 LLM 来说,CLI 反而接近理想接口。命令是文本,参数是文本,输出是文本,错误也是文本。调用过程可以被日志记录,结果可以被测试验证,失败可以被重放和回滚。
当 LLM 可以稳定通过 CLI、API、MCP 和 Skills 操作传统软件时,它就不再只是一个聊天框,而会成为一组软件之上的中心节点。用户感知到的可能是一个大型虚拟软件:同一个 Agent 能读合同、查数据库、跑脚本、开浏览器、生成表格、触发 CI。底层能力来自许多传统工具,但组合边界和工作流形状由 LLM 在运行时定义。这个形态可以叫 LLM-defined software。
LLM-defined software 不是把传统软件消灭,而是把传统软件降格为工具层。软件能多大程度上被 LLM 观测、调用、集成、验证,会逐渐影响它能不能进入新的流量入口。
MCP 把入口层标准化
MCP 的意义正在这里。Anthropic 发布 MCP 时,把它描述为连接 AI 应用和外部数据源、工具的开放标准。它不是让模型替代外部系统,而是把外部系统接到模型能调用的协议面上。
这件事会改变软件生态的分工。过去每个应用都争夺用户时间和屏幕入口;未来很多应用会争夺 Agent 的工具入口。一个软件如果能被 Agent 稳定发现、理解、授权、调用、验证,它就能进入新的工作流。不能被调用的软件,可能仍然存在,但会被用户绕开。
Agent Skills 也是同一个趋势。Skill 把一类工作流打包成说明、资源和脚本,让 Agent 在需要时加载。它不像传统插件那样只给人一个按钮,而是给模型一段可执行的程序性记忆。
入口高阶化带来新护城河
未来软件的护城河会从“界面好不好用”部分转向“能不能被智能入口正确使用”。
一个面向人的软件,重点是屏幕布局、交互路径和可发现性。一个面向 Agent 的软件,还要提供机器可读文档、稳定 API、权限边界、审计日志、错误语义、幂等操作、测试沙箱和可逆执行。它要让 Agent 不只是能点按钮,还能知道自己点了什么、为什么点、点错了怎么恢复。
这会产生一种新的产品能力:agent affordance。软件不是只给人用,也要给智能体用。可观察、可调用、可验证、可恢复,会像过去的易用性一样重要。
与 LLM 集成的难易程度,正在成为一种新的分发能力。过去,一个软件要争取搜索入口、应用商店入口、浏览器入口和办公套件入口;未来还要争取 Agent 入口。被模型容易发现、容易理解、容易授权、容易调用的软件,会更自然地出现在用户的复合任务里。
胶水语言从脚本变成 Agent
过去几十年里,胶水语言把软件连接在一起:shell、Python、JavaScript、SQL、HTTP API。它们让人把一个系统的输出接到另一个系统的输入。
LLM 不会替代这些胶水层,反而会站在它们上面。Agent 读懂用户意图,选择哪段脚本、哪个 API、哪个数据库查询、哪个浏览器动作,再把结果合成给用户。它像一个会读写自然语言的高级调度器。
这意味着软件会长期共存。越确定、越专业、越有副作用的软件越不会消失。AI 会吞掉的是“人必须亲自操作这些软件”的部分,而不是软件本身。
风险也集中在入口层
入口层变高阶以后,风险也会集中到这里。Agent 拿到越多系统入口,权限、审计、提示注入、越权调用、错误传播就越重要。把所有软件都接给一个智能入口,不等于可以放弃软件工程纪律。
相反,确定性软件会变成约束 Agent 的地基:权限系统限制它能做什么,schema 限制它能提交什么,测试限制它能合入什么,审计日志记录它做过什么,回滚机制决定它错了以后能不能恢复。
AI 入口越强,底层软件越要硬。
