别再搞混MCP和Agent Skill了:一个管工具能力,一个管做事流程
💡 不知道你有没有过这种困惑:刚开始接触Agent技术的时候,各种名词满天飞——MCP、Skill、LangGraph、AutoGen,看着都和「给Agent加能力」有关,却分不清谁是谁、分别该用在什么地方。
尤其是MCP和Agent Skill,很多人会觉得它们差不多,都是用来扩展Agent能力的,只是格式不一样。但实际上,两者的定位、层级、解决的问题完全不同,它们不是竞争关系,而是上下配合的互补关系。
这篇我们就从底层逻辑到实际落地,把两者的区别、各自的作用、配合的方式彻底讲透,看完你就能理清Agent技术栈的分层脉络。
一、先搞懂本质:两者分别是做什么的
在讲区别之前,我们先分别把两个概念的核心定位说清楚,先建立基本认知。
1. MCP:给Agent装上「能干活的手脚」
MCP全称 Model Context Protocol(模型上下文协议),是Anthropic推出的一套智能体工具接入标准协议。
它要解决的,是「Agent从0到1拥有实操能力」的问题:
在没有MCP的时代,大模型本质上就是个“聊天框”,只能输出文字,没法直接读取本地文件、查询业务数据库、调用第三方系统接口。而MCP把这些外部能力统一封装成标准化的服务,Agent只要连上对应的MCP Server,就能通过函数调用的方式使用这些工具。
MCP的粒度是「原子操作」:比如read_file读一个文件、query_database执行一条SQL、send_email发一封邮件,每个工具只做一件明确、独立的事,工具的参数、返回格式都以schema的形式完全对模型透明。
打个通俗的比方:MCP就像给新员工配电脑、装软件、开系统权限,是他能动手开展工作的硬件基础。没有它,员工再聪明也只能纸上谈兵。
2. Agent Skill:给Agent配上「会做事的手册」
Agent Skill同样是Anthropic推出的开放标准,它的核心定位是可复用的任务流程与知识模块。
它要解决的,是「有了工具之后,怎么把事做对、做标准」的问题:
就算给Agent开了文件权限、数据库权限、代码执行权限,你让它做“代码审查”,它也不知道该先查什么、后查什么、按什么标准判断漏洞、最后输出成什么格式。Skill就是把这类任务的完整流程、判断标准、参考资料、输出模板打包成一个可复用的模块。
每个Skill都是一个完整的文件夹:核心是SKILL.md指令文件,用YAML头声明名称和描述,正文写执行步骤和标准;除此之外还可以附带Python脚本、输出模板、参考规范文档、配置文件等等资源。
Skill的粒度是「完整工作流」:它覆盖的是一整类任务的全流程,比如“代码审查”“数据分析报告生成”“文档格式校验”,内部可能包含多步操作、多次工具调用。
对应上面的比方:Skill就像给员工发的SOP操作手册+工作模板+参考规范,告诉他这类任务该按什么步骤、什么标准来完成,保证输出质量稳定。
二、一张表看懂:MCP与Agent Skill的核心差异
为了让大家更直观地理清边界,我从六个核心维度做了对比:
| 对比维度 | MCP(模型上下文协议) | Agent Skill(智能体技能模块) |
|---|---|---|
| 核心定位 | 工具接入的标准化协议 | 任务流程与知识的可复用模块 |
| 解决的问题 | Agent怎么获得外部能力(能做事) | Agent怎么按标准完成任务(会做事) |
| 内容粒度 | 原子操作,单个工具调用 | 完整工作流,一类任务的全流程 |
| 内容形态 | 工具定义、参数schema、执行逻辑 | 指令文档、脚本、模板、参考资料 |
| 加载方式 | 连接Server后全量加载工具列表 | 渐进式加载:先加载简介,匹配任务后再加载完整内容 |
| 核心价值 | 拓展Agent的可执行边界 | 提升Agent任务完成的标准化与准确率 |
为了更直观地理解两者的定位差异,我们可以用一张流程图来对比它们的核心区别:
三、纠正一个常见误区:Skill根本不是「高级Prompt模板」
很多人刚接触Skill的时候,会觉得“这不就是写得精致点的Prompt模板吗,换个名字而已”。这其实是非常典型的误解,两者的核心差异远不止文字多少。
1. 自动发现 + 渐进式加载,和手动喂Prompt完全是两回事
普通的Prompt模板,需要你手动把指令复制粘贴给Agent,或者在代码里写死加载逻辑。
而Skill是可以被Agent自动检索匹配的:用户提出一个任务,Agent会自己扫描可用的Skill库,找到和任务最匹配的那个,主动加载使用,不需要人工指定。
同时它采用渐进式加载机制来节省上下文空间:
- Agent启动时,只加载每个Skill的名称和一句话简介,单个只占30~50个token;
- 只有当判断某个Skill和当前任务相关时,才会加载完整的指令正文;
- 执行过程中需要用到模板、参考文档时,才会进一步加载对应的资源文件。
这种设计既保证了Skill的丰富度,又不会浪费宝贵的上下文窗口,和一次性全量塞进去的Prompt模板有本质区别。
2. 不止是文字,是完整的可执行资源包
普通Prompt只有文字指令,最多能规定输出格式和步骤。
而Skill是一个完整的资源包:除了文字流程,还可以附带Python脚本、Markdown模板、配置文件、参考规范文档等等。Agent执行任务时,可以直接调用包里的脚本、套用包里的模板,能力远不止文字指令。
换句话说:Prompt是“告诉Agent怎么做”,而Skill是“把做法连同工具一起打包给Agent”。
四、一文看懂:两者怎么配合完成一个完整任务
讲了这么多概念,我们用「代码审查」这个最常见的开发场景,走一遍完整的协作流程,你就能直观感受到两者的分工。
第一步:任务触发,Skill匹配
用户向Agent提出需求:“帮我审查一下src/auth.py这次提交的代码”。
Agent收到任务后,扫描本地可用的Skill列表,匹配到了code-review代码审查技能,于是加载它的核心指令文件SKILL.md,内容大致如下:
---
name: code-review
description: 对代码进行全面审查,识别功能bug、安全漏洞和性能问题,输出结构化报告
---
# 代码审查执行流程
## 第一步:读取目标文件
读取用户指定的代码文件,梳理功能逻辑和本次改动范围。
## 第二步:执行安全扫描
运行脚本目录下的`check_security.py`,对代码做自动化安全漏洞扫描。
## 第三步:逻辑与性能检查
结合代码规范,检查逻辑漏洞、性能隐患和不规范写法。
## 第四步:输出审查报告
套用`assets/report_template.md`模板,整理所有问题,按严重等级排序输出。
到这里,Skill就把整个任务的流程、步骤、标准都定好了,相当于给Agent了一份操作说明书。
第二步:流程执行,MCP落地
Skill只定义了“做什么”,真正“动手做”全靠MCP提供的工具能力:
-
执行第一步读文件:Agent调用文件系统MCP Server提供的
read_file工具,传入文件路径,获取到代码内容。# 伪代码:调用MCP工具 code_content = mcp_client.call_tool( "read_file", params={"path": "src/auth.py"} ) -
执行第二步安全扫描:Agent先通过MCP的文件工具读取Skill包里的
check_security.py脚本,再调用代码执行MCP工具运行脚本,得到扫描结果。 -
执行第四步输出报告:Agent加载Skill包里的
report_template.md模板,把前面几步的结果按模板格式整理好,生成最终的结构化审查报告。
整个流程的分工总结
- Skill是指挥的“大脑”:负责定流程、定标准、做编排,告诉Agent先做什么后做什么、按什么标准判断;
- MCP是执行的“手脚”:负责落地每一步具体操作,读文件、跑脚本、调接口,真正和外部系统交互。
缺了Skill,Agent拿着一堆工具不知道按什么顺序用,全靠模型临场发挥,输出质量不稳定;
缺了MCP,Skill里的流程再详细也只是纸上谈兵,没法真正落地执行。
下面这张流程图可以清晰地展示 Skill 和 MCP 在「代码审查」任务中的协作关系:
五、落地参考:什么时候用MCP?什么时候封装Skill?
很多朋友做Agent项目的时候,会纠结什么能力该放MCP里,什么逻辑该封装成Skill。这里给大家两个核心判断原则,以及对应的落地场景。
1. 适合封装成MCP工具的场景
核心原则:只做「动作」,不做「判断和规划」
- 通用的底层能力:比如文件读写、数据库查询、API调用、邮件发送、代码执行
- 和具体业务流程无关、可以被多类任务复用的原子操作
- 有明确输入输出、不需要复杂决策的单一动作
简单说:所有“和外部系统交互的单一动作”,都适合做成MCP工具,作为通用能力底座沉淀下来。
2. 适合封装成Skill的场景
核心原则:封装「流程、标准、知识」
- 有固定流程的标准化业务任务:比如代码审查、数据分析报告、文档格式校验、竞品信息整理
- 有明确输出标准、判断规则的重复性工作
- 包含最佳实践、需要统一输出质量的任务
简单说:所有“有固定SOP的一类任务”,都适合封装成Skill,把最佳实践沉淀下来,让Agent每次都按最优流程执行。
3. 生产级最佳实践:能力与流程分离
在真正的生产级Agent系统里,通常会做分层设计:
- 底层:MCP能力层,统一接入所有外部工具和数据能力,做成通用的能力底座,全公司复用;
- 上层:Skill业务层,基于不同的业务场景,封装各类Skill流程模块,不同业务线可以复用底层的MCP能力。
这种分层设计的好处是:底层能力统一维护,不用每个业务重复造轮子;上层流程可以快速迭代,适配不同业务的个性化需求,扩展性和可维护性都会好很多。
下面这张分层架构图可以清晰地展示生产级 Agent 系统的设计思路:
六、拓展:和其他相关概念的边界
为了帮大家彻底理清Agent技术栈,我们再补充两个容易混淆的概念,帮你建立完整的认知。
1. 和Agent开发框架(LangGraph、AutoGen)的区别
很多人会把MCP、Skill和开发框架放在一起比,其实它们根本不是一个层级的东西:
- 开发框架是Agent的运行底座:负责任务调度、状态管理、多智能体协作,是整个Agent程序的运行容器;
- MCP是框架里的一个组件:专门负责工具接入,是框架能力的一部分;
- Skill是框架里的业务模块:可以被框架加载、调度,用来实现具体的业务逻辑。
打个比方:框架是手机操作系统,MCP是手机的硬件接口(比如充电口、摄像头),Skill是手机里安装的一个个App。
2. 和普通Function Calling的区别
还有人会问:MCP不就是函数调用吗,和普通的Function Calling有什么区别?
- 普通的Function Calling是零散的、各自定义的:每个项目自己写工具定义、自己写调用逻辑,换个项目就不能用了;
- MCP是统一的标准化协议:只要符合MCP规范的工具,任何兼容的Agent、任何框架都能直接用,不需要重复做适配,相当于行业通用的“接口标准”。
而Skill和Function Calling就差得更远了:Function Calling是单次工具调用,而Skill是包含多步工具调用的完整工作流,两者不在一个层级。
最后
如今Agent技术正在快速走向分层和标准化:底层有统一的工具接入协议,中层有成熟的开发框架,上层有可复用的流程知识模块。
很多人学Agent喜欢追新概念,今天出个新框架就去学,明天出个新协议就去看,最后反而越学越乱。其实更重要的是理清每个技术的定位和边界:它解决了什么问题?处在技术栈的哪一层?和其他技术是什么关系?
理解了这些,就不会被层出不穷的新概念带着走,才能搭出真正稳定、高效、易维护的Agent系统。
更多推荐



所有评论(0)