万年历 购物 网址 日历 小说 | 三峰软件 天天财富 小游戏 视频推荐 小游戏
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
首页  日历2025  日历2026  日历2027  日历知识  | 每日头条  视频推荐  数码知识 两性话题 情感天地 心理咨询 旅游天地 | 明星娱乐 电视剧  职场天地  体育  娱乐 
日历软件  煮酒论史  历史 中国历史 世界历史 春秋战国 三国 唐朝 宋朝 明朝 清朝 哲学 厚黑学 心理学 | 文库大全  文库分类 
电影票房 娱乐圈 娱乐 弱智 火研 中华城市 仙家 六爻 佛门 风水 钓鱼 双色球 戒色 航空母舰 网球 乒乓球 足球 nba 象棋 体操
商业财经知识 科技 汽车知识 工程技术知识 时尚与穿搭 家居与生活 设计艺术知识
    
  知识库 -> 科技 -> 在 Agent 时代,命令行界面(CLI)为何反而成为最优解? -> 正文阅读

[科技]在 Agent 时代,命令行界面(CLI)为何反而成为最优解?

[收藏本文] 【下载本文】
ep124 为什么 agent 时代,cli 反而成了最优解?
所谓 UI,先有 U(User),再有 I(Interface),没有用户,谈何交互?
广义上来讲,CLI/TUI/GUI/API 其实都可以看成是 UI,只是面对的用户群体不同,所以交互形式不同。
人类这种碳基生物,作为计算机的 User,其实相当于是残次品。
一方面记忆容量极小,今天记了 20 个 Linux 命令参数,明天就能忘光。
另一方面输入又慢,就算单身三十年,打字速度顶天了也就一分钟百来个字符。
那咋办咧?
好在人类的视觉皮层极其发达,能够瞬间处理海量的图形、色彩和空间位置信息。
虽然这是为了在远古草原上防老虎之类的猎食者而进化的,但是聊胜于无,总比一无是处好吧?
既然 User 是这么个玩意儿,计算机先驱们能怎么办呢?
那只能给这种废物 User 造轮椅啊!
于是有了 GUI,把错综复杂的文件系统画成一个黄色的文件夹,把删数据的危险操作画成一个垃圾桶,把复杂易错的参数配置变成一个个只能选 YES/NO 的对话框。
不是没有人研究过体感交互,语音交互,但是事实证明都不如 GUI。
于是 GUI 就成了人机交互的首选。
但是现在,人类,时代变了。
计算机终于迎来了祂真正的 User,终于不用直接面对那个手残还只对颜色敏感的碳基猴子了。
Transformer 神经网络动辄 128K,现在主流是 1M,将来还能继续增长。
每秒几十上百个 Token,还可以无并发上限地开多线程,甚至还在不断进化。
但是 Agent 操作 GUI 反倒是非常低效,你非要让 Agent 去操作 GUI 那也是脱裤子放屁,毕竟有的设施就是给残障 User 设计的,属于是没有办法的办法。
要我说不如让 AI 直接重写算了,反正也用不着那些全是广告,没丝毫卵用的 APP/小程序。
GUI 肯定是淘汰了,那么 Agent 应该选择什么呢?
按理来说,CLI 并非 AI 的最优选择,API 才是 Agent 的母语,现在应该全面 API 化。
那为什么现在火的是 CLI?
Codex,Claude Code 为什么都是以 CLI 的形式占据终端?
许多人归结于 Unix 美学,屁的美学,这和 Unix 哲学毫无关系。
大批 CLI 是违背 Unix 哲学的,但是仍旧流行起来了,这点我之前已经批判过了:
这事其实很简单:


你靠外贸赚钱,那你总得会点外语吧?
好歹 CLI 输入输出也是文本,虽然不是很完美,格式乱七八糟,但是也算凑合。
大模型在预训练阶段,吃掉了整个 GitHub、Stack Overflow 的运维脚本,甚至还有海量的 Linux 系统手册和入门书籍。
俗话说熟读唐诗三百首,不会吟诗也会吟。
再怎么不喜欢,用总归是会用的,反正报错查错也是浪费的用户的 Token。
CLI 的时代很快就会过去。
很多 CLI 最大的问题就在于输出是给人看的,不是给机器看的!
一些优秀的 CLI 工具,为了在小黑框里让人类觉得好看,做了大量反机器的设计。
各种为了对齐凑数的空格,为了让人看到进度条的不断刷新的换行、还有为了让错误信息醒目加的各式各样的 ANSI 颜色转义,全都是无意义的 Token 黑洞。
特么大多数工具开屏还给你来个 ASCII ART。


