扫码打开虎嗅APP
本文来自微信公众号: 硅基立场 ,作者:骆轶航,原文标题:《CLI 之后,人类与 AI 将相忘于江湖》
它是最后一种人类和机器都能使用、都能读懂的界面形态。
1992年,夏天。我妈给还是小学生的我报了一个暑期电脑班。
我就是那会儿,在位于交道口的北京市东城区第二十二中学的崭新机房里,第一次接触到电脑这个东西的。当时进机房要套鞋套,因为电脑怕灰。
20多个差不多大的小孩排排坐,面前是一台台苹果机——绿色字符在黑屏上闪烁的那种。
我们学的是Logo语言。屏幕中央有一只小海龟,你敲一行命令,它就动一步。FORWARD 100,海龟往前走一百步,画出一条线。RIGHT 90,海龟就右转90度。把这两步重复四次,屏幕上就出现一个正方形。
这是我人生中第一次体验到一种特殊的交互:你用文字告诉一个东西该怎么做,它立刻照做,你看着结果,决定下一步。
你还可以把"画正方形"存成一个新命令叫"SQUARE",之后只要敲"SQUARE",海龟就会自动画一个正方形。然后你可以用SQUARE组合出更复杂的图形。
33年后,2025年10月,人到中年的我,坐在电脑前,对着打开的Claude Code敲下一行字:重构这个网页的UI。屏幕上开始滚动一行行命令——它读取文件、分析结构、修改代码、运行测试。
我看着它的每一步操作,在关键节点决定让不让它继续。
记忆秒回到那个在蝉鸣、假山、水池围绕,位于教学楼五层的开着空调的电脑房。作为文科生,我已经那么多年没亲自看着命令行在我的眼前这么跑了。
一个小学生指挥一只海龟画画。一个人指挥一个AI agent写代码,中间隔了33年,但交互结构是一样:人类用命令表达意图,机器实时执行并展示过程,人类根据结果调整方向。
这个交互结构有一个名字。它叫命令行界面,Command Line Interface,就是最近颇为流行的CLI。
CLI拥有一颗老灵魂,它在计算机交互界面的历史中已存在了60多年,在我的个人生命中已存在了34年。而今天,它宛若婴儿。
很多人对命令行的印象停留在黑客电影——黑屏绿字飞速滚动,键盘啪啪作响,然后一句I'm in。
这个印象不能说错,但它遮蔽了一个更基本的事实:CLI首先是一种用户界面。跟你手机上的触屏、电脑上的图形桌面一样,它是人和计算机之间的一层翻译。
区别在于:图形界面用图标和鼠标翻译,而命令行用文字和键盘翻译。

