2025年至2026年间,全球顶尖人工智能公司纷纷推出了同类型新品:基于CLI(命令行界面)形态的智能Agent工具。
Anthropic发布了Claude Code,这是一款在终端环境中运行的AI编程助手。OpenAI推出了Codex CLI,Google则带来了Gemini CLI。在这波技术浪潮中,几乎所有值得关注的AI企业都在命令行方向上投入了资源。
这听起来似乎有些反直觉,不是吗?命令行诞生于1970年代,而图形用户界面(GUI)让计算机进入千家万户,移动互联网更是将触屏操作变成了默认交互方式。按照常理,技术演进的方向应是越来越“可视化”和“易用”。那么,为何在人工智能时代,这个最古老的交互形式反而重新兴起?
答案不在于情怀,而在于工程逻辑。
GUI对AI并不友好
GUI是为人类的视觉导航而设计的。按钮、弹窗、拖拽、悬停效果——这些交互范式完全建立在人类的视觉直觉之上。我们只需扫一眼界面,定位按钮位置,凭直觉就能判断下一步该怎么做。这套机制对人类来说极其自然,几乎无需学习成本。
然而,大语言模型的工作逻辑截然不同。它处理的是Token(语言单元),而非像素。AI的“思考”发生在语言空间里,而不是像素空间里。
让AI操控GUI,意味着要跨越一道巨大的鸿沟:
理解成本极高。AI需要借助计算机视觉或Accessibility Tree(可访问性树)来“读懂”界面——哪些按钮可点击、输入框在什么位置、当前弹窗的含义是什么。这对AI来说并非强项,反而是额外的认知负担。
状态隐式且不可预测。同一个按钮,今天可以点击,明天可能因某个条件变灰。这种隐式状态对人类而言是“上下文”,但对AI来说却是不确定性——它无法可靠地推断出“某个操作在何种条件下可用”。
操作不可组合。无法像管道一样将两个GUI操作串联起来。例如“搜索结果→过滤→导出”在GUI里需要三次点击,不能作为一个整体进行传递、复用或自动化。
难以测试和验证。AI执行一个GUI操作后,如何确认它成功了?需要截图、解析界面状态,整个反馈循环既缓慢又脆弱。
相比之下,CLI的每个特性都像是专门为AI量身定制的。
CLI对AI Agent的三大优势
可组合性
Unix哲学的核心原则是:“每个程序只做一件事,并把它做到极致;让程序能够协同工作。”这个几十年前的设计理念,在AI时代焕发出了全新的生命力。
CLI工具通过标准输入输出(stdin/stdout)进行串联。例如 linkly search "React 性能优化" | head -5 可以直接将搜索结果传递给下一个命令。再如 linkly search "架构设计" --json | jq '.results[].doc_id' 可以提取所有文档ID用于后续处理。
对于AI Agent来说,可组合性意味着它能轻松地将多个命令链接成复杂的多步骤工作流,每一步的输出都是结构化文本,可以被下一步直接消费。没有GUI那套“点击→等待→截图→解析”的循环,只有干净利落的输入和输出。
可预测性
每个命令的行为完全由参数决定。比如 linkly search "数据库" --limit 10,今天执行是这个结果,明天执行(假设数据库不变)还是这个结果。没有隐式状态,没有“这个功能上次还正常,怎么这次就不行了”的困惑。
这对AI而言至关重要。AI在推理一个工具时,需要建立心智模型:该工具的输入是什么、输出是什么、有哪些副作用。GUI的隐式状态会让这个模型充满不确定性,而CLI的显式参数则使模型变得可靠而精准。
linkly read 42 --offset 80 --limit 100 —— 这个命令的含义完全由参数定义。AI可以精确推理它的行为,无需猜测任何隐式上下文。
可审计性
所有CLI操作都是可记录的文本序列。AI执行了什么命令、得到了什么输出,都是人类可读的文本。
这种透明性带来了两大好处。
对AI自身而言:可以进行自我检查。“上一步 linkly search "合同模板" 返回了0个结果,说明关键词不对,换成‘合同范本’再试。”这种基于文本的自我纠错能力,是AI Agent可靠工作的基础。
对人类而言:可以做事后审查。你可以查看AI运行了哪些命令、每步的输入输出是什么,整个推理链路一目了然。GUI操作的“点了什么”很难追溯,而CLI操作的日志天然就是一份审计记录。
Linkly AI CLI的设计实践
LinklyAI是我们团队开发的本地搜索引擎和知识库创建软件。在设计其CLI工具时,我们一开始就将AI Agent作为主要用户之一来考虑。
4个精心设计的核心命令
Linkly AI CLI的核心命令只有四个:

这四个命令完全遵循Unix哲学:每个只做一件事,具备明确的输入输出契约。AI Agent可以把它们自由组合成复杂的检索流程。
一个典型的Agent工作流示例如下:

每一步的输出都是结构化文本,可以直接被AI消费和推理。没有任何GUI操作,也没有视觉解析的负担。
与管道等进行组合
CLI的另一个优势是能够与系统中其他命令自由组合,带来超出单个工具能力边界的新功能。
过滤和提取: --json 输出可以直接接 jq 提取字段,结果再传给下一个工具:
# 搜索文档,只取 doc_id 列表,再批量获取大纲
linkly search "数据库设计" --json | jq -r '.results[].doc_id' | xargs -I{} linkly outline {}
与grep组合做二次过滤: 先用语义搜索缩小范围,再用精确关键词过滤:
linkly search "架构设计" | grep -i "微服务|分布式"
统计和分析: 配合 wc、sort、uniq 等命令做文档统计:
# 统计知识库里有多少篇 PDF linkly search "" --json | jq '.results[].type' | sort | uniq -c
与脚本结合: 在shell脚本里批量处理,自动化重复任务:

GUI工具无法参与这些组合。CLI工具的输出是文本流,天然可以被任何其他工具消费,这使得整个系统的能力远大于各个工具的简单相加。
CLI也是最简单的MCP桥接方式
CLI和MCP(模型上下文协议)并非对立关系。linkly mcp 一条命令即可将CLI变成一个stdio MCP服务器,供任何支持MCP的AI客户端使用:

这比直接配置HTTP MCP Server要简单得多——用户无需知道端口号,无需手动编写JSON中的URL,只需告诉AI客户端“运行这个命令”。
CLI成为了MCP生态的入场券,对用户而言几乎是零配置摩擦。
更宏观的趋势
Claude Code选择优先发布CLI形态而非IDE插件,这一决策背后有清晰的工程逻辑:IDE插件受限于宿主环境,而CLI工具可以在任何有终端的地方运行,可以被任何Agent调用,可以和任何其他工具组合。
这揭示了一个更根本的规律:AI Agent调用工具的本质,就是执行命令。工具调用(function call/tool use)在语义上等同于CLI——给定名称和参数,返回结果。CLI工具天然就是Agent可以调用的函数,无需任何转换层。
“Terminal as the new IDE”(终端即新的集成开发环境)这个说法早在AI兴起之前就有人提出,但在AI时代它获得了全新的含义。这不只是“在终端里写代码”,更是“Agent通过终端与世界交互”。
过去,CLI是技术人员的专属工具。未来,CLI可能成为Agent的通用语言——人类通过自然语言与Agent对话,Agent通过CLI与系统交互。
小结
GUI的地位不会受到太大影响,它依然是人类直接操作计算机的最佳界面。但当你的AI工具需要调用另一个工具时,CLI就成了最自然的桥梁。可以预见,越来越多的软件为了顺应Agent的使用习惯,将推出更多的CLI工具。
