首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MCP vs. Skills?智能体协议之争的答案在于执行环境

MCP vs. Skills?智能体协议之争的答案在于执行环境

作者头像
不二小段
发布2026-04-16 14:48:39
发布2026-04-16 14:48:39
770
举报
文章被收录于专栏:不二小段不二小段

去年 MCP 火,今年 Skills 火,但关于二者的路线选择之争并没有结束。

最近有个MCP协议的拥趸David Coffee,表达了对当前“Skills取代MCP”风潮的不满认为Skills适合传递纯粹的知识和教AI如何使用一个已经存在的工具,但当涉及到让AI真正访问和操作一个外部服务时,MCP在架构上是远为优越和务实的选择。

但我觉得,这根本不是两种技术路线的优劣之辩,而是关于AI Agent的执行环境的问题,是我们在为“瘦客户端”构建可信的远程服务,还是为“胖客户端”提供本地化的超级能力。

两种范式的简要画像

在深入解读之前,有必要先简单定义或者说解释一下MCP和Skills。

MCP (Model Context Protocol),模型上下文协议。本质上是一种API的抽象和封装。你可以把它理解成一个为AI模型量身定制的“插件系统”或“连接器”。模型不需要知道如何操作Google Calendar的复杂API,它只需要调用一个定义好的的函数。所有底层的鉴权、实现细节、错误处理,都由一个专门的MCP服务器来搞定。模型是消费者,MCP服务器是服务提供者,二者通过一个标准化的协议对话。

Skills,技能。目前最普遍的形态是一个Markdown文件(比如SKILL.md)。它的作用更像是一本“操作手册”或者“说明书”,直接塞给模型看。这本手册会告诉模型:“当你想做某件事时,你应该在命令行(CLI)里运行这条命令…”,或者“我们公司的代码规范是这样的…”。它本质上是一种自然语言指令集,依赖于模型本身对指令的理解能力,以及一个能够执行这些指令的本地环境

拥护MCP的理由很简单:零安装、无缝更新、更安全的认证(OAuth)、真正的跨平台可移植性、天然的沙箱环境。这些都是面向服务架构(SOA)思想的直接体现——关注点分离,接口稳定,实现细节对消费者透明。

而反对者,则强调Skills(通常是CLI驱动的Skills)对于开发者友好,能复用现有工具链,以及更简便的可组合性。在命令行里,你可以将不同工具的输出和输入连接起来,创造出可能性。而MCP的工具调用是孤立的,模型必须扮演那个“管道”的角色,在不同的工具调用之间手动传递数据,这既笨拙又消耗上下文。

这场争论看起来就像是经典的“API vs. CLI”之战在AI时代的重演。但仔细想想就会发现,这些争论有点走偏了方向。

问题的核心是执行环境,而非协议本身

David的文章里提到了说:“ChatGPT不能运行CLI,Perplexity也不能,标准网页版的Claude也不能……任何依赖CLI的Skill,在这些环境里都是死路一条。”

这才是真正的分歧所在。

AI Agent的能力,根本上取决于它所处的执行环境。我们可以将这些环境粗略地分为两类:

受限环境 / 瘦客户端:这包括了绝大多数普通用户接触到的AI产品。例如ChatGPT的网页和移动App、标准版的Claude、各类集成在其他应用里的聊天机器人。这些环境的共同特点是,它们没有、也不应该有访问本地文件系统和执行任意命令行代码的能力。它们是一个封闭的沙箱,唯一的“出口”就是调用预先定义好的、受控的外部工具。

富集环境 / 胖客户端:这主要是开发者和高级用户的工作环境。例如Claude Code、Codex,或者任何一个在本地终端中运行的Agent框架。这些环境的特点是,它们拥有一个完整的计算环境,可以读写文件、安装依赖、执行Shell命令、启动子进程。在这里,AI Agent更像一个被赋予了超能力的“超级用户”。

一旦我们用“执行环境”这个坐标系来重新审视,MCP和Skills的定位就立刻清晰了。

受限环境下,MCP几乎是让模型与外部世界互动的唯一可行路径。因为所有的计算、鉴权和状态管理都发生在远程的MCP服务器上,模型所在的客户端只是发起了一个安全的、定义明确的RPC调用。用户想让Claude帮他订一个Notion页面,通过Notion官方提供的MCP,整个流程可以在云端完成认证和操作,完全不依赖用户本地的任何环境。在这种场景下,讨论CLI的优越性毫无意义,因为它根本没有登场的机会。

