最近社区里MCP和CLI哪个更适合LLM的讨论很火,但我觉得大家吵错地方了。
我昨天用Claude写一个数据处理脚本,发现一个有意思的现象:用CLI工具时,Claude能自己创建文件、运行脚本、查看结果、再修改,整个流程很顺畅。但换成MCP调用外部API时,每次调用都是独立的,没有上下文延续。
这不是MCP本身的问题,而是执行环境的问题。CLI之所以好用,是因为它运行在BASH里,BASH天然有持久化状态——文件系统就是它的记忆。你创建了一个文件,下次调用时它还在那里。
MCP的每次调用都是无状态的,就像一个失忆的助手,每次都要重新理解你的需求。但这个问题其实很好解决,只需要给MCP也配一个持久化的执行环境。
目前最适合LLM的执行环境有三种:BASH+文件系统、Jupyter内核、以及类似CodeMode的REPL(通常是QuickJS)。它们的共同特点是能保持状态,让LLM可以像人一样"记住"之前做了什么。
LLM其实很擅长这种"渐进式解决问题"的方式——这来自强化学习的训练。它知道怎么修改代码库、怎么从数据库获取数据、然后基于这些数据做进一步操作。但如果没有一个能保持状态的执行环境,这些能力就发挥不出来。
我预测,很快会有人(或者已经有人在做了)开发出一个嵌入式的、类似SQLite的迷你执行环境。它能把Bash、TypeScript或工具调用解析成统一的中间语言执行计划,方便安全检查后再执行。专门为持久化执行环境设计。
到那时候,CLI、MCP、WebMCP这些输入方式都不重要了,因为它们本质上可以互相转换。关键是谁能提供最好的执行环境。
话题来源 @tobi
❤️1317 x.com/…↗ 已改写,非原文转载
18 浏览 0 评论
0 反应














