最近AI Agent圈子又因为CLI躁动了。不少开发者抛弃MCP,转向 CLI + Skills 混合模式:用CLI干重活,用轻量Skill做结构化控制。

CLI到底是什么?

简单来说,CLI就是让大模型直接生成命令行指令,然后由Agent在本地或受控环境中执行。

举几个直观的例子:

  • “帮我把今天下载的PDF全部重命名为‘会议记录-日期-序号.pdf’”,大模型输出

find . -name "*.pdf" -mtime -1 | xargs -I {} mv {} "会议记录-$(date +%Y%m%d)-{}.pdf"
  • “把这个项目的依赖更新到最新,但只更新patch版本” 

npm outdated --parseable | cut -d: -f2 | xargs -I {} npm install {}@latest --save

Agent拿到命令后,直接丢给shell执行,拿到输出再喂回大模型。整个流程极简粗暴,却异常高效。

CLI vs MCP

相比MCP,CLI有几个优势:

1. Token消耗大幅降低

MCP每次调用都要把当前可用的所有工具列表、参数 schema、描述全塞进上下文。

而CLI呢?

git、curl、jq、awk、rsync、docker……这些通用命令大模型自带知识,根本不用传文档。

遇到较新的CLI(如Playwright),只需要把帮助文档喂给大模型,token也不会比MCP高。

目前社区讨论中认为,MCP在简单任务上token消耗是CLI的10-32倍,而且因为上下文限制等原因,失败率更高。

2. 不依赖MCP Server,维护成本低

MCP需要专门维护一个Server来暴露工具接口。

CLI直接用现有的服务器就能跑,基本零额外成本。

3. 灵活性更强

MCP的每个工具都是孤立的函数,你要实现“查找→过滤→批量重命名→压缩”这样的流程,往往需要多次往返大模型。

CLI却可以让大模型一次性生成管道命令,甚至是带逻辑的多行脚本

Bashfind /data -name "*.log" -mtime +7 | xargs grep -l "ERROR" | xargs -I {} sh -c 'mv {} {}.old && gzip {}.old'

一条命令搞定,中间结果不需要来回传输,提升了效率,也节省了token。

很多MCP做不到、或者需要写一大堆glue code的事,CLI用一行shell就能干。

Claude Code、Gemini CLI 等产品直接内置强大的bash工具,一些实测表明,一条工具就能顶替以前50+个MCP工具

但CLI也不是万能的,它的痛点也很明显:

1. 约束弱,结果不稳定

大模型也许会给出最优的命令,但对于复杂的命令,有时候会生成非最优命令或者错误命令,比如路径没加引号、特殊字符没转义、甚至直接 rm -rf /* 这种灾难操作。

2. 安全风险更高

让大模型生成命令,本质上是把root权限间接交给了它。理论上必须配合严格的沙箱、权限控制、最小化原则才能用。

3. 调试体验较差

命令执行失败后,错误信息有时很原始,大模型需要多轮才能定位问题,不像MCP的结构化返回那么明确。

最后

现在一些人有非黑即白的误区——要么all in MCP,要么all in CLI。

但我认为:CLI和MCP是互补,不是替代。CLI的本质是用最低成本、最高灵活度把大模型已有的“终端知识”激活,它不会完全取代MCP。真正聪明的做法是分场景选用。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