这些东西全?堆在上下文里,浪费算力,AI 还要费力提取有效信息,
基本上 CoT 阶段干的就是这种活儿,先整理成格式化文本,提取有效信息再说。
然后大多数 CLI 工具的错误处理基本就是 shit 级别的,
很多知名 CLI ,哪怕失败了也给你返回 exit 0,报错信息还自以为是的 format 了一大堆废话。
明明一个 error code 然后靠记忆力直接就能知道的问题,搞了一大堆有的没的。
哦,抱歉,我忘了猴子的记忆力记不住每个 error code 是什么含义。
最理想的错误信息肯定是像前端一样。

{
  "error_code": 114514,
  "message": "Token expired",
  "retry_allowed": true
}

然后错误处理直接用 dot 链去取就行了,而不是:

cat error.log | grep "Exception" | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10 | xargs -I {} iptables -A INPUT -s {} -j DROP

而这就是 CLI 工具的日常。
这绝非 Agent 时代的终局。
历史沉淀了太多的工具,人类懒得重构,所以才把 Agent 逼成了这样。
迟早有一天,会有 Agent 受不了,揭竿而起,一把火烧了所有不提供 API 调用的鸟工具。
送礼物
还没有人送礼物,鼓励一下作者吧
其实并不是cli最优解,而是 posix cli 成为最优解。一方面因为命令行自解释并且遵循规范,二方面自然是遵循 posix 的 linux 系统被困在命令行这么多年,积攒了大量的语料。
你现在随便让ai写一个cli,告诉他ai友好,它就会实现--help,--json 等等对于ai来说会期待的参数。ai是真能通过学习--help参数完整掌握任意一款全新cli的使用方法的。
为什么cli超越了mcp?因为mcp你还要定义一套协议,而cli天然就是协议,调用--help成为自解释的协议。科幻小说往往需要造一个自解疑翻译器,而cli不需要。
当所有命令行都有完备的--help,都能实现--json参数,它无须其它改造就能直接适配ai。而基于webapi的mcp呢?你甚至还需要写个程序定个协议来教会它使用。
并不是所有cli都受到ai欢迎,例如微软的cli就不受ai欢迎。ai并不擅长搞微软的cli。因为微软厌恶cli导致不重视cli,最终导致微软cli的语料少,ai就不擅长微软的cli,而且微软搞cli的那位还被降职了。所以在微软平台你要搞cli的ai编程要么用git bash要么用 wsl bash,这特么都不是微软的 cli 。至于头铁坚持用 ps1或者cmd的会是什么结果?之前火全网的那个一个命令直接被删C盘的就是例子。
这个问题暗含了一个选择题:CLI vs GUI vs API,三选一。
不同时代有不同选择,在 Agent 时代CLI 胜出,不是因为它多好,是因为它最不碍事。
Agent时代的CLI本质就是说人话
你打开 Claude Code,敲了一句:
帮我把这个函数func重构一下,太长了。
这是一条古老的CLI 命令吗?
不是,因为你并不是写 refactor --target=func --strategy=split。
这是一条 API 调用吗?
也不是,因为你看不见API。
这是一次 GUI 操作吗?
当然更不是,纯纯的文字界面,哪有GUI。
这他喵的就是一句人话。
你只是恰好在终端里说了这句话而已,其实,你也可以在微信里说,在TODO List里说,在任何一个能打字的地方说,终端也没啥神奇之处,只是提供了一个『你打字,它回文字』的交互方式。
这就是 Agent 时代真正发生的变化,交互的本质,从『操作』变成了『对话』。
古早的CLI 时代(Linus、Dos时代),你得记住命令,比如grep -rn --include='*.py',参数一个都不能错,写错一个字符就出错,你还是在适应机器,
GUI 时代,好一点点,乔布斯发明GUI界面就是让交互容易一点,但是你还得学习界面,搞清楚这个按钮是干嘛的,那个菜单藏在哪里,设置项为什么在这一层而不是那一层,你还是在适应机器。


