Lazy loaded image
技术分享
Lazy loaded imageAI时代的接口回归
字数 6197阅读时长≈ 16 分钟
2026-10-23
 
由于 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)

三条关键判断:
  1. 文本是唯一”人机双读”的低熵表示。 结构化数据都能投影成文本;像素不能无损投影回结构。这是”文本是模型母语”的真正原因——不是文本高级,而是它是唯一双向可逆的表示。
  1. CLI 是 agent 唯一能”扩展”的接口。 它能写脚本、沉淀自己的工具、造新命令。GUI 只能被使用,不能被 agent 改造。
  1. 准确说法不是”CLI 复兴”,而是:CLI 换了用户——从人换成机器,再从机器回授给人。

6. CLI 的四个真实风险

  1. 上下文熵。 CLI 输出对 agent 是双刃剑,10 万行日志是灾难。会催生”结构化 CLI”(schema + 摘要层),而不是无脑 dump。
  1. 安全。 agent + shell = 最高权限组合。工具输出注入(恶意 README、日志、man page)是全新攻击面。沙箱、审批、审计会从”最佳实践”变成”准入条件”。
  1. 可发现性仍是软肋。 agent 靠 -help 试错,成本是 token 和时间。machine-readable manifest、MCP 这类工具协议,本质都在补这个洞。
  1. 标准碎片化。 各家 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 的局限性

  1. 隐式全局状态(cwd、环境变量、文件描述符)——agent 最难推理”我现在在哪儿、上一句改了什么”。
  1. 文本解析脆弱——ls 输出随 locale、颜色、列宽变化,解析 stdout 本质是”逆向工程人类格式”。
  1. 权限模型太粗——uid/gid 挡不住”误删整个目录”。
  1. 错误信息是写给人看的——不总是可操作。
  1. ioctl 逃逸口——“一切皆文件”在这里破功。
今天的生态(MCP、结构化 CLI、沙箱、审批)基本都在补这五条。适配的部分是骨架,不适配的部分是正在长的肉。

9.7 Unix 赌的不是 AI,是”未知”

我们无法预测这些原语会被怎么组合,所以只保证它们可组合。
这在 1970 年代是工程妥协,在 2020 年代成了最稀缺的品质——因为 AI 时代的核心特征恰恰是用途无法预测。
它没有为 AI 设计任何东西;它只是拒绝替未来做决定。

10. Windows 会式微吗

10.1 “式微”的不同层次

  1. 装机量式微——被替代、被卸载;
  1. 心智式微——开发者、创业者不再把它当首选;
  1. 战略中心性式微——它不再是定义时代的那层东西。
判断:第一种几乎不会发生,第二种已经在发生,第三种是它的宿命。
Windows 不会死,它会从”舞台”变成”地板”。

10.2 Windows 的护城河

护城河
强度
说明
企业 IT(AD/Entra、组策略、Intune、合规审计)
★★★★★
迁移不是换系统,是换一整套治理体系
x86 应用长尾(三十年兼容)
★★★★★
工业软件、CAD、医疗、财务,很多只有 Windows 版
游戏 + 反作弊 + 驱动
★★★★
唯一还在主动拉新的消费场景
OEM 预装与渠道
★★★★
买电脑就带,用户没有”选择”这个动作
Office 的默认绑定
★★★
云化在削弱它,但企业桌面仍以它为中心
这些护城河的共同点:没有一条是”好用”,全是”搬不走”。
这是一个平台进入晚期的典型特征——竞争力从”吸引力”转为”转换成本”。

10.3 不可避免的衰退

  1. 开发者心智已经搬走了。 新项目默认 Linux 容器、云端 devcontainer、macOS。Windows 靠自己写代码的人,越来越靠 WSL 续命——而 WSL 是微软最诚实的产品:它承认 Linux 才是 agent 的原生环境。
  1. Agent 的主战场不在桌面。 代码执行、工具调用、长任务编排,默认都跑在 Linux 上。
  1. 计算重心从”本地 OS”迁往”云端运行时”。 如果主流形态是”轻客户端 + 云端 agent”,OS 的差异化价值会被压到极低——只需提供浏览器、终端、沙箱。
  1. 微软自己在给它降级。 增长引擎是 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 式微的四个信号

  1. 新软件是否还”Windows 首发”——一旦变成”Web/Linux 首发、Windows 补票”,拐点就过了;
  1. 企业是否开始把 Windows 当”浏览器宿主”而非”应用平台”;
  1. 游戏护城河是否被反作弊之外的因素攻破(Proton 兼容率、Linux 原生);
  1. 微软是否把 Windows 团队降级为”维护部门”——组织信号永远早于市场信号。

10.7 宿命:基础设施化

Windows 的结局不是诺基亚式的死亡,而是 IBM 大型机式的”基础设施化”:份额还在、利润还在、但叙事权没了。
基础设施化的代价很清晰:你依然无处不在,但你不再定义时代。

11. 结语

把以上内容压缩成一句:
AI 没有发明任何新东西,它只是取消了”人必须学”这个前提—— 门槛消失,价值回归。
软件接口的设计目标,正在从”为平均用户设计”,变成”为人与 agent 两个读者同时设计”。
过去产品经理问:“普通用户能不能不看说明书就用?” 现在要问:“一个没有耐心的、字面理解的、有 token 预算的读者,能不能正确调用它?”
而真正被 AI 干掉的,不是 GUI,是”为了让人少学一点而堆出来的那层复杂度”。
交互设计问题,重新变成了接口设计问题。
 
 
end

上一篇
支持 Dale ^_^
下一篇
关于最近的人生

评论
Loading...