1. 引言从单体智能到模块化协作在 AI Agent 和智能体架构快速演进的今天如何让大语言模型LLM高效、安全地调用外部工具和数据源已成为决定应用上限的核心问题。目前业界主要存在两种主流的解决方案Skill技能与MCPModel Context Protocol模型上下文协议。许多开发者对它们的概念感到混淆甚至认为它们是相互替代的关系。然而真相远比这更微妙Skill 与 MCP 并非零和博弈而是分别处于不同抽象层级的互补技术。理解它们的底层逻辑与协同方式是构建复杂、健壮 AI 应用的关键。本文将深入剖析 Skill 与 MCP 的本质区别、各自的底层实现原理并揭示它们在实际系统中如何协同工作共同构成 Agent 的“能力骨架”。2. Skill技能Agent 的原子能力单元2.1 什么是 Skill从最朴素的角度理解Skill 是赋予 Agent 的一项具体、可执行的原子能力。它是对“Agent 能做什么”的封装。例如“搜索互联网”、“发送邮件”、“计算数学表达式”、“查询数据库”等都可以被视为一个 Skill。2.2 底层逻辑函数调用Function Calling的进化Skill 的底层逻辑根植于 LLM 的Function Calling函数调用能力。定义阶段开发者需要为每个 Skill 提供一个清晰的描述Description和参数结构Parameters通常用 JSON Schema 定义。这个描述会被注入到 LLM 的上下文中。决策阶段当 LLM 接收到用户问题后它会根据上下文中的 Skill 描述判断是否需要调用某个 Skill 来完成任务。如果需要LLM 会输出一个结构化的 JSON 对象指明要调用的函数名和参数。执行阶段Agent 框架如 LangChain、AutoGen、CrewAI 等解析这个 JSON调用对应的后端函数即 Skill 的实现代码并将执行结果返回给 LLM。生成阶段LLM 根据 Skill 返回的结果组织自然语言回复给用户。关键点Skill 是紧耦合于特定 Agent 框架的。它的定义、注册、调用方式都依赖于该框架的约定。一个为 LangChain 编写的 Skill无法直接迁移到 AutoGen 中使用。2.3 Skill 的优缺点优点简单直接对于特定框架内的开发者定义和使用 Skill 非常直观。性能高效由于是本地函数调用延迟极低。控制力强开发者可以完全控制 Skill 的执行逻辑、错误处理和权限。缺点生态孤岛Skill 无法跨框架、跨平台复用导致重复开发。扩展性差当 Agent 需要接入一个新的外部服务如一个新的 SaaS API时必须为该服务编写一个全新的 Skill并修改 Agent 的配置。维护成本高随着 Skill 数量增多Agent 的上下文窗口压力增大且每个 Skill 的版本更新都需要手动维护。3. MCP模型上下文协议工具层的标准化“USB 接口”3.1 什么是 MCPMCP 是由 Anthropic 提出的一种开放协议旨在标准化 LLM 应用与外部数据源和工具之间的交互方式。可以将其理解为 AI 世界的“USB 接口”。MCP Server一个轻量级的服务器程序它对外暴露一组标准化的接口用于提供资源Resources、工具Tools和提示Prompts。任何数据源或服务如数据库、文件系统、GitHub API、Slack 等都可以通过实现一个 MCP Server 来接入。MCP Client运行在 Agent 或 LLM 应用中的客户端它通过 MCP 协议与一个或多个 MCP Server 建立连接并发现、调用它们提供的工具。3.2 底层逻辑协议解耦与动态发现MCP 的底层逻辑是彻底的解耦。标准化通信MCP 定义了 Client 和 Server 之间通信的 JSON-RPC 协议。这包括如何建立连接通过 stdio 或 SSE、如何列出可用的工具tools/list、如何调用一个工具tools/call等。动态工具发现当 Agent 启动时MCP Client 会连接到配置好的 MCP Server并通过tools/list请求获取该 Server 提供的所有工具列表及其 JSON Schema 描述。这意味着 Agent 无需在代码中硬编码任何工具信息。标准化调用当 LLM 决定使用某个工具时Agent 框架通过 MCP Client 发送tools/call请求到对应的 MCP Server。Server 执行操作并返回结果。资源与提示除了工具MCP 还定义了资源类似 RESTful 的 GET 请求用于获取数据和提示预定义的提示模板进一步丰富了 Agent 的能力来源。3.3 MCP 的优缺点优点生态互通任何遵循 MCP 协议的 Server都可以被任何遵循 MCP 协议的 Client 使用。这彻底打破了 Skill 的生态孤岛。即插即用开发者只需运行一个 MCP ServerAgent 无需修改代码即可发现并使用其能力。这极大地降低了集成新服务的成本。安全隔离MCP Server 可以运行在独立的进程中甚至远程服务器上实现了 Agent 与后端服务的权限和资源隔离。缺点引入开销相比本地函数调用MCP 的 JSON-RPC 通信会引入一定的网络或进程间通信延迟。复杂性增加需要部署和管理 MCP Server对于简单的、仅在一个 Agent 内部使用的工具来说显得有些“重”。协议成熟度作为一个相对较新的协议其生态和最佳实践仍在快速发展中可能存在一些不稳定的情况。4. 协同真相Skill 是“手”MCP 是“工具库”理解了上述区别后两者的协同关系就变得清晰了。它们不是二选一而是分层协作。Agent 框架层大脑与手Agent 框架本身依然需要“Skill”来执行核心的、框架级别的逻辑。例如一个 Agent 的“思考”能力ReAct 循环、记忆管理能力、多 Agent 间的通信能力这些通常作为框架内置的 Skill 存在。这些是 Agent 的“手”是它自身的一部分。外部能力层工具库当 Agent 需要访问外部世界数据库、API、文件系统时它不再需要为每个外部服务编写一个 Skill。相反它通过MCP Client这个统一的“手”去连接一个庞大的、标准化的“工具库”MCP Server 生态。一个典型的协同工作流如下用户提问“帮我查一下上个月 GitHub 仓库的 Star 增长数据并生成一份报告保存到我的 Google Drive。”Agent 思考Agent 框架的“思考”Skill 开始工作它分析任务决定需要调用“GitHub 数据查询”和“Google Drive 文件创建”两个能力。MCP 发现Agent 框架的 MCP Client 连接到已配置的github-mcp-server和google-drive-mcp-server动态获取了它们提供的工具列表如get_star_history、create_file。LLM 决策LLM 根据任务和发现的工具决定先调用get_star_history再调用create_file。MCP 调用Agent 框架通过 MCP Client 向github-mcp-server发送tools/call请求获取数据。然后再向google-drive-mcp-server发送tools/call请求将数据写入文件。结果整合Agent 框架的“生成回复”Skill 将最终结果“报告已保存至你的 Google Drive”返回给用户。5. 实战对比一个具体的例子假设我们要让 Agent 具备“查询公司员工信息”的能力。纯 Skill 方案编写一个 Python 函数query_employee(db_connection, employee_id)。在 Agent 框架中注册这个函数并写好描述和参数 Schema。如果公司更换了数据库从 MySQL 到 PostgreSQL你需要修改这个 Skill 的代码并重新部署 Agent。MCP 方案开发一个employee-db-mcp-server它内部封装了与数据库交互的逻辑并对外暴露一个query_employee工具。在 Agent 的配置中添加这个 MCP Server 的连接信息。如果公司更换了数据库你只需要修改employee-db-mcp-server的内部实现Agent 端无需任何改动。甚至你可以直接使用社区已经开发好的postgres-mcp-server通过配置 SQL 查询来暴露同样的能力。6. 总结与展望特性Skill技能MCP模型上下文协议本质原子能力单元标准化通信协议抽象层级应用层框架内协议层框架间耦合度紧耦合于特定框架松耦合协议标准复用性低跨框架困难高任何 MCP Client 可用动态性静态注册动态发现适用场景Agent 核心逻辑、高性能内部调用外部服务集成、生态共建结论Skill 和 MCP 是 AI Agent 架构中两个不可或缺的组成部分。Skill 定义了 Agent 的“灵魂”和“本能”而 MCP 则为 Agent 提供了连接无限外部世界的“标准接口”。未来的趋势是Agent 框架将专注于强化其核心的“思考”和“规划” Skill而所有与外部世界的交互都将通过 MCP 这个统一的协议层来完成。理解并善用这种协同关系将是构建下一代强大、灵活、可扩展 AI 应用的基石。