由于 AI 更懂 AI,所以本文由 AI 辅助生成:整理自四段 Dale 与 AI 的讨论:CLI 的文艺复兴、 AI 时代复活的软件设计思想、Unix 为何恰好命中 agent 的需求、以及 Windows 的命运。
0. 一句话结论
AI 让”生产”变便宜,让”理解、验证、治理”变贵。于是被复活的,全是”可被机器读懂、可被机器验证、可被机器改写”的表示与做法;被削弱的,全是”靠封装替人省事”的东西。
这不是复古,是”可编程性”的重新定价。
1. 分析框架
1.1 CLI 的复兴
任何”复兴”都必须能回答一个问题:哪些成本结构被翻转了?
成本项 | AI 之后 | 后果 |
学习成本 | ↓ 模型替你读过 man page、源码、Stack Overflow | “可发现性”不再稀缺 |
编写成本 | ↓ 趋近于零 | 一次性代码、重写、脚本重新划算 |
检索成本 | ↓ grep / 语义检索 | 文件与纯文本重新成为第一等公民 |
验证成本 | ↑ 没人能替你确认”它真的对了” | 测试、类型、契约升值 |
治理成本 | ↑ 权限、审计、可回滚成为准入条件 | 沙箱与声明式范式升值 |
1.2 信息密度与可发现性
接口设计有一条贯穿始终的曲线:信息密度 ↔︎ 可发现性。
- GUI:低密度、高可发现。所有可能性外化成可见控件,代价是无法组合、无法脚本化、状态藏在像素里。
- CLI:高密度、低可发现。你得知道
tar -xzvf,代价是学习曲线。
人类长期容忍 GUI 的低密度,是因为学习成本对人极贵——这就是 GUI 收的”补贴费”。
LLM 出现后,这笔补贴被一次性外部化了:它不需要”可发现性”,它需要可寻址、可组合、可验证。
于是天平瞬间倾斜:
GUI 曾经最大的卖点(不用学),恰好是 AI 最不需要的东西。
1.3 三个通用判据
后面的所有判断,都回到这三个词:
可寻址(addressable)· 可组合(composable)· 可验证(verifiable)
2. CLI:从式微到复兴
2.1 CLI 的复兴其实更早
2015–2024 恰恰是开发者 CLI 的又一个黄金期:
kubectl、terraform、gh、ripgrep、fzf、tmux 复兴、TUI 回潮、Warp/Ghostty 这类新终端。真正衰退的,是 CLI 作为”消费级产品入口”的存在感——它退回了专业场景,不再被当作产品话题讨论。
CLI 的可见性式微了,装机量没有。
2.2 GUI 的复杂度不是目的,是补贴
每多一层封装,本质是把领域知识编码进控件,替用户预付学习成本。
复杂度是这笔补贴的代价。GUI 卖的核心价值从来不是”图形”,而是 “你不用学”。
3. 为什么 agent 天然偏好 CLI:五个机制
① 感知预算
一张截图是几万像素压成几千 token,且不可寻址(你没法”grep 一下第 37 行按钮”);
git status --short 是几十个 token 的稀疏结构化文本。Agent 的上下文是硬预算,文本是唯一”可压缩且可寻址”的表示。② 组合性
GUI 一个按钮 = 一个动作;一个 CLI = 无限种组合。
find | xargs | jq 就是最早的”多工具编排 DSL”,agent 的 planner 本质上是 shell 的高级形态。③ 可验证性
退出码、stdout diff、幂等、dry-run,让 agent 能自证成功(写完跑测试、比输出)。GUI 的”成功”无法程序化断言,只能靠视觉模型去猜。
④ 治理与边界
CLI 是天然的权限单元:allowlist、沙箱、审计日志、可回滚。企业敢让 agent 跑
kubectl,不敢让它点鼠标——因为后者无法约束。⑤ 存量生态
Agent 不需要新建工具链,它直接复用三十年积累的 CLI 遗产——ffmpeg、pandoc、jq、curl、sqlite3、git、docker。覆盖成本为零。
这是”文艺复兴”,不是”新建文明”。
4. CLI 倒逼 GUI 适配
不是 GUI 变成 CLI,而是 GUI 从”唯一入口”降级为”入口之一”。
层次 | 典型表现 | 本质 |
功能对齐 | 图形产品补官方 CLI(Stripe、Shopify、Vercel、Cloudflare、Linear、GitHub) | 能力从”点击”变成”调用” |
状态对齐 | config as code、import/export、deep link、可 diff、Terraform 化 | 状态从”藏在 UI 里”变成”可寻址对象” |
交互对齐 | ⌘K 命令面板、“复制为命令”、“在终端中打开” | GUI 主动降级为 CLI 的前端 |
边界:社交、短视频、游戏、审美类设计工具不会 CLI 化——它们的价值在感官与社交,不在可编程。倒逼集中在生产工具:云、数据、内容管线、协作。
反直觉现象:CLI-first 创业。先做 headless 内核 + CLI,UI 最后做——因为获客路径变了:先被 agent 发现,再被人发现。
5. CLI 正在变成智能体的 ABI (Application Binary Interface)
三条关键判断:
- 文本是唯一”人机双读”的低熵表示。 结构化数据都能投影成文本;像素不能无损投影回结构。这是”文本是模型母语”的真正原因——不是文本高级,而是它是唯一双向可逆的表示。
- CLI 是 agent 唯一能”扩展”的接口。 它能写脚本、沉淀自己的工具、造新命令。GUI 只能被使用,不能被 agent 改造。
- 准确说法不是”CLI 复兴”,而是:CLI 换了用户——从人换成机器,再从机器回授给人。
6. CLI 的四个真实风险
- 上下文熵。 CLI 输出对 agent 是双刃剑,10 万行日志是灾难。会催生”结构化 CLI”(schema + 摘要层),而不是无脑 dump。
- 安全。 agent + shell = 最高权限组合。工具输出注入(恶意 README、日志、man page)是全新攻击面。沙箱、审批、审计会从”最佳实践”变成”准入条件”。
- 可发现性仍是软肋。 agent 靠
-help试错,成本是 token 和时间。machine-readable manifest、MCP 这类工具协议,本质都在补这个洞。
- 标准碎片化。 各家 agent CLI 规范各搞一套,可能重演浏览器战争。
一个反身性问题:如果 agent 最终用结构化 tool call 而不是 shell 文本,CLI 会不会退化成”兼容层”?
判断:会分层——结构化协议做精度,CLI 做覆盖与组合,shell 长期是”最后一公里的胶水”。
7. 复兴清单:还有哪些形态、方法、思想回来了
7.1 表示层
① “一切皆文件”复兴
Agent 的工作台就是文件系统:
AGENTS.md、CLAUDE.md、scratchpad、任务清单。文件是唯一同时满足人可读、机器可解析、可 grep、可 diff、可版本化、可权限控制的存储原语。数据库对 agent 是黑箱,文件是白箱。文件系统是 agent 的 RAM,Git 是它的 undo,Markdown 是它的工作记忆。
② Markdown 从”排版格式”升格为”通用中间表示”
llms.txt、AGENTS.md、docs-as-code,本质都是把自然语言当结构化数据用。过去十年的共识是”非结构化文本不可靠,要上 schema”;现在反过来了——自然语言成了最通用、最便宜、最不容易过时的 schema。③ 富文本 / 私有格式退潮
知识库从富文本回到 Markdown + Git,不是审美偏好,是因为只有纯文本能被 agent 无损读写。
7.2 生产层
④ 胶水代码复兴
以前写个脚本要 30 分钟、只跑一次,不划算;现在生成成本趋零,“不值得写程序”的长尾被重新覆盖。
更深一层:“重写”重新比”维护”便宜。 过去二十年的主旋律是复用、封装、抽象(因为写代码贵);当生成变便宜,可丢弃性(disposability) 反而成了优点。
⑤ REPL / Notebook / 探索式编程复兴
Agent 的”思考—执行—观察”循环,天然就是 REPL。Jupyter 从”数据科学玩具”回到通用计算工作台。
⑥ TUI 复兴
lazygit、k9s、btop。TUI 是 GUI 与 CLI 的中间态:有可发现性,又不牺牲可组合性。7.3 验证层(最硬的一条)
⑦ TDD 复兴,角色变了
测试从”负担”变成”给 agent 的规格”。先写测试 → 让模型实现 → 跑绿 → 重构。测试不再是质量活动,而是需求表达方式。
⑧ 静态类型复兴
TypeScript 赢下前端、Python 类型注解普及、Rust 上桌。原因不是”少写 bug”,而是类型是 agent 的安全带:把”能不能编译”变成零成本的即时反馈。
⑨ 契约、属性测试、形式化方法的”话语复兴”
坦白说这条谈得多、落地少,但方向明确:生成代码越便宜,“确认它对了”就越贵。
AI 把”写”变便宜,把”信”变贵。 软件工程的重心正从”生产”移向”验证”。
7.4 架构层
⑩ 声明式与 IaC 复兴
K8s YAML、Terraform、GitOps。声明式描述”目标状态”,命令式描述”操作步骤”——agent 改目标状态是安全的(可 diff、可回滚、可审查),改操作步骤是危险的。
⑪ Monorepo 复兴
不是审美,是上下文:单仓库让 agent 能全局检索、跨模块修改、一次性跑通所有测试。
⑫ “无聊技术”(boring tech)复兴,且多了一个隐形维度
选型开始考虑”模型熟不熟”:主流框架有海量训练数据,冷门框架 AI 帮不上忙。技术选型第一次被”LLM 的先验分布”反向塑造。
⑬ API-first / OpenAPI 复兴,GraphQL 退潮
Agent 要的是便宜、稳定、可发现的 schema,不是灵活的查询语言。
7.5 知识与流程层
⑭ 文档复兴:docs-as-code、ADR、文学编程
文档不再是”写完就过期”的负担,而是 agent 的输入与约束。Knuth 的 literate programming 精神回归——代码与自然语言交织,因为读者是”人 + 模型”。
⑮ Local-first 与个人软件复兴
数据在本地、纯文本、可迁移、可被 agent 直接读写。可迁移性 = 可编程性。
⑯ 批处理与持久化执行(durable execution)复兴
Temporal 这类工作流引擎重新吃香:agent 的长任务需要可恢复、可重放、可审计。模式从”实时对话”回到”提交任务 → 异步审阅”。
⑰ 结对编程与代码审查复兴
Driver/Navigator 变成”人/模型”。瓶颈从”写”移到了”读与判”。
7.6 思想层
⑱ 符号主义以 GraphRAG 的形式回归
知识图谱、本体、规则引擎重回”结构化检索”“确定性护栏”的位置。分工重新划定:神经负责泛化与模糊,符号负责精确与可审计。
⑲ “增强而非替代”(Engelbart)复兴
从”全自动”叙事回到”人机协作”:人定意图、机器执行、人做判断。这是 1962 年就写好的剧本。
⑳ Unix 哲学复兴
小工具、单一职责、文本流、组合优于集成。LLM 恰好补上了 Unix 一直缺的那层”人机语义翻译”,于是四十年前的架构突然又对了。
8. 被 AI 削弱的,恰恰是”用封装替代理解”的那一类
- 低代码 / 无代码:它卖的是”不用写代码”,AI 直接送代码,中间商被绕过。拖拽出来的配置,agent 既读不懂也改不动。
- 重型 GUI 配置面板:状态锁在界面里,不可导出、不可 diff,只能靠点击——最贵的一种自动化。
- 薄包装型 SaaS:只做”把 A 的数据搬到 B”的中间层,会被 agent 直接串起来。
- 记忆型技能:背 API、背语法、背快捷键,价值大幅缩水——知道”要什么”比知道”怎么写”值钱。
- 点点点式人工测试:直接消失。
9. 为什么 Unix 恰好撞上了 agent
9.1 不是预见,是约束条件撞车
Unix 没有”预见”AI。它只是押了一个赌注——“我不知道谁会来调用我,所以把接口做到最小、最正交、最可组合”。而 agent 恰恰就是那个”谁”。
9.2 五个结构性同构
Unix 的设计 | 当年要解决的问题 | 与 agent 需求的同构点 |
everything is a file | 设备、管道、终端五花八门 | 统一命名空间 + 最小动词集 |
文本流 + 管道 | 程序之间无法预知彼此 | 松散耦合、组合的乘法 |
stdout/stderr + 退出码 | 人要看结果,也要看错误 | 注意力通道 + 成功谓词 |
KISS / 单一职责 | PDP-11 只有 64KB | 有界爆炸半径、可学习性 |
man page 的”繁琐” | 没有 GUI,只能靠文档 | 结构化契约 + 冗余纠错 |
展开三个最关键的:
- 一切皆文件:open / read / write / close 四个动词,覆盖磁盘、管道、终端、网络、设备、内核状态。对模型而言这是迁移学习——学会一次”读一个流”,就能用在 N 种资源上。而且同一个人抽象同时给了三件事:权限单位、上下文单位、版本单位。
- stdout / stderr / 退出码:这是最早的”工具返回 schema”——数据与诊断分离(注意力通道),成功可判定(成功谓词),中断可传达(信号)。几乎就是现代 tool call 返回结构的史前版本。
- man page:结构刚性(NAME / SYNOPSIS / OPTIONS / EXIT STATUS)= schema;内容冗余(每个工具都写退出码、错误、例子)= 为随机性读者准备的纠错;写契约而非实现 = 正确的抽象层级。再加上
-help这种运行时自描述,Unix 工具是第一代”可被发现的接口”。
9.3 Unix 早就把 harness 和 policy 分开了
Unix 哲学里最硬的一条不是”小工具”,是 mechanism / policy separation:内核只提供机制(fork、exec、pipe、权限),策略交给 userland(shell、rc 文件、配置)。
这恰好是今天 agent 系统的架构:
harness 提供机制(沙箱、权限、工具调用、超时),model 决定策略(做什么、怎么做)。
9.4 它假设”客户端不可靠”
Unix 假设程序会挂——信号、僵尸进程、SIGPIPE、
wait、ulimit,全是为”会死的进程”设计的。Agent 也是会挂的进程:会超时、会循环、会跑飞。
一个假设”客户端不可靠”的系统,天然适合一个真的不可靠的客户端。
9.5 Unix 喂养了模型
因果链:简单 → 传播广 → 语料多 → 模型熟。
这就是 Gabriel 说的 “Worse is better”:Unix 的抽象并不”正确”(everything is a file 在 socket、ioctl 上就是谎言),但它够简单、够早、够到处都在,于是赢下了传播。
传播的副产品是五十年的 man page、shell 脚本、配置文件、错误信息、问答——同一个
ls -l 在几百万个仓库里长得一模一样。模型对 Unix 的”熟悉”,一半来自设计,一半来自语料密度。
并且这形成自增强回路:模型擅长 Unix → agent 写更多 Unix → 语料更厚 → 下一代模型更擅长 Unix。
9.6 Unix 的局限性
- 隐式全局状态(cwd、环境变量、文件描述符)——agent 最难推理”我现在在哪儿、上一句改了什么”。
- 文本解析脆弱——
ls输出随 locale、颜色、列宽变化,解析 stdout 本质是”逆向工程人类格式”。
- 权限模型太粗——uid/gid 挡不住”误删整个目录”。
- 错误信息是写给人看的——不总是可操作。
- ioctl 逃逸口——“一切皆文件”在这里破功。
今天的生态(MCP、结构化 CLI、沙箱、审批)基本都在补这五条。适配的部分是骨架,不适配的部分是正在长的肉。
9.7 Unix 赌的不是 AI,是”未知”
我们无法预测这些原语会被怎么组合,所以只保证它们可组合。
这在 1970 年代是工程妥协,在 2020 年代成了最稀缺的品质——因为 AI 时代的核心特征恰恰是用途无法预测。
它没有为 AI 设计任何东西;它只是拒绝替未来做决定。
10. Windows 会式微吗
10.1 “式微”的不同层次
- 装机量式微——被替代、被卸载;
- 心智式微——开发者、创业者不再把它当首选;
- 战略中心性式微——它不再是定义时代的那层东西。
判断:第一种几乎不会发生,第二种已经在发生,第三种是它的宿命。
Windows 不会死,它会从”舞台”变成”地板”。
10.2 Windows 的护城河
护城河 | 强度 | 说明 |
企业 IT(AD/Entra、组策略、Intune、合规审计) | ★★★★★ | 迁移不是换系统,是换一整套治理体系 |
x86 应用长尾(三十年兼容) | ★★★★★ | 工业软件、CAD、医疗、财务,很多只有 Windows 版 |
游戏 + 反作弊 + 驱动 | ★★★★ | 唯一还在主动拉新的消费场景 |
OEM 预装与渠道 | ★★★★ | 买电脑就带,用户没有”选择”这个动作 |
Office 的默认绑定 | ★★★ | 云化在削弱它,但企业桌面仍以它为中心 |
这些护城河的共同点:没有一条是”好用”,全是”搬不走”。
这是一个平台进入晚期的典型特征——竞争力从”吸引力”转为”转换成本”。
10.3 不可避免的衰退
- 开发者心智已经搬走了。 新项目默认 Linux 容器、云端 devcontainer、macOS。Windows 靠自己写代码的人,越来越靠 WSL 续命——而 WSL 是微软最诚实的产品:它承认 Linux 才是 agent 的原生环境。
- Agent 的主战场不在桌面。 代码执行、工具调用、长任务编排,默认都跑在 Linux 上。
- 计算重心从”本地 OS”迁往”云端运行时”。 如果主流形态是”轻客户端 + 云端 agent”,OS 的差异化价值会被压到极低——只需提供浏览器、终端、沙箱。
- 微软自己在给它降级。 增长引擎是 Azure、M365、Copilot,不是 Windows。一个公司对自己核心产品的定位变了,产品的命运就定了。
10.4 AI 对 Windows 是双向的
加分:它成了 agent 的”手”。Agent 做 computer-use,必须操作”人真正在用的软件”,而这些大量是 Windows-only(即使 macOS 在这方面远比 Windows 出色)。存量 GUI 越不可替代,它作为”被操作的目标环境”就越有价值。
减分:它成了可被绕过的中间层。如果 agent 直接调 API、跑 CLI、连数据库,那”打开软件点几下”就是最贵、最脆的路径。能被绕开的界面,就会被绕开。
Windows 会因为”不可替代的存量”而活下来,也会因为”可被绕过的中间层”而失去定义权。这两件事同时为真。
10.5 时间尺度
- 5 年内:份额小幅下滑,企业基本盘稳固,开发者心智继续流失,定位收敛为三件事——WSL 宿主、游戏平台、企业终端。
- 10 年内:若 agent 成为主要计算形态,Windows 的”平台税”能力显著下降,变成微软的兼容层——地位类似当年的 IE:还在,还预装,但不再是入口。
- 不会发生:Windows 消失、Linux 桌面翻盘、macOS 统治企业。这三个预言错在同一个地方——低估了”转换成本”这种非技术力量。
10.6 判断 Windows 式微的四个信号
- 新软件是否还”Windows 首发”——一旦变成”Web/Linux 首发、Windows 补票”,拐点就过了;
- 企业是否开始把 Windows 当”浏览器宿主”而非”应用平台”;
- 游戏护城河是否被反作弊之外的因素攻破(Proton 兼容率、Linux 原生);
- 微软是否把 Windows 团队降级为”维护部门”——组织信号永远早于市场信号。
10.7 宿命:基础设施化
Windows 的结局不是诺基亚式的死亡,而是 IBM 大型机式的”基础设施化”:份额还在、利润还在、但叙事权没了。
基础设施化的代价很清晰:你依然无处不在,但你不再定义时代。
11. 结语
把以上内容压缩成一句:
AI 没有发明任何新东西,它只是取消了”人必须学”这个前提—— 门槛消失,价值回归。
软件接口的设计目标,正在从”为平均用户设计”,变成”为人与 agent 两个读者同时设计”。
过去产品经理问:“普通用户能不能不看说明书就用?”
现在要问:“一个没有耐心的、字面理解的、有 token 预算的读者,能不能正确调用它?”
而真正被 AI 干掉的,不是 GUI,是”为了让人少学一点而堆出来的那层复杂度”。
交互设计问题,重新变成了接口设计问题。
end
- 作者:Dale
- 链接:http://www.dalechu.cn/article/renAIssance
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