而在富集环境下,由CLI驱动的Skills则展现出无与伦比的灵活性和力量。模型可以直接使用开发者熟悉的git、curl、gcloud、kubectl等工具,并将它们以前所未有的方式组合起来。它可以在本地文件系统里创建临时脚本,用jq处理JSON输出,再通过管道传给另一个工具。这种即时、动态的脚本生成和组合能力,是当前任何MCP架构都无法比拟的。在这里,AI Agent就是一个自动化脚本的“生成引擎”和“执行引擎”。

所以,MCP和Skills的争论,从一开始就是一场“关公战秦琼”式的错位对话。两拨人站在完全不同的执行环境里,却试图争论同一个工具的优劣。

重新定义战场:MCP是服务契约,Skills是编排蓝图

既然问题的核心是执行环境,我们就有必要重新定义MCP和Skills在AI Agent生态中的角色。它们不是相互替代的竞争关系,而是处于不同抽象层级的、可以互补的组件。

MCP的本质,应该被视为一种“AI原生”的服务契约。

它为外部服务提供了一个标准化的、强类型的、安全的入口,专门为AI模型的“思维方式”(即函数调用)而设计。一个设计良好的MCP,就像一个高质量的SDK,它向模型清晰地声明了“我能做什么(功能),你需要给我什么(参数),我会返回给你什么(结果)”。它关注的是可靠性、安全性和治理。对于企业而言,MCP是管理AI访问内部系统、进行权限控制和审计的天然关口。MCP在企业环境中意义重大,因为它提供了一种可控的方式来扩展AI的能力,而不是让AI在内部网络里随意执行命令。

Skills的本质,则应该被视为一种“上下文感知”的编排蓝图。

它的核心价值在于传递领域知识和定义复杂工作流。一本好的SKILL.md,是教会模型如何“像一个专家一样”思考和行动。它可以告诉模型:

如何使用工具:这包括如何使用一个CLI(比如gh命令的各种高级用法),也包括如何有效地调用一个MCP服务。David自己也在文末领悟到了这一点:“一个解释如何使用MCP服务器的Skill其实非常有意义……它成为MCP的备忘录,而不是替代品。”

如何遵循流程:比如一个公司的代码提交规范,一个处理客户支持工单的标准流程,或者一个多步骤的数据分析任务。

如何理解上下文:例如项目的技术栈、团队成员的角色、内部术语的含义等“部落知识”。

Skills是架设在底层能力之上的一层“智能”。它不关心底层能力是由MCP提供,还是由CLI提供,它只关心如何将这些能力编排起来,以最高效、最正确的方式完成特定任务。

一个真正健壮的Agent架构应该是分层的

基于以上的分析,一个成熟、健壮且能适应不同场景的AI Agent架构,不应该是单选MCP或Skills,而应该是一个分层的、协同工作的生态系统。

第一层:服务连接层

这一层由标准化的API和协议构成,核心是为AI提供安全、可靠的外部能力入口。MCP是这一层的有力竞争者。无论是SaaS服务(如Notion、Jira)、硬件设备(如智能家居)、还是本地应用,都应该考虑提供一个类似MCP的“AI原生接口”。这一层的目标是,让AI“接入”世界。

第二-A层:原生工具层(CLI)

对于那些已经拥有强大CLI的工具(如Git、Docker、AWS),CLI本身就是最高效的接口。在富集环境中,AI应该被鼓励直接使用这些经过千锤百炼的工具。重复发明轮子去创建一个git-mcp是没有意义的。

第二-B层:封装工具层(CLI for MCP)

对于那些只提供MCP接口的服务,可以而且应该存在一层薄薄的CLI封装。murl就是一个绝佳的例子,它允许用户在命令行中调用远程MCP服务。这弥合了富集环境中CLI生态和MCP生态之间的鸿沟,让MCP服务也能享受到CLI的可组合性优势。

第三层:知识编排层(The Orchestration/Knowledge Layer)

