简介:本文厘清Agent Skill、MCP与Prompt三类能力的定位差异:Prompt负责指令表达,MCP负责工具与数据接入,Skill负责可复用专业能力封装。通过架构、复用性、隔离性、适用场景等维度对比,给出何时选Skill而非子代理的选型依据与迁移注意事项。
在构建基于大模型的智能体(Agent)系统时,开发者经常会在几个核心概念之间产生困惑:Prompt(提示词)、MCP(模型上下文协议) 与 Agent Skill(智能体技能) 到底分别解决什么问题?它们之间是替代关系还是互补关系?在什么场景下应该使用 Skill,而不是把能力写死在某个子代理(Sub-Agent)里?
本文围绕这三个对象展开系统对比,帮助技术负责人、架构师和开发者建立清晰的选型判断。
随着智能体架构从”单轮对话”演进到”多工具、多代理协作”,系统里出现的抽象层次越来越多:
三者常被混为一谈,是因为它们最终都表现为”让模型做更多事”。但它们解决的问题域、生命周期、复用边界完全不同。下面先分别定义。
Prompt(提示词)
Prompt 是用户或系统向模型输入的自然语言指令与上下文,用于约束任务目标、输出格式、角色设定和推理步骤。它是最轻量、最直接的能力表达方式,本质上不引入新的执行实体,只影响模型在当前上下文中的行为。
MCP(模型上下文协议)
MCP 是一类用于标准化连接模型与外部工具、数据源、服务的协议层抽象。它关注的是”模型如何以统一方式发现和调用外部能力”,例如访问数据库、文件系统、消息队列、第三方 API 等。MCP 解决的是接入与互操作问题,而不是业务方法论问题。
Agent Skill(智能体技能)
Skill 是对某类专业能力或流程的结构化封装,例如安全审查流程、数据分析方法、代码评审规范等。它可以被多个代理或多段对话调用,具备可移植性和复用性。Skill 更接近”可被任何代理应用的通用专业知识包”。
三者都服务于同一个目标:扩展智能体在特定任务上的有效能力。具体共同点包括:
| 维度 | Prompt | MCP | Agent Skill |
|---|---|---|---|
| 抽象层次 | 指令层 | 协议/接入层 | 能力封装层 |
| 是否引入执行实体 | 否 | 是(外部工具/服务) | 是(可复用能力单元) |
| 主要解决 | 表达与约束 | 工具与数据接入 | 专业流程复用 |
| 复用范围 | 单次或单场景 | 跨模型、跨应用 | 跨代理、跨对话 |
Prompt 的复用通常是”复制粘贴式”的,缺乏强封装;MCP 的价值恰恰在于标准化接入,使同一工具可被不同模型或应用调用;而 Skill 的核心优势是业务方法论层面的复用——同一个安全审查 Skill 可以被代码代理、运维代理同时调用,而无需各自重写流程。
子代理(Sub-Agent)通常为特定工作流量身定制,拥有独立上下文和特定工具权限,适合需要上下文隔离的任务。Skill 则不同:它本身不强调隔离,而是强调可被任意代理加载调用。这正是原文强调的关键点——如果多个代理都需要同一类专业能力,应创建 Skill,而不是把知识写死在某个子代理里。
MCP 直接涉及外部资源访问,需要重点关注身份认证、权限最小化、数据隔离与审计;Skill 通常是流程与知识的封装,安全关注点在于其调用链是否越权;Prompt 的风险则集中在提示注入与信息泄露。
Prompt 维护成本最低但易失控;MCP 需要维护连接、凭证、可用性与版本兼容;Skill 需要版本管理、依赖治理和效果评估。长期看,Skill 的治理成本高于 Prompt,但低于为每个代理重复定制流程的总成本。
一个常见的组合模式如下(示意性伪代码):
agent:prompt: "你是代码审查助手"skills: [安全审查流程, 代码规范检查]mcp_tools: [代码仓库读取, 静态扫描服务]sub_agents: [依赖分析子代理]
从”把知识写死在子代理”迁移到 Skill 时,需注意:能力边界是否真的通用、调用方权限是否收敛、Skill 版本升级是否兼容旧代理、以及效果评估机制是否到位。对于 MCP 接入,则需评估凭证管理、网络稳定性与故障降级策略。
Prompt 管”怎么说”,MCP 管”能连什么”,Skill 管”会做什么专业的事”。三者不是替代关系,而是不同抽象层的协作。判断是否该用 Skill 而非子代理,核心看一点:这项能力是否会被多个代理或多段对话复用。是,则封装为 Skill;否,则放进为特定工作流定制的子代理中。