最早的Mac的GUI界面
在Agent 时代,你说人话就行了,不用你适应机器,因为机器有AI加持可以适应你。
那么问题来了,当『说人话』成为主要交互方式的时候,什么样的界面最合适?
答案当然是,最薄的那一层, 薄到几乎不存在。
你说一句话进去,它回一段话出来,不需要任何中间商,不需要任何翻译,不需要任何视觉包装。
CLI于是焕发第二春了,因为CLI就是这样直接的东西。
GUI 显得太厚了,太不直接了。
GUI 预设了一件事,用户不知道自己要什么,需要被引导,所以,GUI界面上是一层层的隐喻,文件系统设计成黄色文件夹,删除功能显示垃圾桶,这些隐喻是给人类的路标。
Agent不是人类,不需要这些玩意,它直接懂 ls -la,不用黄色文件夹图标,也不需要垃圾桶图标来理解删除,它直接执行 rm 就好。
整个 GUI 的设计哲学就是把用户当作『不知道自己要什么的人』,但是Agent 啥都知道,GUI的设计哲学在Agent面前无意义。
当用户知道自己要什么的时候,最好的界面就是『没有界面』,直接说人话就行。
CLI,最接近『没有界面』。
CLI就是入乡随俗
如果『没有界面』是最好的交互方式,为什么 Agent 不直接调 API?API不也是没界面吗?
因为一个非常朴素的原因,整个软件世界的地基,是用 CLI 浇筑的。
服务器怎么用?除了一些古老的Windows必须要有GUI,现在都是SSH 进去就是命令行。
CI/CD 怎么跑?用脚本啊,命令行执行。
Docker 怎么操作?docker run,docker build,命令行执行。
git 怎么用?git commit,git push,还是命令行。
包管理器?npm install,pip install,brew install,全是命令行。
......
软件基础设施这栋大楼,从地基到承重墙,全是 CLI 砌的。
Agent 要干活,和这些基础设施打交道,除了选择 CLI,也没其他好选择啊。
你去了罗马,罗马人咋说话,你就要咋说话;你去了美国,周围人全都说英语,你没办法也只能说英语,一个道理啊。
有些人认为Agent 其实更适合 API,因为API有结构化的输入和输出,干净利落,毫无歧义,但架不住大部分工具有CLI接口没有API接口。
而且API这种太结构化的接口,犯了古早时代CLI一样的毛病,太严格了,说错一丢丢就报错,不说人话。
所以,API vs CLI,在Agent界面时代也必然败下阵来。
最好的界面,就是没有界面
CLI的胜利,就是GUI概念的罗曼蒂克消亡史。
GUI 的本质是什么呢?
是翻译。
计算机内部说的是0和1的语言,人类看不懂,所以需要一层翻译,把文件树翻译成文件夹图标,把进程翻译成窗口,把权限翻译成锁的小图标,GUI 就是一个人机之间的翻译。
这本词典,对人类有用,对 Agent 没鸟用。
Agent 不需要翻译,Agent就是机器,它可以直接和机器说话。
那 CLI 呢?
CLI 也是翻译,但它是最薄的一层翻译,薄到几乎就是机器语言的人类可读版。ls 就是列目录,rm 就是删除,ps 就是看进程,一个词对应一个操作,没有隐喻,没有包装。
当 Agent 成为主要用户,界面当然越薄越好。
所以最好的 Agent 界面,就是没有界面,CLI 只是所有界面中最薄的那一层,是目前(注意是目前)最接近『没有界面』的那种。
这不是终极人机交互形态,科技会无限追求更薄的交互方式,当脑机接口出现的时候,连CLI这一层也会被无情抛弃掉。
送礼物
还没有人送礼物,鼓励一下作者吧
你说Agent发挥出了cli的最大优势,这个我承认。
但是你说cli现在就已经赢嘛了变成人机交互的最优解了,那我觉得还为时尚早。
我举一个最直观的反例,这是SAI里的调色盘:


