Agent:Make CLI Great Again
The body of this note is currently in Chinese.
从 24 年的 Copilot、RAG,到 25 年的 Agent、MCP、Workflow。到 26 年,CLI 命令行界面突然翻红了。为何搞了多年的软件界面图形化,突然要回到“石器时代”的命令行界面。
从 24 年的 Copilot、RAG,到 25 年的 Agent、MCP、Workflow。到 26 年,CLI 命令行界面突然翻红了。为何搞了多年的软件界面图形化,突然要回到“石器时代”的命令行界面。
因为,AI 2.0 时代,软件的主要用户不再是人类。
一、CLI:老古董到新基建
CLI 这次翻红,不是因为人类突然又爱上敲命令了,而是因为 Agent 天然更适合通过 CLI 来调用软件能力。
在 Agent 语境下谈的 CLI,指的是一整套”用结构化的命令和参数来调用软件能力”的方式,API 调用本质上也是这个范畴——传一组参数进去,拿一组结构化结果回来。所以在 Agent 的世界里,CLI 是一个更大的概念,API 是它的子集,或者说 API 是 CLI 精神的一种具体实现形态。理解了这一点,后面的讨论才不会拧巴。
那为什么说 Agent 天然更适合 CLI 这种交互方式?因为 GUI 是给人类设计的,所有的按钮位置、菜单层级、页面跳转,出发点都是人的视觉习惯和操作直觉。相反地,Agent 操作 GUI,本质上是让它”看屏幕→识别元素→模拟点击”。界面改版一次流程就断,弹窗多一个逻辑就卡,一个按钮藏三层菜单里,今天在左上角明天更新跑右下角去了。人类觉得这是”界面升级”,Agent 看来这就是”施工现场”。更别提页面上还有广告、导航栏、动效、评论区这些信息噪音,Agent 得先花一堆算力判断哪些是有用信息、哪些是装修。
CLI 的世界就朴素多了:输入是命令加参数,输出是文本或 JSON,报错走 stderr,成功失败有退出码。Agent”打开 OA 系统找到审批按钮提交请假申请”,它得先理解整个 UI 布局;但你给它一条 oa leave create —type annual —from 2026-04-08 —to 2026-04-09,动作是什么、参数是什么、结果怎么回,清清楚楚。对人类来说这有点硬核,但对 Agent 来说这就是标准化车间。
所以今天 CLI 的角色已经变了。它不再只是程序员提效的老工具,而是正在变成 Agent 调用软件能力的执行层。过去 CLI 服务程序员,今天 CLI 服务 Agent。
这也是为什么飞书、钉钉、Obsidian,还有一堆开源工具和开发平台,最近都在认真做 CLI。它们不是突然怀念 DOS 时代,而是在给未来的”数字员工”修路。因为一旦 Agent 真的开始干活,它就不能永远待在聊天框里。它得能查日历、发消息、改文档、搜知识库、触发审批、跑脚本、管工作流。而这些动作要落地,最合适的不是让它去点界面,而是给它一个可调用、可调试、可审计、可编排的命令接口。
所以,CLI 正在从老古董变成 Agent 时代的新基建。
二、既生瑜何生亮?MCP vs CLI
聊 CLI 就绑不开 MCP。最近很多讨论喜欢把两者搞成擂台赛:“MCP 已死,CLI 永生。“这话听着过瘾,但经不起细想。
MCP 更像一套模型调用工具的标准协议,它关心的是工具怎么描述、怎么暴露、怎么被模型发现、怎么做标准化接入,解决的是”工具怎么接进来”的问题。CLI 更像一个执行层,关心的是命令怎么写、参数怎么传、输出怎么回、失败怎么重试、出了问题人能不能一起排查,解决的是”动作怎么跑起来”的问题。两者分工不同,不是互相替代的关系。而且 MCP server 完全可以把 CLI 命令包装成工具暴露给模型,它们是可以嵌套的。
很多人攻击 MCP,主要抓一个点:工具一多 schema 一长,模型容易被一堆工具描述淹没,token 烧得飞快。这个问题真实存在,但不能无限放大,因为现在主流方向已经不是把所有工具全量灌进上下文,而是按需发现、按需加载。模型先知道有哪些工具大类,真要用的时候再去看具体说明,不用把整本说明书都背下来。
CLI 相对于 MCP 有三个优势:
第一是人机共用。这一点特别关键。Agent 调一个 CLI 命令出了问题,工程师可以直接把那条命令复制到终端里马上复现、排查、修复。但如果 Agent 走的是一层封装很深的协议,中间发生了什么,很多时候人类是摸不着的。CLI 最大的价值之一就是 Agent 能用、人也能用,人类和 AI 共用同一套操作路径、同一套排错路径、同一套自动化资产。这不是小优势,这是工程落地的大优势。
第二是天生支持组合。CLI 天然适合拼流水线:cmd 1 | cmd 2 | cmd 3,拿一个命令的输出直接喂给下一个命令,再过滤、排序、导出。Agent 不只是调一下工具就完事,复杂任务里它需要把多个动作编排成连续流程,CLI 的管道和脚本机制在这方面有天然土壤。当然,真到了复杂状态管理的场景,Agent 更多会在代码层面做编排,管道不是万能的,但作为轻量级组合手段依然很实用。
第三是和现有基础设施天然兼容。现实里大量系统本来就有 shell 脚本、CI/CD 流水线、cron 任务、环境变量、日志、权限体系。CLI 一接进去就能复用几十年的成熟基建,不需要从零搭一套新的。
所以真正合理的理解不是”谁干掉谁”,而是各管一层:API 是底层能力,MCP 是接入协议,CLI 是人机共用的执行界面,GUI 是纯人类界面。四者大概率长期共存。
三、All in CLI 是又一次的 FOMO?
飞书、钉钉在做 CLI,Obsidian 在做 CLI,甚至连剪映都在做。各种开发工具和 Agent 框架也在往 CLI 靠。这背后的逻辑很直白:未来的软件不只服务人类员工,也要服务 AI 员工。一个系统既要能让人点击操作,也要能让 Agent 程序化调用,CLI 正好是连接两边的桥梁。
拿协同办公平台来说,原来消息、文档、表格、审批、日历、任务都散落在不同界面和接口后面。CLI 化之后,这些能力被重新包装成一组组可调用的命令。人继续在界面里办公,Agent 在后台批量跑任务,开发者用脚本做自动化,三者共用一套平台。平台从”人类办公工具”升级成”Agent 可调用的企业操作系统”,这是一次本质的身份转变。
Obsidian 的路数更有意思。它做 CLI 不是为了企业流程,而是要把个人知识库变成 Agent 的外部记忆。原来笔记是人写人看人搜,有了 CLI 后 Agent 也能搜、能写、能追加、能整理。笔记软件从记录工具开始变成 AI 的长期记忆层,谁掌握了 Agent 的长期记忆,谁就更容易留在用户的核心工作流里。
看起来软件 CLI 化全是好处,那风险呢?
有的,而且不小。如果平台只是把能力通过 CLI 开放出来,却没有往上做权限管控、调用审计、工作流治理、企业安全这些事,那最终很可能被上层的超级 Agent”后端化”——用户只记得自己在用某个万能 Agent,根本不知道也不关心底下调的是谁家的办公系统、谁家的知识库。软件商辛辛苦苦开放了 CLI,结果沦为 Agent 的后端供应商,品牌认知归零。
所以 CLI 开放本身不是终局,它只是入场券。真正值钱的是 CLI 之上那一层东西:权限治理、调用审计、企业安全、工作流托管、插件生态、平台计费。短期看做 CLI 是利好,能帮你抢占 Agent 生态入口,让自己成为”最容易被 Agent 调用的软件”。但长期看,能不能从”开放命令”走到”控制工作流”,才决定你吃到的是红利还是残羹。
所以 All in CLI 是不是 FOMO?如果软件商理解的 All in 只是”赶热点地赶紧把命令行工具做出来”,那确实有点 FOMO 的味道,因为光有 CLI 不解决根本问题。但如果把 CLI 当作重新构建软件能力接口的起点,围绕它去做治理、安全、生态,那这就不是 FOMO,而是面向 Agent 时代的一次基础设施升级。
所以,CLI 这次回归不是旧时代的复辟,是软件在 Agent 时代的又一次交互方式的重新分层。未来的软件会同时长出三张脸:GUI 给人看,API/MCP 给系统接,CLI 给 Agent 和开发者共用。Make CLI Great Again 不是一句玩笑话——当 AI 从会聊天走向会干活,CLI 正在重新成为软件世界最重要的执行接口之一。
这一,CLI 告别旧大陆,航向新大陆。