Skills vs MCP vs Function Calling 的介绍

在当前大模型(LLM)应用开发的语境下,Skills(技能) 、MCP(Model Context Protocol,模型上下文协议) 和 Function Calling(函数调用) 是三个核心概念。它们共同解决了同一个问题:如何让"只会聊天"的 AI 变成"能干实事"的智能体(Agent)?

本文将为你深入浅出地拆解这三者的定义、区别以及它们如何协同工作。


1. Function Calling(函数调用):AI 的"动作接口"

定义: Function Calling 是大模型原生支持的一种能力。它允许开发者预先定义一些函数(包括函数名、描述、参数结构),并将其提供给模型。当用户提出需求时,模型会判断是否需要调用这些函数,并输出结构化的调用指令(通常是 JSON 格式),而不是直接回答文字。

  • 核心逻辑: 模型输出意图 -> 程序执行代码 -> 程序将结果回传给模型 -> 模型生成最终回复。
  • 地位: 它是现代 Agent 的基石。没有它,模型只能做文字游戏,无法与外部系统交互。

2. Skills(技能):Agent 的"能力库"

定义: Skills 是一个更高层次的抽象概念,它通常是 Function Calling 的封装与集合。

如果说 Function Calling 是底层的"API 调用",那么 Skills 就是一个"具备特定功能的工具包"。例如,一个"搜索技能(Search Skill)"可能内部封装了联网搜索、结果过滤、内容总结三个函数。

  • 特点:
    • 可复用性: 技能可以被不同 Agent 共享。
    • 模块化: 开发者可以像积木一样,给 Agent 装备"查询数据库"、"发送邮件"、"操作 Excel"等不同技能。
    • 上下文感知: 技能通常包含了完成任务所需的 prompt 和约束条件。

3. MCP(Model Context Protocol):连接的"通用语言"

定义: MCP 是由 Anthropic 推出的一项开源协议。如果说 Function Calling 和 Skills 是 Agent 的"手",那么 MCP 就是连接这些手与各种数据源的"标准接口"。

在 MCP 出现之前,如果你想让 AI 读取 GitHub 的数据,你需要为 GitHub 写一套适配器;想读取 Google Drive,又得写一套。MCP 旨在解决这种碎片化问题:它定义了一种标准,让任何数据源(服务器)都能以统一的方式与任何 AI(客户端)对话。

  • 核心优势:
    • 标准化: 开发者只需要遵循 MCP 标准,就可以一次开发,处处运行(适用于 Claude、Cursor 等支持 MCP 的平台)。
    • 解耦: 模型不再需要关心底层 API 的具体实现,只需要通过 MCP 协议获取数据、资源或执行工具。

三者对比总结

维度 Function Calling Skills MCP
本质 模型原生能力 (Feature) 业务逻辑封装 (Abstraction) 通信标准/协议 (Protocol)
解决的问题 模型如何调用代码 Agent 如何组织能力 如何标准化接入工具与数据
抽象层级 底层 (Low-level) 中层 (Mid-level) 顶层 (Infrastructure)
类比 电脑的 CPU 指令集 电脑安装的软件 USB 接口标准

它们如何协同工作?

想象你要开发一个"自动化财务助手":

  1. MCP(基础设施层): 你通过 MCP 服务器连接了公司的财务数据库和钉钉 API。因为遵循了 MCP 协议,你的 Agent 可以直接"挂载"这些数据源。
  2. Skills(逻辑层): 你在 Agent 中配置了"财务报表生成技能"。这个技能内部调用了 MCP 提供的接口,自动提取数据并整理。
  3. Function Calling(执行层): 当用户说"帮我生成上个月的报表"时,模型通过 Function Calling 识别出需要调用"财务报表生成"这个 Skill,最终完成任务。

总结

  • Function Calling 是模型与代码交互的手段;
  • Skills 是通过这些手段构建出的业务能力;
  • MCP 是让这些技能和工具能够跨平台、跨系统高效连接的标准。
相关推荐
冬奇Lab13 小时前
一天一个开源项目(第246篇):rec —— Recursive 自研的本地推理引擎,在 Mac 上跑 Flint 编码模型,称比 llama.cpp 快 1.4–2.6 倍
人工智能·开源·llm
嘎嘎风17 小时前
MiniMind 学习笔记之 25 Web UI 与 LLaMA-Factory:两条“不写代码”的路径
gpt·llm·源码阅读
沛东的认知和实践21 小时前
模型会自己伪造工具结果:一次 Agent 评测暴露的 Harness 工程问题——从一句 `count=0`,看模型输出、工具执行和上下文权威的边界
llm·agent
ZhengEnCi21 小时前
MCP与Function Calling怎么选:大模型工具调用三种方式的面试级对比
面试·llm·mcp
中趴菜1 天前
资料检索 1|直接放入全文、按需读文件和先检索,有什么区别?
llm
自养Agent1 天前
Agent Harness 从用到会造:prompt 不是问句,是控制面板
人工智能·大模型·llm·prompt
清如许.1 天前
提示缓存(Prompt Caching)是如何工作的?
人工智能·大模型·llm
愤怒的代码1 天前
读懂大模型的"记忆":KV Cache 到底是什么?
人工智能·llm·agent
Cosolar1 天前
上下文工程的第一公里:LangChain 讲透 Agent 检索的三大坑与六套解法
人工智能·llm·agent
lucas_AI1 天前
GEPA 优化出来的提示词为什么又臭又长?ESPO:先诊断,再动手,投票定生死
llm