Agent Skill、MCP与Prompt的区别解析

作者:很菜不狗2026.11.04 10:45浏览量:0

简介:Prompt、MCP与Skill是构建Agent应用时最容易被混淆的三类机制。本文从架构层次、功能边界、接入成本、安全运维与适用场景等维度系统对比三者差异,并以旅游规划Agent为例说明其协同方式,帮助开发者厘清分层职责,做出合理的技术选型与组合使用决策。

一、对比背景:为什么这三个概念总被放在一起讨论

在构建Agent应用时,开发者几乎必然会同时接触三类东西:Prompt(提示词)、MCP(模型上下文协议)和Skill(技能)。无论是基于开源框架自建,还是使用百度智能云等平台提供的Agent开发能力,这三者都会出现在同一次Agent任务的执行链路里,且都会影响模型最终的行为表现,因此很容易被混为一谈。

但事实上,三者处于完全不同的抽象层次,解决的是完全不同的问题:

  • Prompt决定“模型如何理解任务”;
  • MCP决定“外部能力如何标准化地交给模型”;
  • Skill决定“在什么场景下、按什么流程使用这些能力”。

如果混淆了它们的职责边界,常见后果包括:把本应沉淀为工具的能力硬写进提示词、把复杂流程全部塞进工具描述里、或者为每个业务场景重复开发同质化的接入代码。本文将围绕这三者(并顺带说明作为底座的Tool层)展开系统对比,帮助读者建立清晰的分层认知。

二、对象定义:各层分别是什么

1. Prompt:与模型的直接对话文本

Prompt是开发者与模型之间最直接的沟通载体,包括系统提示词、用户输入、少样本示例等。它不包含任何可执行逻辑,而是通过自然语言向模型传达角色设定、任务目标、约束规则和输出格式。Prompt解决的是“模型以什么身份、按什么规范完成任务”的问题。

2. Tool:最底层的原子能力

按照主流Agent开发框架的通用定义,Tool本质上就是一段被封装好的函数或接口调用,通常包含名称、功能描述和参数定义。模型根据描述判断何时调用、如何传参,框架负责真正执行并返回结果。例如“查询两地路线”“按城市查询酒店”都可以封装为独立的Tool。Tool的特点是原子化:每个Tool只做一件具体的事。

3. MCP:能力接入的标准化协议

MCP层负责“把标准化的能力提供给大模型”。它是一种开放的协议规范,约定了能力如何声明、如何被发现、如何被调用,具体能力由MCP Server承载,例如出行地图MCP Server、酒店查询MCP Server。对模型而言,MCP屏蔽了底层实现差异——无论后端是内部接口还是外部数据源,模型看到的都是统一格式的工具描述。它的核心价值在于标准化与复用:一次按协议接入,多个Agent、多个应用都可以共享这批能力。

4. Skill:面向任务场景的编排知识

Skill层负责“告诉Agent在哪个任务场景下、如何触发和使用这些能力”。以旅游规划Skill为例:当用户提出旅游规划请求时,Agent应当按照“先查地图确认交通、再查酒店、最后生成行程”的流程执行。Skill通常以结构化文档或配置的形式存在,包含触发条件、执行步骤、能力组合方式、约束与注意事项。它不直接执行任何操作,而是为模型提供“场景化的操作手册”。

三、相同点分析

  1. 目标一致:三者都服务于“让模型更可靠地完成任务”这一目标,是同一条Agent执行链路上的不同环节。
  2. 都需要被模型感知:Prompt直接进入上下文,MCP的工具描述和Skill的场景说明也会以某种形式注入模型上下文,模型据此做出决策。
  3. 都强调描述质量:无论是写Prompt、写工具描述还是写Skill流程,本质都是在“向模型描述世界”,描述越清晰准确,模型执行越稳定。
  4. 可组合而非互斥:三者不是竞争关系,而是分工协作关系,通常会同时出现在同一个Agent任务中,只是各自履行的职责不同。

四、核心差异分析

1. 架构层次与职责边界

  • Prompt位于模型交互层,只影响“模型怎么想”,本身没有任何执行能力;
  • Tool位于能力执行层,负责“事情真正被做成”;
  • MCP位于能力接入层,是Tool与模型之间的标准化桥梁,本身不执行业务逻辑,只负责统一声明与转发;
  • Skill位于任务编排层,负责“什么场景、按什么顺序、用哪些能力”。

四层自下而上构成“原子能力 → 标准化接入 → 场景化编排 → 行为约束”的完整链路,其中Prompt贯穿始终,为各层提供行为规范。

2. 功能能力差异

  • Prompt能塑造行为、约束输出,但无法让模型调用不存在的能力——提示词写得再好,没有底层工具支撑也查不到实时数据;
  • MCP解决“能力从哪来、怎么统一交付”,但不解决“何时该用、按什么流程用”;
  • Skill解决流程与触发问题,但没有Tool/MCP支撑的Skill只是纸面流程,无法真正落地。

3. 接入方式与开发成本

  • Prompt:接入成本最低,修改文本即可生效,适合快速迭代;但缺乏结构化保障,效果依赖模型的理解能力,复杂规则堆积过多时容易相互冲突;
  • Tool:需要编写函数、定义参数、处理异常,属于常规开发工作量;
  • MCP:需要按协议部署或接入MCP Server,前期有一定改造成本,但标准化收益随接入方数量增加而放大——接入的应用越多,成本摊薄越明显;
  • Skill:成本主要在场景拆解与流程设计,需要业务专家与开发人员协作,把隐性经验显性化。

