简介:从Prompt到MCP再到Agent Skill,三者常被混为一谈。本文拆解它们在任务表达、工具调用与外部能力接入上的核心差异,配对比表格与典型场景,帮助开发者判断何时用哪种组合,并给出迁移与使用边界的务实建议。
在构建基于大模型的智能体(Agent)系统时,开发者经常会接触到三个核心概念:Prompt(提示词)、MCP(模型上下文协议) 以及 Agent Skill(智能体技能)。很多初次接触 Agent Skill 的开发者会产生一个直观的疑问:“这不就是把 Prompt 换了个目录存放吗?”
这个疑问并非毫无道理。如果一个所谓的 Skill 内部仅仅包含几段静态的提示词,没有流程编排、没有上下文管理、没有工具调用、也没有结果验证标准,那么它本质上确实就是一个“长 Prompt”,没有必要将其神化或过度包装。
然而,真正具有工程价值的 Agent Skill,其内涵远不止于告诉模型“你要怎么做”。它的核心价值在于将一类任务的最佳实践沉淀为可复用、可组合、可验证的能力单元。这包括:明确何时触发该技能、按照什么步骤执行、需要注入哪些上下文、允许调用哪些工具、以及最终如何判断输出结果是否合格。
为了帮助技术选型者、架构师和开发者更清晰地理解这三者的定位差异,本文将从定义、核心差异、适用场景、选型依据及迁移注意事项等维度展开系统对比。
在早期的 LLM 应用开发中,开发者通常只通过 Prompt 来驱动模型。随着应用复杂度提升,模型需要访问外部数据(如数据库、文件系统、代码仓库),于是出现了 Function Calling / Tool Calling 机制,让模型能够发起工具调用。再后来,为了让模型能够以标准化方式接入各类外部能力,MCP 这类协议应运而生。
而 Agent Skill 的出现,则是为了解决另一个层次的问题:当任务变得复杂、需要多步骤协作、需要遵循特定规范时,如何将“怎么做”的知识从单次 Prompt 中抽离出来,形成可维护、可复用的资产。
这三者分别对应了智能体运行时的不同层面,但因其都涉及“告诉模型做什么”这一表象,导致在实践中经常被混为一谈。
Prompt 是用户或系统在单次交互中向模型传达的任务描述。它是最直接、最轻量的指令形式。例如:“帮我 review 这次 git diff”“把这段代码翻译成 Python”“总结这篇文档的要点”。
Prompt 的核心特征是一次性、即时性、上下文绑定。它描述的是当前这一轮对话中用户的具体意图。
Function Calling(或 Tool Calling)是模型与外部工具之间的调用契约。它允许模型根据当前上下文,决定调用哪个工具、传入什么参数,并接收工具返回的结果。例如,模型判断需要执行 git diff 命令、读取某个文件、或运行测试脚本时,就会通过 Function Calling 机制发起调用。
它的核心特征是动态决策、参数化调用、结果回传。它解决的是“模型如何与外部世界交互”的问题。
MCP(Model Context Protocol)是一种标准化协议,用于将文件系统、数据库、代码托管平台、API 服务等外部能力以统一的方式接入到模型或 Agent 运行时中。它解决的是“外部能力如何被模型发现、描述和调用”的问题。
它的核心特征是标准化接口、能力发现、跨平台复用。MCP 让开发者不必为每个模型或每个 Agent 框架单独适配外部工具,而是通过协议层实现解耦。
Agent Skill 是将某一类任务的做法沉淀下来的结构化知识单元。它通常包含:
它的核心特征是可复用、可组合、可验证、带流程与规则。它解决的是“如何把一类任务的专家经验固化下来,让 Agent 在需要时按需读取并执行”的问题。
尽管四者在概念层次上不同,但它们并非彼此孤立,而是共同服务于智能体的任务执行。其共同点包括:
| 对比维度 | Prompt | Function Calling | MCP | Agent Skill |
|---|---|---|---|---|
| 定位 | 单次任务描述 | 工具调用契约 | 外部能力接入协议 | 一类任务的流程与经验沉淀 |
| 作用范围 | 当前一轮交互 | 单次工具调用 | 跨会话、跨模型的能力接入 | 一类任务的完整执行周期 |
| 是否包含流程 | 通常不包含 | 不包含 | 不包含 | 包含 |
| 是否包含验证标准 | 通常不包含 | 不包含 | 不包含 | 通常包含 |
| 是否可复用 | 低(每次需重新描述) | 中(工具定义可复用) | 高(协议层标准化) | 高(技能可复用、可组合) |
| 典型载体 | 对话消息 | 工具定义与调用请求 | 协议规范与适配层 | 技能描述文件、目录结构 |
| 与外部系统交互 | 无直接交互 | 通过工具调用间接交互 | 直接接入外部能力 | 通过工具或 MCP 间接交互 |
| 维护成本 | 低,但重复描述成本高 | 中,需维护工具定义 | 中高,需维护协议适配 | 中,需维护技能内容与版本 |
| 适用场景 | 简单、一次性任务 | 需要动态调用工具的任务 | 多模型、多框架的能力复用 | 复杂、多步骤、需规范化的任务 |
1. 层次不同:Prompt 是“意图层”,Function Calling 是“调用层”,MCP 是“接入层”,Skill 是“知识层”。
Prompt 关注“用户想要什么”,Function Calling 关注“模型如何调用工具”,MCP 关注“外部能力如何被接入”,而 Skill 关注“这类任务应该怎么做”。
2. 生命周期不同:Prompt 随对话结束而失效,Skill 可长期沉淀。
Prompt 是一次性的,而 Skill 是可以被多次复用、迭代和版本管理的资产。一个设计良好的 Skill 可以在不同项目、不同模型、不同 Agent 框架中迁移使用。
3. 验证能力不同:Prompt 通常没有验证标准,Skill 通常内置验证标准。
例如,在代码审查场景中,Prompt 可能只是“帮我 review 这次 git diff”。而一个 Code Review Skill 会明确规定:先看正确性和安全性,再看性能和可维护性;输出按 P0/P1/P2 分级;不要只提格式建议。这些规则使得输出质量更可控、更可预期。
Agent Skill、Prompt、Function Calling 和 MCP 并非互相替代的关系,而是智能体系统中不同层次的构建块。
只有 Prompt,它就是长 Prompt。有流程、有上下文、有工具、有检查标准,它才像一个真正能复用的 Skill。在实际选型中,建议以任务复杂度、复用频率、验证需求和团队运维能力为依据,避免过度设计,也避免低估复杂任务的工程化需求。