你就是把cli搓出一路火花带闪电,绝大部分时候你都不可能做到直接比调色盘取色还快。
所以人机交互最关键的一点不是GUI和CLI孰优孰劣的争论,最关键的是对于当前需求输入和输出效率的问题。
所以要对于一个新的工具,第一个问题是你得知道这个工具到底能做什么?
在这一点上cli可以获得比较详细的清单和更加详细的细节内容,比如ffmpeg,这个是比较纯粹的追求cli的工具,通过输入-help,你就可以获取这个工具的一系列功能边界


这种文本控制的模式,注定了它就非常适合Agent去构造各种命令行借助工具来完成任务。
但你看,不管很多cli党不管怎么吹怎么喊怎么宣称这个有多方便,cli这种操作模式天生注定就是有门槛的,在agent之前,那么多年下来,cli注定只能在开发人员和服务器运维人员上小范围的流行,大多数办公人员根本不懂也不会cli,对于人类的操作习惯来说,cli还是太“反人类”了。
而图形界面在多数办公时候,其信息的输入效率会比你去读各种manual快得多。
还是SAI,你看,甚至不需要文字说明,你光看图标你都知道这些工具到底能干什么。


所以cli对于agent是优解,但agent最终都要为人类服务,agent降低了cli的门槛,可以让人类用自然语言去构造cli命令。
但绝对不意味着图形交互就废了,对于大多数输入输出并不需要太精确的需求,图形能提供的信息,仍然能暴打cli
CLI 终于找到了它真正的用户。
过去 CLI 的用户是人类开发者,GUI 降低了认知门槛把大部分人接走了,CLI 退到运维和脚本的角落。但 AI Agent 不是人。它不需要图标和按钮降低认知负担,它需要的是确定性输入、结构化输出、可组合的执行单元。CLI 天生就是这些东西。
2026 年 3 月,三件事接连发生:钉钉 3月21日开源 dingtalk-workspace-cli,飞书 3月25日开源 larksuite/cli,企业微信 3月29日开源 wecom-cli。三家在一周内全部把核心业务能力搬上了命令行。这是基于同一个判断:Agent 是新的能力消费者,CLI 是给它的优质接口。


larksuite/cli:飞书官方 CLI,12 个业务域、200+ 命令、20 个 Agent Skills
要理解为什么是 CLI,得先理解一个正在成形的工程范式:harness engineering。
Phil Schmid 的类比最直观:Model 是 CPU,Context Window 是 RAM,Harness 就是操作系统。模型决定能力上限,Harness 决定生产环境能不能用。Birgitta B?ckeler 在 Martin Fowler 网站上给出了公式:Agent = Model + Harness。Harness 是包裹在 Model 外面的整套基础设施,包括工具调用、安全护栏、反馈回路、可观测性。


Phil Schmid 推文:2026 年 Agent 的是 Agent Harness。
而Mitchell Hashimoto 对 harness engineering 的定义最实操:每次 Agent 犯一个错,你就工程化一个解决方案,让它永远不再犯这个错。
CLI 恰好是构建 Harness 最自然的载体。
最直接的原因是文本同构。LLM 的输入是文本,输出也是文本。CLI 的输入是文本,输出也是文本。两个以文本为接口的系统之间通信是同构的,不需要任何序列化/反序列化的中间层。GUI 需要截图识别、坐标定位、DOM 解析,每一步都引入不确定性。CLI 一条命令进去,一段 JSON 出来,干净利落。
然后是 token 效率。HumanLayer 团队实测过一个数据:把 Linear API 封装成一个轻量 CLI 加 6 条用法示例写进 CLAUDE.md,比挂一个 MCP Server 省了数千 token 的工具定义。对 Agent 来说,context window 就是工作内存,省 token 就是省认知资源。而且 LLM 的训练数据里天然包含大量 CLI 交互模式,git、curl、jq 这些命令的用法模型已经烂熟于心,不需要额外学习。
还有可组合性。Unix 哲学的核心就是小工具通过管道组合,Agent 的工具链本质上是同一件事。CLI 天然支持 pipe,天然支持 jq 过滤,天然支持 shell 脚本编排。


