CLI的第二次生命:当AI Agent接管命令行,人机协作进入“自然语言驱动”时代

张开发
2026/4/8 6:53:51 15 分钟阅读

分享文章

CLI的第二次生命:当AI Agent接管命令行,人机协作进入“自然语言驱动”时代
目录引言一、什么是CLI 主要特点⚙️ 常见例子 与 GUI图形用户界面对比二、飞书开源CLI与Agent CLI 1. Agent CLI 到底是什么 2. Agent CLI 与过去有什么不同⚙️ 3. 飞书 CLI 是 Agent CLI 落地的范本 4. Agent CLI 在执行层扮演什么角色 5. Agent CLI 的浪潮与未来 总结三、什么是 coding agent四、如何在 Agent 下开发自己系统的 CLI1、借助 AI Agent编程助手开发 CLI1. 明确 CLI 的需求2. 选择 CLI 开发框架可让 AI 帮你选型3. 让 AI 生成脚手架代码4. 利用 Agent 迭代开发5. 打包与分发2、为 Agent智能体设计 CLI 接口1. 设计交互协议2. 实现一个简单的 REPLRead-Eval-Print Loop3. 集成 Agent 核心4. 扩展功能3、通用开发流程无论是否使用 AI4、用 AI Agent 加速 CLI 开发的示例提示词总结五、CLI编写指引1、参考 飞书CLI的开源源码模仿实现2、编写基于CLI的skills引言前端时间小马编写了一篇《AI时代下的CLI优势与MCP对比》最近传统CLI爆火。飞书开源 CLI 算是一个挺有代表性的例子——在 Agent 的场景下CLI 似乎比 GUI 更贴合实际需要。传统的 CLI 对普通用户来说确实不太利于人机交互但到了 AI 时代人机交互的重心变成了人与 Agent 之间的交互。这时候CLI 对 Agent 的友好程度反而比 GUI 更高因为 Agent 更容易调用和解析 CLI 的输入输出。于是有了 CLI 之后未来人只需要用自然语言跟 Agent 说清楚想做什么剩下的事情交给 Agent 配合 CLI 去完成就好了。一、什么是CLICLI是Command-Line Interface命令行界面的缩写。它是一种用户与计算机交互的方式用户通过键盘输入文本命令操作系统或应用程序接收并执行这些命令然后以文本形式输出结果。 主要特点纯文本交互没有图形界面如窗口、按钮、图标全靠输入指令。高效直接熟练用户常用组合命令或脚本能快速完成批量、复杂的任务。资源占用少相比图形界面CLI 消耗的系统资源更少。可脚本化可以将一系列命令写入文件脚本实现自动化操作。远程管理常用通过 SSH 等协议连接远程服务器时CLI 是最常见的操作方式。⚙️ 常见例子WindowsCMD命令提示符、PowerShellmacOS / LinuxTerminal终端、Bash、Zsh数据库MySQL 命令行客户端、psqlPostgreSQL开发工具Git 命令行、Node.js 的 npm、Python 解释器 与 GUI图形用户界面对比特性CLIGUI操作方式输入命令点击图标/菜单学习曲线较陡需记忆命令平缓直观任务效率批量、重复任务更高效单次、探索性任务方便出错反馈通常返回错误码和文本信息弹出提示框总之CLI 是开发者、系统管理员和高级用户常用的强大工具。即使日常使用 GUI了解基本 CLI 命令也能极大提升工作效率。二、飞书开源CLI与Agent CLI老规矩先上资源。飞书CLI安装与使用指南 - 让AI Agent真正接入飞书https://www.feishu.cn/content/article/7623291503305083853开源GitHubhttps://github.com/larksuite/cli?tabreadme-ov-file飞书开源CLI事件是理解“Agent下的CLI”或称AI智能体命令行一个极佳的切入点。这件事的核心是飞书把自己变成了一个AI可以直接通过命令行操作的工具箱它标志着AI从“聊天机器人”进化到了能“动手干活”的阶段。要理解这个变化可以从下面几个层面来看 1. Agent CLI 到底是什么在传统认知里CLI命令行界面是给专业人士用的通过输入精确指令来操作计算机。而“Agent下的CLI”则有两个全新的维度AI调用工具的接口它将软件功能如发消息、建文档封装成结构化的命令让AI Agent可以直接调用执行。AI与人类协作的界面人类可以用自然语言向Agent描述需求Agent在后台将其拆解为一条条CLI命令并执行。飞书、钉钉等平台开源CLI本质上就是把它们各自复杂的平台能力封装成了一套AI能轻易理解和执行的标准化指令集。 2. Agent CLI 与过去有什么不同CLI之所以能在AI时代“翻红”是因为它比过去两种让AI操作软件的方式都更高效、更可靠方式核心原理对AI的挑战截图模拟AI通过识别屏幕截图模拟鼠标点击GUI界面操作不稳定界面变化就出错就像蒙着眼指挥别人点按钮API调用AI直接调用软件官方提供的API每个API的参数格式都不同AI需要提前学习大量文档非常笨重Agent CLIAI通过执行标准化的命令行指令指令自带--help报错也是文本大模型最擅长处理这些交互几乎无摩擦⚙️ 3. 飞书 CLI 是 Agent CLI 落地的范本飞书开源的工具lark-cli就是Agent CLI理念的一个范本其核心在于将飞书庞大的能力系统性地“CLI化”。能力覆盖全面lark-cli覆盖了飞书的11个核心业务域提供超过200条具体命令并内置了19个AI Agent技能包。三层架构设计飞书为满足人和AI的不同需求设计了巧妙的三层架构Shortcuts快捷命令通过前缀调用参数少对人和AI都友好。API Commands平台命令与官方API一一对应用于精确控制。Raw API原始接口可调用所有开放平台的接口能力无死角。 4. Agent CLI 在执行层扮演什么角色要让AI从“理解”走向“执行”需要一套完整的技术栈。其中Agent CLI扮演着至关重要的“动手执行”角色它与另外两个核心概念Skill和MCP有明确的协同分工概念解决的问题一句话理解Skill (技能)AI“懂什么”给AI装上大脑让它知道有什么知识和能力可用MCP (模型上下文协议)AI“怎么接”给AI装上标准化的USB接口让它能接入外部系统CLI (命令行接口)AI“怎么做”给AI装上能执行具体动作的双手让它去完成任务举例来说AI的Skill是“懂得如何发送一封飞书消息”它通过MCP协议与飞书系统建立连接最终它调用lark-cli send --userxxx --content...这条CLI命令将消息实际发送出去。 5. Agent CLI 的浪潮与未来飞书并非孤例钉钉、企业微信等也纷纷开源了CLI工具这背后反映的是“开放执行层”的共识。在这个浪潮中不同玩家也走出了不同路径飞书选择MIT协议直接开源lark-cli以最低门槛抢占开发者生态。钉钉虽然开源但采用“灰度共创”模式以安全和管控为先更符合其企业客户的诉求。全球趋势lark-cli这类工具让AI Agent有了“原生能力”而像Claude Code、Gemini CLI等智能体工具则是AI Agent本身的“原生形态”它们直接运行在终端改变着我们的工作方式。 总结总的来说“Agent下的CLI”并非简单的技术复古而是AI演进到“执行阶段”的关键一步。正如飞书CLI所展现的它将复杂的软件能力模块化、标准化为AI进入业务流程铺平了道路。这标志着人机协作正从“人类操作”转向“人指挥、AI执行”的智能新时代。三、什么是 coding agent简单来说Coding Agent编程智能体是一个能够自主理解、规划并执行复杂编程任务的AI系统。它不仅仅是帮你“写几行代码”的自动补全工具而是像一个有自主性的初级程序员伙伴。它通常具备以下核心能力自主规划能理解一个完整的功能需求例如“用Python写一个爬虫抓取某网站新闻并保存为CSV”并将其拆解成多个子任务如请求网页、解析数据、处理异常、保存文件。工具使用可以主动调用各种工具来完成任务比如读写文件创建、修改、删除代码文件。执行命令运行脚本、安装依赖包如pip install、启动服务。检索信息搜索网络文档、查询代码库。迭代与调试尝试运行代码如果遇到错误能读取错误日志分析原因自主修改代码并再次运行直到成功。上下文感知理解整个项目的结构、不同文件之间的关系而不仅仅是当前打开的单个文件。它与普通AI编程助手的区别是什么特性普通AI助手 (如基础版ChatGPT)Coding Agent (如Devin, AutoCoder)交互模式一问一答用户需要复制粘贴代码并手动运行设定目标后自主工作可多轮修正任务范围解决离散的、独立的小问题如写一个排序函数执行包含多步骤、有依赖关系的复杂任务行动能力只能输出文本建议无法操作你的文件或终端可以直接操作你的文件系统、运行命令、查看结果错误处理用户把错误信息告诉它它再给出修正建议自动捕获错误尝试自行修复直至任务完成或需要帮助常见的应用场景根据需求生成整个项目你说“我要一个React的待办事项应用”它能生成所有组件、样式、状态管理代码甚至帮你npm install并启动预览。端到端的功能开发为一个现有代码库增加新功能比如“在用户登录后自动发送一封欢迎邮件”。自动化代码重构与迁移例如“把这个项目的所有回调函数改成async/await语法”。自动化调试给它一个错误报告或失败的单测它能追踪代码、定位问题、提出并验证修复方案。生成测试与文档为整个模块自动编写单元测试或生成API文档。当前的一些代表例子Devin由Cognition Labs开发是功能非常全面的代表性产品宣称能独立完成整个软件开发流程。GitHub Copilot WorkspaceGitHub官方的“智能体”版本集成在开发环境中。AutoCoder、OpenDevin开源社区的项目让开发者能尝试和构建自己的Coding Agent。传统的AI助手 插件比如将Claude或GPT-4与 Continue、Cline 等VSCode插件结合也能实现部分Coding Agent的能力。需要留意的局限性复杂项目理解不足在超大型、架构复杂或很古老的代码库中容易迷失方向或产生错误决策。可能制造混乱它的尝试性修改有时可能会引入新的Bug甚至破坏原有功能尤其是在没有完善测试覆盖的项目中。安全与合规风险自主执行命令和修改代码存在风险比如意外删除文件、执行恶意操作或违反代码规范。成本较高运行一个完整的Coding Agent需要大量的计算资源和Token消耗。总的来说Coding Agent代表了AI编程工具从“被动助手”向“主动协作者”演进的下一步。目前它更适合作为经验丰富的程序员的超级助手来分担重复性、探索性或边界清晰的子任务而不是完全替代人类开发者。但它的能力正在以惊人的速度增长。四、如何在 Agent 下开发自己系统的 CLI针对“在 Agent 下开发自己系统的 CLI”这里的Agent有两种常见理解AI 编程助手如 GitHub Copilot、ChatGPT、Cline 等—— 你希望借助 AI Agent 来辅助开发 CLI 工具。多智能体系统中的 Agent—— 你需要为自己的 Agent 设计一个命令行交互接口。下面分别给出建议并重点展开第一种更常见。1、借助 AI Agent编程助手开发 CLI1. 明确 CLI 的需求先理清你的系统需要暴露哪些功能给命令行例如启动/停止服务执行特定任务数据处理、模型推理、配置管理查看状态、导出日志等2. 选择 CLI 开发框架可让 AI 帮你选型不同语言的主流 CLI 库语言推荐库特点Pythonclick,typer,argparsetyper基于类型提示最现代Gocobra功能强大支持子命令Node.jscommander,yargs生态成熟Rustclap高性能类型安全3. 让 AI 生成脚手架代码例如对 Python typer你可以这样提示 AI“用 typer 创建一个 CLI包含三个子命令start启动服务、stop停止服务、status查看状态。服务配置从 config.yaml 读取。”AI 会生成类似下面的代码importtyperimportyaml apptyper.Typer()defload_config():withopen(config.yaml)asf:returnyaml.safe_load(f)app.command()defstart():configload_config()typer.echo(fStarting service with{config})# 实际启动逻辑app.command()defstop():typer.echo(Stopping service)app.command()defstatus():typer.echo(Service is running)if__name____main__:app()4. 利用 Agent 迭代开发添加参数--verbose、--config等直接让 AI 补充。集成业务逻辑把系统核心模块导入 CLIAI 可以帮助生成调用代码。生成帮助文档让 AI 根据函数签名自动生成README.md中的 CLI 使用说明。编写测试使用pytestclick.testing或typer.testingAI 可生成测试用例。5. 打包与分发Pythonsetup.py或pyproject.toml中定义console_scripts入口点AI 可生成模板。Gogo build直接生成二进制。Node.js配置bin字段在package.json。2、为 Agent智能体设计 CLI 接口如果你的“Agent”是指一个自主决策的 AI Agent例如 LangChain Agent、强化学习 Agent你想通过命令行与之交互1. 设计交互协议输入用户通过 CLI 输入自然语言指令或结构化命令。输出Agent 执行后输出文本、表格、文件等。2. 实现一个简单的 REPLRead-Eval-Print LoopimportcmdclassAgentCLI(cmd.Cmd):introWelcome to Agent CLI. Type help or ? to list commands.prompt(agent) defdo_run(self,arg):执行任务run task descriptionresultagent.execute(arg)print(result)defdo_status(self,arg):print(Agent status: idle)defdo_exit(self,arg):returnTrueif__name____main__:AgentCLI().cmdloop()3. 集成 Agent 核心如果 Agent 是 LangChain 类型CLI 可以接收用户输入调用agent.run(user_input)。如果 Agent 是环境交互型如游戏 AICLI 可发送动作、接收奖励。4. 扩展功能支持批处理模式agent-cli --file commands.txt支持输出为 JSON便于其他程序调用支持历史命令、自动补全可借助prompt_toolkit3、通用开发流程无论是否使用 AI步骤动作1定义命令与参数结构命令行接口规范2选择 CLI 框架并初始化项目3实现每个命令对应的回调函数调用系统内部 API4添加错误处理、日志、配置文件支持5编写单元测试与集成测试6打包、发布到包管理器或直接分发二进制4、用 AI Agent 加速 CLI 开发的示例提示词生成基础骨架“用 Go 的 cobra 创建一个 CLI 工具根命令为mysys子命令有config set、config get、run。”添加参数校验“为 Python typer 的run命令添加一个--threads参数类型为 int默认值为 4值必须在 1~16 之间。”生成 Bash 补全“为上述 CLI 生成 bash 自动补全脚本。”编写 README“根据以下 CLI 代码生成用户手册包含安装方法和所有命令示例。”总结如果你是开发者直接使用 AI 编程助手如 Copilot、Cursor、通义灵码与对话式 AIChatGPT/Claude结对编程能极大提升 CLI 开发效率。如果你在开发 Agent 系统实现一个 REPL 或基于cmd的简单 CLI 即可与 Agent 交互。核心要点无论哪种情况先明确命令树再让 AI 生成样板最后集成你的业务逻辑。五、CLI编写指引1、参考 飞书CLI的开源源码模仿实现地址https://github.com/larksuite/cli/blob/main/README.zh.md2、编写基于CLI的skills对于 Agent 你只需要用自然语言告诉它你想干什么它会自动调用skills cli处理任务。这是lark-cli中的doc skills包,其中展示了基于CLI的skills编写。我们再来回顾之前下 基于脚本或者API的SKILL编写。我们从clawhub上找到一个包https://clawhub.ai/steipete/weather查看通过curl http请求API的方式。当然如果这里只想先调用脚本如PY再由脚本发起HTTP请求API也是同样的道理。SKILL包的编写就像语文写作文一样没有什么标准答案。

更多文章