1. 从工具到生态:AI Agent开发范式的演进与分化
如果你在2024年关注过AI应用开发,大概率会经历一个从兴奋到迷茫的过程。年初,大家还在用LangChain、LlamaIndex这类框架,试图把大模型、工具调用和记忆模块“焊”在一起,构建一个能跑起来的智能体。到了年中,各种“低代码”、“可视化编排”平台如雨后春笋般涌现,宣称能让你像搭积木一样构建Agent。然而,当你真正想做一个能稳定运行、解决实际复杂问题的AI Agent时,往往会发现:这些框架要么过于笨重,定制化困难;要么过于抽象,离真实的业务逻辑和开发体验太远。
正是在这种背景下,三种截然不同但同样重要的开发范式开始清晰地浮现出来:CLI(命令行界面)、MCP(模型上下文协议)和Skill(技能)。它们并非相互替代,而是代表了AI Agent开发在基础设施、交互协议和应用层三个不同维度的进化方向。简单来说,CLI解决的是“如何让AI像开发者一样操作电脑”的问题,MCP解决的是“如何让AI安全、标准化地使用外部工具和数据”的问题,而Skill解决的是“如何将AI能力封装成可复用、可组合的模块”的问题。理解这三者,你就能看清未来两年AI Agent开发的技术栈会如何演变,以及你应该把精力投资在何处。
2. CLI范式:将自然语言转化为精准的系统指令
CLI范式,其核心思想是让AI Agent能够理解用户的自然语言指令,并将其转化为精确、可执行的操作系统命令或脚本。这并非简单的“语音输入命令”,而是一个复杂的意图识别、环境感知和指令生成过程。
2.1 核心价值:赋予AI“动手能力”
在传统的自动化脚本中,我们需要预先定义好所有的逻辑分支。但AI驱动的CLI工具不同,它具备理解模糊意图和动态生成解决方案的能力。例如,用户说“帮我清理一下下载文件夹里一周前的所有图片”,一个基于AI的CLI工具需要完成以下步骤:
- 意图解析:识别出核心动作是“清理”(删除文件),对象是“下载文件夹”,筛选条件是“文件类型为图片”且“修改时间大于一周”。
- 环境探查:确定当前操作系统的类型(Windows的
del或PowerShell, macOS/Linux的rm),定位用户主目录下的“Downloads”文件夹路径。 - 命令生成:组合出安全的命令。在Linux下,可能是
find ~/Downloads -name “*.jpg” -o -name “*.png” -mtime +7 -delete。它必须避免生成像rm -rf /这样的危险命令。 - 安全确认与执行:向用户展示即将执行的命令,获得确认后执行,或提供“试运行”模式。
这个范式的典型代表是Claude Code CLI或Cursor的Composer模式。它们不仅仅是命令翻译器,更像是坐在你身边的资深运维工程师,你告诉他目标,他为你写出并执行最合适的脚本。
2.2 实现原理与关键技术栈
一个成熟的AI CLI工具背后,是多项技术的结合:
- 大语言模型(LLM):作为大脑,负责理解、规划和生成。需要选用在代码生成和逻辑推理上表现优秀的模型。
- 受限命令空间:这是安全性的基石。工具不会允许模型生成任何可能的命令,而是提供一个“允许列表”。例如,可以禁止
rm、format、dd等危险命令,或者对它们的使用施加额外确认。更精细的控制可以限制命令的参数范围。 - 上下文管理:CLI工具需要维护会话上下文,记住当前的工作目录、环境变量、之前执行过的命令及其结果。这使得多轮对话成为可能,比如用户可以说“对刚才找到的那些文件,再统计一下大小”。
- 文件系统与进程沙箱:为了绝对安全,高级的AI CLI会在一个隔离的沙箱环境中执行生成命令,防止对真实系统造成破坏。执行结果(标准输出、错误输出、返回码)会被捕获并返回给用户和模型,用于后续决策。
实操心得:从Demo到生产在本地实验时,你可能直接用OpenAI API配上简单的提示词就能实现基础功能。但一旦要提供给团队使用,就必须考虑:
注意:永远不要相信LLM生成的命令是100%安全的。必须实现“命令审核层”。一种有效模式是“解释-确认-执行”:AI首先生成命令并用人话解释它将要做什么;用户确认后,工具再在一个权限受限的容器或子进程中执行。对于企业级应用,还需要集成公司的权限系统(例如,禁止访问特定目录)。
3. MCP范式:为AI Agent定义标准化的“工具使用说明书”
如果说CLI让AI学会了操作电脑,那么MCP(Model Context Protocol)则是为了让AI能安全、高效地调用千差万别的外部服务和数据。你可以把它理解为AI世界的USB协议或驱动模型。
3.2 MCP的核心组件与工作原理
MCP协议定义了几个核心角色:
- MCP Server(服务器):这是实际提供能力的后端服务。比如,一个数据库MCP Server封装了连接、查询、写入数据库的所有逻辑;一个搜索MCP Server封装了调用Tavily或Brave Search API的细节。蓝湖MCP就是将设计稿管理能力暴露给AI的典型例子。
- MCP Client(客户端):通常是AI应用本身,如Claude Desktop、Cursor、或你自建的Agent。它负责发现、连接并调用MCP Server提供的工具。
- 协议与传输层:定义了Client和Server之间通信的消息格式(通常是JSON-RPC over stdio或SSE),包括“工具列表”、“调用工具”、“返回结果”等标准操作。
为什么需要MCP?在没有MCP之前,每个AI应用(Client)想要集成一个新工具(比如Notion),都需要自己编写特定的插件代码,处理认证、API格式、错误处理等一系列问题。而有了MCP,Notion只需要提供一个标准的MCP Server,任何支持MCP协议的AI客户端都能立即获得操作Notion的能力。这极大地降低了集成成本,并使得工具生态得以繁荣。
3.3 如何构建与集成一个MCP Server
以添加一个“搜索类MCP服务器(如tavily-mcp)”到Codex为例,详细步骤如下:
步骤一:环境准备与Server获取假设你使用Node.js环境。
# 1. 确保有Node.js环境 node --version # 2. 全局安装或克隆特定的MCP Server。例如,tavily-mcp可能是一个开源npm包。 npm install -g @mcp-servers/tavily # 假设的包名,请以实际项目为准 # 或者,从GitHub克隆 git clone https://github.com/username/tavily-mcp.git cd tavily-mcp npm install步骤二:配置MCP Server大多数MCP Server需要配置API密钥等参数。这些通常通过环境变量或配置文件设置。
# 设置Tavily搜索的API密钥(你需要先去Tavily官网申请) export TAVILY_API_KEY=‘your_api_key_here’对于需要连接数据库的MCP Server(如trae连接sqlite数据库mcp),配置可能是一个JSON文件,指定数据库路径、只读模式等。
步骤三:在AI客户端中配置以Claude Desktop或Cursor为例,它们通常有一个MCP配置文件(如claude_desktop_config.json),位置在用户目录下。
{ “mcpServers”: { “tavily-search”: { “command”: “node”, // 启动Server的命令 “args”: [ “/path/to/tavily-mcp/build/index.js” // Server的入口文件路径 ], “env”: { “TAVILY_API_KEY”: “your_api_key_here” // 也可在此处传递环境变量 } }, “my-sqlite-db”: { “command”: “python”, “args”: [“/path/to/sqlite_mcp_server.py”], “env”: { “DB_PATH”: “/path/to/your/database.db” } } } }步骤四:验证与使用重启你的AI客户端。在对话中,你应该能直接使用自然语言如“用Tavily搜索一下今天关于AI Agent的最新新闻”,AI会自动调用集成的MCP工具,并将搜索结果作为上下文返回。
踩坑点:
- 路径问题:
command和args中的路径必须是绝对路径,或确保命令在系统的PATH环境变量中。 - 环境变量注入:有些Server要求环境变量在启动进程前就存在,仅在配置文件的
env字段设置可能不够,可能需要预先在shell中export。 - Server稳定性:MCP Server本身是一个长期运行的进程,需要处理好错误和资源清理,避免内存泄漏。对于自研Server,要确保符合MCP协议规范,否则客户端无法正确识别工具。
4. Skill范式:可插拔、可组合的AI能力模块
Skill范式是站在更高一层的抽象。如果说MCP标准化了“工具”,那么Skill则试图标准化“使用工具完成一项复杂任务的能力”。一个Skill是一个打包好的、可独立分发和运行的AI能力单元,它内部可能包含了提示词模板、MCP工具调用逻辑、决策流程、甚至微调过的小模型。
4.1 Skill与MCP、CLI的关系
这是一个容易混淆的点。我们可以这样理解:
- MCP是“驱动”:它让AI的手(Client)能握住螺丝刀(工具)。
- CLI是“一种使用方式”:AI通过命令行这个界面来操作手。
- Skill是“一套工序”:它知道要拧哪些螺丝、按什么顺序拧、用多大的力气,它协调手(通过MCP调用工具)来完成“组装一个书架”这个完整任务。
例如,一个“数据分析Skill”可能内部依次调用了以下步骤:
- 调用“文件系统MCP”读取CSV文件。
- 调用“Python执行环境MCP”运行Pandas进行数据清洗。
- 调用“图表生成MCP”创建可视化。
- 调用“文档编写MCP”生成分析报告。
用户只需要对这个Skill说“分析一下上周的销售数据”,背后的复杂流程自动完成。
4.2 Skill的开发、管理与生态
Skill的开发:目前业界还没有像MCP那样统一的Skill协议,但已有一些实践。例如,仓颉Skill、Workbuddy Skill等概念,通常指的是一个包含以下内容的包:
skill.json:元数据文件,定义Skill名称、版本、描述、作者、所需权限等。prompts/:目录,包含核心的提示词模板,可能针对不同环节(规划、执行、检查)。tools/:声明本Skill依赖哪些MCP工具或API。logic/(可选):一些自定义的处理脚本或配置,定义工作流。README.md:使用说明。
Skill的管理:会出现类似“Skill商店”或“Skill市场”的平台。用户可以根据排行榜(如“2026年8月 AI Skills最新排行榜”)选择需要的Skill,一键安装到自己的AI Agent环境中。Codex禁用Skill的功能,则体现了企业级应用对安全可控的需求,管理员可以禁用未经审核的Skill。
Skill的挑战:
- 组合与冲突:当多个Skill被同时启用时,它们如何协调?如果两个Skill都注册了处理“写邮件”的意图,听谁的?这需要更复杂的路由和优先级管理机制。
- 状态与记忆:一个复杂的Skill可能需要维护跨对话轮次的状态,这涉及到Skill级别的记忆管理,与Agent的全局记忆如何交互?
- 评估与测试:如何评估一个Skill的质量?这催生了AI测试Agent层的概念,即专门用于自动化测试其他AI Agent或Skill的智能体。
5. 范式融合与2026年展望:Harness与智能体基础设施
当我们把CLI、MCP、Skill三者放在一起看,就会发现它们共同构成了一个完整的AI Agent开发栈:
- 底层(执行层):CLI范式,解决与基础操作系统和开发环境的交互。
- 中间层(连接层):MCP范式,提供标准化、安全的外部工具与数据接入。
- 上层(应用层):Skill范式,将原子能力组合成解决领域问题的复合能力。
而Harness这类基础设施,正如热词中所说,是“一套包裹在AI Agent核心推理逻辑之外的基础设施层”。它不负责替代Agent的“大脑”(LLM),而是为这个大脑提供“神经系统”和“工具箱”。Harness可能会负责:
- Skill与MCP的生命周期管理:加载、卸载、热更新、依赖解析、冲突解决。
- 上下文管理与路由:将用户的请求路由给最合适的Skill或工具,管理对话上下文在不同模块间的传递。
- 安全与权限沙箱:严格控制每个Skill和MCP工具能访问的资源,执行CLI命令前的最终安全校验。
- 可观测性与调试:提供详细的日志,记录Agent的思考过程、工具调用链,方便开发者调试复杂的Skill工作流。
展望2026年,一个典型的AI Agent开发工作流可能是这样的:开发者从市场挑选几个基础的MCP Server(数据库、搜索、邮件)和领域Skill(数据分析、客服话术),然后用一个可视化的编辑器或简单的配置文件,将这些Skill和MCP工具像搭积木一样编排成一个满足业务需求的智能体。对于需要定制化操作系统的部分,则通过编写或调用已有的CLI模式Skill来完成。整个智能体运行在Harness提供的安全、可观测的基础设施之上。
这意味着,未来的AI Agent开发者,一部分会成为“能力开发者”,专注于编写高质量的MCP Server和垂直领域Skill;另一部分会成为“智能体组装者”,利用丰富的生态组件快速构建应用。而理解CLI、MCP、Skill这三大范式,就是把握住了这场范式迁移的核心脉络,知道工具在哪里,能力如何封装,以及如何将它们优雅地组合起来,创造出真正有价值的智能体。