但"用文字操作电脑"只是表面。真正让CLI在AI时代重新变得重要的,是它的三个结构性特征——
可组合性。在Unix/Linux系统里,每个命令都是一块积木:一块搜索文本,一块排序,一块计数,一块筛选。这些积木可以拼在一起:搜索的结果交给排序,排序的结果交给计数,一行命令完成一个复杂任务。在图形界面里,你能做的事是设计师预先规划好的。而在命令行里,你能做的事是无限的,只要你会拼积木。
可编程性。就像Logo里把"画正方形"存成SQUARE一样,命令行操作天然可以被记录、封装、复用。你今天手动敲的十行命令,明天变成一个脚本自动运行。命令行就是自动化的入口——任何你能手动完成的事,都可以变成机器自动完成的事。
文本即协议。命令行世界里一切都是文本。输入是文本,输出是文本,工具与工具之间传递的也是文本。这看起来是限制,其实是一种极强的统一性——任何工具,只要能读入文本、吐出文本,就能跟任何其他工具协作。不需要提前约定数据格式,不需要专门的对接开发。文本就是通用语言,是最大公约数的协议。
CLI不是什么"更极客的操作方式",它是一种人机交互哲学:你不是在使用一个被预先设计好的系统,而是在跟一套开放的工具集对话,并且可以随时重新组合它们来解决新问题。
可以这么说,当人们的默认设置是使用既有的架构、软件和工具完成某项任务的时候,GUI(图形交互界面)是更合适的选项,人们不必给自己找麻烦。
而当人们需要与计算机进行开放式的协作、创造并接受过程的不确定性的时候,CLI是那个最合适的界面,它的想象力和执行力没有什么边界。
不难判断,人与Agent的协作属于哪一种。
所有的计算机界面设计,背后都隐藏着一套权力秩序:是人迁就机器的认知,还是机器迁就人的习惯。前者指向了CLI,后者指向了GUI。
而你惊奇地发现,这是一个钟摆。
在1961年"分时系统"诞生前,人与机器——更多的是传统的物理计算机而非电子计算机——互动是缺乏实时性的。
人们用打孔机和批处理电传打字机处理庞大运算,而打孔卡和纸带就是物理化的比特——你能看见它、摸到它。纸带上的孔洞排列就是程序的视觉呈现。操作员看着一叠卡片的厚度,就大概知道程序有多长;看着孔的位置,就知道数据是什么。
这就是物理计算机时代的GUI图形界面——信息被编码在物理空间里,变成人类可以用视觉和空间直觉理解的东西。
到了1961年,MIT的CTSS(兼容分时系统)让人与计算机的交流变得实时可交互。整个1960-1970年代,计算机都是通过命令行操作的。
1970年代Unix操作系统在贝尔实验室诞生,C语言被发明,Unix被重写后,命令行工具变得更加可移植、组合和扩展。
这个阶段,CLI是唯一的界面。所有人——工程师、科学家、早期的商业用户——都必须用机器的语言跟机器说话。没有别的选择。
就在CLI逐渐大行其道的1960年代末,属于电子计算机的GUI开始萌芽:鼠标、超文本链接、多窗口和视频会议等概念诞生。
1973年施乐实验室(Xerox PARC)造出了第一台具有图形操作系统的计算机——Alto。乔布斯在1979年看到它的时候说:"我觉得这是我一生中见过的最好的东西"。
之后就是大家熟悉的故事了:1984年,苹果发布Macintosh,1985年Windows 1.0发布,自此GUI个人电脑开始普及,CLI使用显著下降。到了1995年的Windows 95,GUI基本完成了对消费级计算的统治。
而又是在CLI式微,GUI兴起的1990年代初,Linux的发布给了Unix时代的shell和命令行工具创造了新平台,保存并重新点燃了人们对终端计算的兴趣。
而随着互联网的发展,云计算平台诞生并逐渐强大,CLI工具在云计算和自动化领域重新获得重要地位。2010年代,Git、Docker和Kubernetes,整个云原生基础设施,都建立在命令行之上。
2022年,人类猝不及防地跨入了生成式人工智能时代,AI的自动化和组合性需求催生了无处不在的Agent,CLI再度成为赋予人们探索AI能力的自由度最适合的界面。
整个计算机的历史,就是GUI和CLI钟摆式切换,定义着人机交互方式的历史,这真是太美妙了。
GUI是机器向人类的妥协,把"删除文件"变成一个回收站图标,把"存储层级"变成一个个文件夹,把"关闭进程"变成窗口右上角的那个×。
这些空间隐喻极其成功,让全人类,包括不懂任何技术的人,都能使用计算机。从Macintosh到Windows再到iPhone,每一次GUI的进化都是机器更努力地把自己翻译成人类的直觉。
而CLI则是人类向机器的弯腰,学会一套严格的语法,记住指令和参数,理解输入输出的规则。
find.-mtime-1-type f这些字符,比用鼠标打开文件目录,搜索最近24小时修改过的文件要抽象得多。这是人类把自己的意图压缩成机器能无歧义解析的格式,换来精确性、组合性和自动化能力。
而你越迁就机器的理解能力,机器给你的自由度越大,而这正是让AI Agent更好为人类工作的方式。
CLI绝不是GUI的落后版本,而是光谱上的另一个位置。现在,钟摆的投影又回来了。
回到1992年夏天,我那无忧无虑,第一次打开苹果机,学习Logo语言的童年。
Logo值得重新审视,不是因为它是一种好的编程语言——以今天的标准看它极其简陋。而是因为它在30多年前就展示了一种人机协作模型,而这个模型恰好就是今天Agent时代的核心交互范式。
你对海龟说FORWARD 100,海龟画一条线。你觉得方向不对,说RIGHT 45。海龟调整了角度。你说FORWARD 50,海龟再画一条线。你对结果满意了,把这几步存成一个新命令,下次直接调用。
Claude Code也是这样。你说"重构这个模块"。Agent分析代码结构,提出方案。你说"别动这个文件,换个思路"。Agent调整方向,生成新的修改。你检查改动,说"可以,继续"。Agent执行下一步。你把刚才的过程,生成了一个Skill。
它们看上去一模一样,但有一个关键区别。Logo的海龟只会严格执行你的命令——走一百步就走一百步,多一步都不会。Claude Code不一样。你说"重构这个模块",它需要自己理解什么叫重构,自己决定从哪里开始、怎么拆分、先改哪个文件。
海龟没有判断力,所以不会犯错。Agent有判断力,所以会犯错。
这就是CLI在Agent时代最重要的价值。不是效率,不是可编程性,这是它过去就具备的。CLI在这个时代新的价值,是透明性。
如果一个Agent只会逐字执行你的指令,你不需要监督它——就像你不需要监督Logo语言下的那只海龟。但今天的AI agent有自主判断能力,它会自己决定下一步做什么。
这意味着你必须能看到它在做什么。
而命令行,也就是CLI,是唯一对人类和Agent同时透明的界面。
对人类而言,Agent的每一步操作——读了什么文件、改了哪行代码、跑了什么测试、拿到什么结果,都以文本形式实时滚动在屏幕上。你不用等它做完再看报告,任何一步都可以喊停、提问、纠正。
对Agent来说:CLI是它的母语。大语言模型的底层能力就是处理文本——理解文本输入,生成文本输出。在命令行里,Agent读文件、写代码、跑命令、分析日志,全是文本操作,全是它最擅长的事。它不需要模拟鼠标点击,不需要识别图标位置,不需要理解空间布局。
这就是Anthropic把Claude Code做成命令行工具的原因。不是因为工程师偏爱终端的审美——而是因为命令行提供了一种双向透明:人类看得懂Agent在干什么,Agent也能无障碍地执行任务。
命令行是一间透明的房间。人和Agent都在里面,都能看到对方在做什么。而GUI做不到——你没法让Agent在可视化界面里拖拽图标,同时让人类实时理解它的意图。API也做不到——它高效但对人类不透明,你看不到过程,只能看到结果。
在AI agent刚刚开始进入人类工作流的今天,这种人与Agent能共享的透明化机制,对两边都好。
但透明的房间不会永远被需要。
AI agent帮你工作了一年,处理了成百上千个任务而极少犯错,你开始跳过逐行检查,开始说"直接做吧,做完告诉我"。从盯着屏幕看每一步,到扫一眼结果就行,再到不用看了我信你。
今天已经有开发者在Claude Code里输入需求,然后去倒杯咖啡,回来看结果就好。Agent的执行过程正在从前台退到后台,从实时观测变成异步回顾,从逐步审批变成事后抽查。
那么,当人类退出这间透明的房间之后,机器之间会说什么语言?
简单回答是API。但这个回答可能太简单了。
API的本质是人类预先定义好的契约——你能调用什么、传什么参数、返回什么格式,全是工程师事先设计好的。它是一本菜单,你只能点菜单上的菜。对今天的软件系统来说够了。对有自主判断力的Agent来说,这是不够的。
变化已经在发生。MCP(Model Context Protocol,模型上下文协议)是一个新方向——它不只是让Agent调用固定函数,而是让Agent自己发现有什么工具可用、理解每个工具的能力、然后自行决定怎么组合。
但这不是终局,其实也很容易被跳过。再往前一步。当Agent不只是跟工具对话,而是跟其他Agent对话呢?
两个Agent协作完成一个任务,传递的不只是数据——还有意图、上下文、不确定性、优先级和对风险的评估。
这些东西塞不进一个固定的数据格式。它们之间的通信更像一种协商:我有这些信息,我的判断是这样,你那边什么情况,我们怎么分工。
这就是传说中的A2A协议。
我觉得,A2A更像是机器之间的"自然语言",而不是人类可以理解和编译的语言。它是机器演化的、适合机器认知方式的语言。结构化但不刚性,有语义理解能力,能处理模糊性和上下文变化。
想想看,如果两个Agent之间最高效的通信方式是直接交换某种压缩的语义表示——高维向量空间里的一组信号——那它们的"语言"将不再是任何人类能读懂的符号系统。不是文字,不是代码,不是JSON,而是某种诞生于机器认知空间内部的表达方式。
相信我,那一天会来到的。我们终将有一天退出它们的对话。
而CLI,是我们与它们最后的一道沟通屏障,和接头的暗号。
我们也不会看到GUI-CLI-GUI-CLI的钟摆再一次摆回到GUI的一侧,因为这本是计算机历史和人机交互的一部分。接下来,人机不会再交互了。
回头看界面演化的历史,线索很清楚。
最早,人类学机器的语言——打孔卡、汇编、命令行。然后机器开始学人类的语言——图形界面、触屏、语音助手。再然后,机器跟机器之间发展出了自己的通信方式——API、数据库协议、微服务架构。每一步,人和机器之间的"共同语言"都在缩小。
CLI是这条线上的一个特殊节点。它是最后一种人类和机器都能使用、都能读懂的界面形态。
在它之前,人类不得不完全用机器的语言说话。在它之后,图形界面让人类可以用自己的直觉操作机器,API让机器绕过人类直接对话。CLI刚好卡在中间——人类妥协了,机器的输出人类勉强还能读懂。
Agent的到来,有可能彻底消解这个延续了半个世纪的妥协。人类用自然语言说话,Agent用自己演化出的方式跟工具和其他Agent通信,大语言模型在中间做翻译。没有人需要再说对方的语言。
也没有人还能看到房间里发生了什么。
而我们今天热衷于复兴的,是人类和机器最后一种共同语言。