这一层就是Skills的天下。Skills文件坐镇顶层,作为AI的“大脑皮层”。它根据任务需求,向下调用第二层的各种工具(无论是原生CLI还是封装后的CLI),或者在没有CLI可用(受限环境)的情况下,直接调用第一层的MCP接口。它负责将底层的原子能力,组合成有意义的、符合特定领域规范的宏观行为。

我们可以虚拟一个具体的例子,假设我们要让AI Agent处理一个GitHub Issue。

服务连接层:GitHub可以提供一个官方的github.mcp,暴露get_issue、add_comment等原子能力。

工具层:GitHub官方的gh CLI已经非常强大,可以直接使用。同时,也可能有一个社区维护的gh-mcp-cli,封装了MCP的调用。

知识编排层:你的团队可以创建一个workflow.skill.md,其中定义:“当处理一个标记为bug的Issue时,首先使用gh issue view(或调用MCP的get_issue)获取详细信息,然后运行本地的测试脚本,如果测试失败,则调用gh issue comment(或MCP的add_comment)并@团队的on-call工程师,同时附上测试日志的链接。”

在这个分层架构下,争论MCP还是Skills就变得毫无意义。它们各司其职,共同构成了一个可扩展、可维护的Agent生态。开发者可以专注于打磨自己熟悉的CLI工具,企业可以专注于构建安全可控的MCP服务,而团队和个人则可以将自己的宝贵经验沉淀为可复用的Skills。

结语

所以,关于智能体协议的争论的焦点其实被长期误导了。我们不应该问“MCP和Skills哪个更好”,而应该问“我的AI Agent运行在什么样的环境里?我需要的是一个安全的API网关,还是一个灵活的本地执行器?”

对于服务提供商而言,未来的方向是明确的:请为你的服务构建一个稳定、安全的“AI原生API”,MCP是一个值得认真考虑的范本。这不仅仅是提供一个新功能,而是为即将到来的Agent经济时代铺设基础设施。

对于开发者和高级用户而言,CLI依然是你们最强大的武器。拥抱Skills,用它来教会AI像你一样思考和使用工具,将你的生产力提升到新的维度。

最终,这场看似对立的争论,将在一个更高维度的分层架构中得到统一。协议只是手段,环境决定路径,而如何将知识和流程注入AI,才是这场变革中最激动人心的部分。与其在协议的泥潭里打滚,不如抬头看看,一个更清晰、更模块化的AI Agent架构蓝图,已经浮现在我们眼前。


参考来源:I still prefer MCP over skills

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 两种范式的简要画像
  • 问题的核心是执行环境,而非协议本身
    • 受限环境 / 瘦客户端:这包括了绝大多数普通用户接触到的AI产品。例如ChatGPT的网页和移动App、标准版的Claude、各类集成在其他应用里的聊天机器人。这些环境的共同特点是,它们没有、也不应该有访问本地文件系统和执行任意命令行代码的能力。它们是一个封闭的沙箱,唯一的“出口”就是调用预先定义好的、受控的外部工具。
    • 富集环境 / 胖客户端:这主要是开发者和高级用户的工作环境。例如Claude Code、Codex,或者任何一个在本地终端中运行的Agent框架。这些环境的特点是,它们拥有一个完整的计算环境,可以读写文件、安装依赖、执行Shell命令、启动子进程。在这里,AI Agent更像一个被赋予了超能力的“超级用户”。
  • 重新定义战场:MCP是服务契约,Skills是编排蓝图
  • 一个真正健壮的Agent架构应该是分层的
    • 第一层:服务连接层
    • 第二-A层:原生工具层(CLI)
    • 第二-B层:封装工具层(CLI for MCP)
    • 第三层:知识编排层(The Orchestration/Knowledge Layer)
    • 服务连接层:GitHub可以提供一个官方的github.mcp,暴露get_issue、add_comment等原子能力。
    • 工具层:GitHub官方的gh CLI已经非常强大,可以直接使用。同时,也可能有一个社区维护的gh-mcp-cli,封装了MCP的调用。
    • 知识编排层:你的团队可以创建一个workflow.skill.md,其中定义:“当处理一个标记为bug的Issue时,首先使用gh issue view(或调用MCP的get_issue)获取详细信息,然后运行本地的测试脚本,如果测试失败,则调用gh issue comment(或MCP的add_comment)并@团队的on-call工程师,同时附上测试日志的链接。”
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档