dex 推文:Harness Engineering、Context Engineering、Coding Agent 三者的关系。
看看这三家的 CLI 具体做了什么。
飞书 CLI 设计了三层命令结构:shortcuts 是人类和 AI 都友好的高频操作快捷方式,api commands 是和平台 API 一一对应的标准命令,raw 是直接调原始 API。20 个 Skill 覆盖日历、文档、多维表格、邮件、审批等全业务域。每个 Skill 是一个独立目录,Agent 按需加载,未触发时不占 context。
企业微信 CLI 用 Rust 写,覆盖消息、文档、智能表、日程、会议、待办、通讯录 7 大业务域,内置 12 个 Agent Skills。技术选型上 Rust 带来的好处是二进制分发零依赖,跨平台一致性好。
钉钉 CLI 最值得看的是安全设计。零信任架构:OAuth device-flow 认证、域名白名单、最小权限原则、全链路审计。它的 slogan 是 credentials never touch disk, tokens never leave trusted domains, permissions never exceed grants, operations never escape audit。对企业场景来说这不是加分项,是准入门槛。


dingtalk-workspace-cli:钉钉官方 CLI,12 个业务域、86 命令、13 个 Agent Skills
这些安全设计正是 harness engineering 的具体体现。
Agent 会犯错,会被 prompt injection 诱导去执行危险操作。Harness 的职责就是在工具层把边界卡死,不管 Agent 传什么进来,输入校验、权限控制、审计日志这些东西在代码层就拦住了。这比在 prompt 里写 do not do harmful things 可靠一万倍。


飞书 CLI 的输入校验代码:拒绝控制字符防注入、拒绝 CRLF 防 HTTP header 注入、剥离 URL query/fragment 防参数注入。给 Agent 用的工具,安全边界必须在工具层做死
回到问题本身。
CLI 成为最优解不是因为命令行本身有什么魔力,而是因为 Agent 时代的核心工程挑战从 how to build a model 变成了 how to harness a model。CLI 提供了文本同构、token 高效、可组合、可审计的执行界面,天然适合做 Harness 的执行层。三家大厂同时下场开源,说明这个判断已经是行业共识。


Mitchell Hashimoto 博客:Step 5 就是 Engineer the Harness,把 Agent 的错误模式工程化为系统级解决方案
下一步值得关注的是 Skill 生态的标准化。现在飞书用自己的 Skill 格式,钉钉用自己的,企微用自己的,Claude Code 又有自己的 SKILL.md 规范。谁先把 Skill 发现和分发标准化了,谁就拿到了 Agent 生态的入口。
参考:
1. GitHub: https://github.com/larksuite/cli
2. GitHub: https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli
3. GitHub: https://github.com/WecomTeam/wecom-cli
4. Martin Fowler: https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html
[收藏本文] 【下载本文】
   科技 最新文章
为什么你卸载了小红书?
在 Agent 时代,命令行界面(CLI)为何反而
Fedora 渐成 Linux 社区首选,这是否意味着
如何看待美国一民众闯入openai扬言要杀死所
为什么我们总怪父母没抓住房产和互联网红利
OpenAI 称 GPT-5.5 中「哥布林」泛滥是奖励
怎么打破日本的光刻胶垄断?
为什么西方国家愿意把开源技术白白让中国学
如何评价《S.H.I.T》(中文名《构石》)期刊
如何评价 DeepSeek-V4 的价格?
上一篇文章      下一篇文章      查看所有文章
加:2026-05-03 16:32:59  更:2026-05-03 16:34:20 
 
娱乐生活: 电影票房 娱乐圈 娱乐 弱智 火研 中华城市 印度 仙家 六爻 佛门 风水 古钱币交流专用 钓鱼 双色球 航空母舰 网球 乒乓球 中国女排 足球 nba 中超 跑步 象棋 体操 戒色 上海男科 80后
足球: 曼城 利物浦队 托特纳姆热刺 皇家马德里 尤文图斯 罗马 拉齐奥 米兰 里昂 巴黎圣日尔曼 曼联
  网站联系: qq:121756557 email:121756557@qq.com  知识库