4. 复用性与标准化程度

  • Prompt与具体任务强绑定,跨项目复用性较弱;
  • MCP标准化程度最高,协议统一后能力可以在多个Agent之间共享;
  • Skill在同类场景内高度复用,但跨场景迁移时需要重新适配。

5. 安全与权限

  • Prompt面临提示注入风险,需要在系统提示词层面做防护与输入校验;
  • MCP作为能力入口,需要建立认证授权、最小权限、数据隔离与调用审计机制,服务端可以集中管控;
  • Skill涉及多能力编排,需要控制触发边界,避免在非目标场景中被误触发。

6. 运维与维护成本

  • Prompt的维护体现为提示词的版本管理与效果评估;
  • MCP Server作为独立服务,需要关注可用性监控、版本升级、容量规划与故障恢复;
  • Skill需要随业务流程变化持续迭代,并与底层能力的版本保持兼容。

五、对比表格

对比维度 Prompt Tool MCP Skill
核心定位 行为约束与任务描述 原子能力执行 能力标准化接入 场景化流程编排
是否可执行 否 是 经协议转发执行 否(指导执行)
标准化程度 无统一标准 各框架自定义 协议统一 无强制标准
接入成本 极低 中 中(一次接入长期复用) 中高(需场景设计)
复用范围 单任务为主 单应用内 跨应用共享 同类场景
安全关注点 提示注入 参数校验 认证、授权、审计 触发边界控制
典型形态 系统提示词文本 函数/API封装 MCP Server 结构化流程文档

六、典型场景:一次旅游规划请求中的四层协同

以旅游规划Agent为例,当用户输入“帮我规划一个三天的城市行程”时:

  1. 系统提示词规定了Agent的角色、语气与输出格式;
  2. 旅游规划Skill被场景命中,Agent获知应遵循“查交通 → 查酒店 → 生成行程”的流程;
  3. Agent依据流程调用出行地图MCP Server提供的路线查询能力、酒店查询MCP Server提供的住宿查询能力;
  4. 底层Tool真正执行查询并返回结果,最终由模型汇总生成行程。

这个例子说明:Tools、MCP、Skill会出现在同一个Agent任务中,但各自履行的职责不同,缺了任何一层,任务的可靠性都会明显下降。

七、示意性代码

  1. # Prompt:定义Agent的角色与行为规范
  2. system_prompt = """
  3. 你是一个旅游规划助手。
  4. 规则:
  5. 1. 涉及地点距离时必须调用地图查询能力,不得凭记忆估算;
  6. 2. 涉及住宿时必须调用酒店查询能力;
  7. 3. 输出行程时按"天"组织,并注明信息来源。
  8. """
  1. # MCP:以标准协议把能力声明给模型
  2. mcp_server:
  3. name: travel-map-server
  4. tools:
  5. - name: map_route_query
  6. description: 查询两地之间的路线与耗时
  7. input: { origin: string, destination: string }
  8. - name: hotel_search
  9. description: 按城市与日期查询酒店
  10. input: { city: string, check_in: date, nights: int }
  1. # Skill:声明任务场景与能力编排逻辑
  2. skill: travel_planning
  3. trigger: 用户请求包含"旅游/行程/攻略"等意图时启用
  4. workflow:
  5. 1. 调用 map_route_query 确认城市间交通与耗时
  6. 2. 调用 hotel_search 获取住宿选项
  7. 3. 结合用户预算与天数生成每日行程
  8. constraints:
  9. - 未获取到地图数据时,不得虚构距离

八、选型建议

  • 如果问题只是模型回答的格式、语气或规则不符合预期,优先调整Prompt,成本最低、见效最快;
  • 如果模型需要获取实时数据或执行动作,先沉淀原子化的Tool;
  • 如果工具数量增多、多个Agent或多个团队需要共享同一批能力,把Tool按MCP协议封装为标准化服务,避免重复适配;
  • 如果某类任务有稳定的执行流程和领域经验,用Skill把流程固化下来,降低模型自由发挥带来的不确定性。

需要强调的是,这些判断都是条件化的:接入方越多、能力复用诉求越强,MCP的标准化收益越大;任务流程越固定、越依赖领域经验,Skill的价值越明显;而无论上层如何设计,Prompt质量始终是影响最终效果的基础变量。

九、使用边界与迁移注意事项

  1. Prompt不是万能的:它无法弥补能力缺失,也不能保证复杂流程被严格执行,关键流程应下沉到Skill与工具层;
  2. MCP不解决决策问题:它只提供统一的能力入口,“何时调用、如何组合”仍需模型推理或Skill引导;
  3. Skill依赖底层能力:设计Skill之前,应先确认所需能力已通过Tool/MCP稳定提供,否则流程无法落地;
  4. 从散装工具迁移到MCP时,需要评估接口格式适配、认证方式切换、调用链路稳定性,并保留灰度发布与回滚手段;
  5. 任何一层变更都可能影响整体效果,建议建立提示词、工具描述、Skill流程的版本管理与回归评估机制。

十、总结

Prompt、MCP、Skill分别回答了Agent体系中的三个不同问题:Prompt回答“模型该怎么做”,MCP回答“能力从哪来、如何标准化交付”,Skill回答“什么场景下按什么流程使用这些能力”。它们不是相互替代的方案,而是分层协作的组件。理解这一分层,是设计可维护、可扩展Agent应用的前提:行为规范交给Prompt,能力交付交给Tool与MCP,流程经验沉淀到Skill——各层各司其职,才能让Agent在复杂任务中保持稳定与可控。