当你在构建 AI Agent 时,面对 Function Calling、MCP、Skills 这三个层层递进又彼此竞合的概念,是否感到困惑:它们之间到底是什么关系?我的场景应该选哪个?本文将从架构演进的视角,系统梳理这条技术路线的来龙去脉,并给出可落地的决策框架。

2025 年被称为 AI Agent 落地元年。从个人开发者到大型企业,所有人都在问同一个问题:如何让 LLM 真正对接外部系统,完成有意义的复杂任务?

这个问题看似简单,实则暗藏玄机。LLM 擅长理解和推理,但无法直接访问数据库、调用 API、读写文件;外部系统能力强大,但接口各异、认证复杂、数据格式千差万别。把两者连接起来,就是 Function Calling、MCP、Skills 这三条技术路线试图解决的核心问题。

更关键的是,这三者并非简单的"新旧替代"关系,而是在不同抽象层级上解决不同问题的架构方案。理解它们的本质差异,直接决定了你的 Agent 架构能否在复杂度、可维护性和扩展性之间找到正确平衡。


一、架构演进路径:从 Prompt 到 Skills 的四次跃迁

要真正理解这三者,必须先看清它们出现的历史脉络。这是一条不断抬高抽象层级、降低集成成本的演进路径。

第一跃迁:Prompt Engineering(提示词工程)

最早的方式最直接:把外部系统的使用说明写进 Prompt,让 LLM 直接生成调用代码或命令。

你是一个数据库专家。当用户提问时,请生成对应的 SQL 查询语句。
数据库 schema 如下:
- users(id, name, email)
- orders(id, user_id, amount, created_at)

优势:零开发成本,今天想到明天就能用。
致命缺陷:LLM 生成的 SQL 不可控,复杂 schema 下准确率急剧下降,且每次都要把完整说明塞进上下文,token 消耗巨大。

第二跃迁:Function Calling(函数调用)

OpenAI 在 2023 年推出 Function Calling,本质上解决了一个核心问题:让 LLM 稳定地输出结构化工具调用请求

这是一次质的飞跃——LLM 不再直接生成执行代码,而是输出一个标准化的 JSON,由系统来执行。

{
"tool_calls": [{
"function": {
"name": "query_orders",
"arguments": "{"user_id": 123, "start_date": "2026-06-12"}"
}
}]
}

核心价值:把"非结构化需求→结构化调用"的转换标准化了,Agent 开发者只需要关心两件事:定义工具、实现工具。

遗留痛点:每个外部系统都要单独开发集成函数。你有 10 个系统,就要写 10 套适配代码。这就是 MCP 要解决的问题。

第三跃迁:MCP(Model Context Protocol)

Anthropic 推动的 MCP 本质上是一个标准化接驳协议。它把"每个系统单独适配"变成"每个系统实现一次 MCP Server,所有 Agent 都能用"。

传统方式:Agent A → 适配代码 A → 系统 X
Agent B → 适配代码 B → 系统 X  (重复劳动)
MCP方式:Agent A → MCP Client ─┐
Agent B → MCP Client ─┼→ MCP Server → 系统 X  (一次实现,处处可用)

MCP 于 2024 年底推出,现已捐赠给 Linux 基金会,主流 IDE(VS Code、JetBrains)和 AI 工具(Claude Desktop、Cursor)都在快速接入。

核心价值:工具集成的"USB 标准"。一次实现,多端复用。

遗留痛点:MCP 解决了"怎么调用"的问题,但没解决"怎么组合多个调用完成复杂任务"的问题。流程编排仍然需要在代码里硬编码。

第四跃迁:Skills(技能定义)

Anthropic 在 Claude 中推出的 Skills,本质上试图解决复杂任务流程的定义问题。它的核心洞察是:

纯代码固化流程 → 丧失 LLM 处理不确定性的优势
纯 Prompt 指导流程 → 执行准确性无法保证
Skills = 用自然语言定义流程 + Function Calling 保证执行

Skills 把"怎么做"的答案,从代码迁移到了自然语言文档(SKILL.md),让 LLM 在运行时动态解释执行。

这就是架构演进的最前沿。但这三条路线并非线性替代,而是并存且相互竞合。下文中我们将深入对比它们的本质差异。


二、核心概念深度解析

2.1 Function Calling:AI Agent 的"手"

Function Calling 的本质是 LLM 与外部系统之间的结构化契约

完整调用链路:

用户:"查一下北京今天天气"
↓
系统:将可用工具列表 + 用户请求发给 LLM
↓
LLM:分析请求,决定调用 get_weather(city="北京")
输出标准 JSON tool_calls
↓
系统:解析 JSON,找到 get_weather 函数,执行
↓
系统:将执行结果返回给 LLM
↓
LLM:基于结果生成最终回答给用户

工具描述的质量直接决定调用准确率

LLM 完全依赖工具的 namedescription 来判断何时调用、如何传参。

// ❌ 糟糕的描述
{
"name": "get_data",
"description": "获取数据",
"parameters": {...}
}
// ✅ 好的描述
{
"name": "get_weather",
"description": "获取指定城市当前天气信息。支持中国地级市和部分国际城市。返回温度、湿度、天气状况。",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,如'北京'、'上海'、'New York'"
}
},
"required": ["city"]
}
}

实战经验:工具描述建议控制在 50-150 个 token,太少信息不足,太多会稀释注意力。包含:功能说明、支持范围、返回内容描述。

Function Calling 解决的是单步工具调用问题。当任务需要多步串联(查天气→判断是否适合出行→推荐景点→预订酒店),Function Calling 本身不提供编排能力,需要 Agent 框架(如 ReAct)来完成。


2.2 MCP:工具集成的"USB 标准"

MCP 采用经典的 Client-Server 架构

LLM Application (Host)
↓ MCP Client (内置于 Host)
↓ JSON-RPC 2.0 over stdio/HTTP
↓ MCP Server (由工具提供方实现)
↓
External System (GitHub / Slack / Database / ...)

协议层:基于 JSON-RPC 2.0,定义了工具发现(tools/list)、工具调用(tools/call)、资源管理(resources/read)等标准方法。

MCP 的三类核心能力:

能力类型 说明 典型场景
Tools(工具) 允许 LLM 主动调用的函数 查询数据库、调用 API、读写文件
Resources(资源) 提供给 LLM 的上下文数据 文件内容、数据库 schema、API 文档
Prompts(提示词模板) 预定义的任务模板 “帮我总结这个代码仓库的最新提交”

尽管 MCP 理念优秀,但落地中仍有挑战:

1、"伪标准"风险

各家对 MCP 的实现细节仍有差异,跨平台兼容性不如真正的 USB 标准

2、Server 质量参差不齐

开源 MCP Server 的成熟度差异巨大,生产环境需要严格筛选

3、增加了链路复杂度

原来直接调用函数,现在要经过 MCP Client → MCP Server 的转发,排查问题多了一层


2.3 Skills:用自然语言"编程"Agent

Skills 的核心创新是把流程定义从代码转移到了自然语言文档,但执行仍然通过 Function Calling 保证结构化。

完整生命周期:

【初始化】Claude 启动时加载所有 Skills 的元数据
↓ 每个 Skill 约消耗 100 token(仅元数据,不是完整内容)
【发现】用户发起请求 → Claude 匹配请求与 Skill 描述
↓ 判断是否需要调用某个 Skill(本质是一个分类决策)
【加载】决定调用 → Function Calling 触发 load_skill(skill_name)
↓ 将对应 SKILL.md 的完整内容加载到上下文
【执行】Claude 按照 SKILL.md 的指令执行任务
↓ 需要调用工具时,仍然通过 Function Calling 完成

**Skills 最深刻的地方在于:**它承认了 Agent 开发的核心矛盾——确定性和灵活性的权衡

纯代码流程:确定性高,但无法处理边界情况
纯 Prompt:灵活,但输出不可控
Skills:在关键节点用自然语言保留灵活性,
在执行层面用 Function Calling 保证确定性

这是一种非常聪明的架构取舍。


三、三者本质差异的深度对比

3.1 问题域对比

维度 Function Calling MCP Skills
解决的核心问题 LLM 如何稳定输出结构化调用 工具如何标准化接入 LLM 复杂任务流程如何定义和维护
抽象层级 执行层 集成层 编排层
目标用户 Agent 开发者 工具提供方 + Agent 开发者 Agent 开发者 + 领域专家
变更成本 改代码 改 MCP Server 改 SKILL.md(无需改代码)

3.2 竞合关系分析

MCP vs Skills:两者都试图解决"如何让 Agent 完成复杂任务",但路径不同。

关键判断:当流程高度确定性、变化不频繁时,MCP(+代码实现)更合适;当流程需要经常调整、或者涉及大量隐性知识("按品牌指南"这类难以完全代码化的规则)时,Skills 更有优势。

Function Calling vs 其他两者:Function Calling 是基础设施,MCP 和 Skills 都构建在它之上。没有 Function Calling,MCP 和 Skills 都无法工作。


四、实战决策框架:什么场景选什么

基于大量实践案例,以下决策树可以直接指导你的技术选型:

你的场景需要 Agent 对接外部系统吗?
│
├─ 否 → 纯 Prompt + LLM 即可,不需要下文任何技术
│
├─ 是,且任务简单(单步工具调用)
│  └─ 直接用 Function Calling,定义工具函数即可
│
├─ 是,且需要集成多个外部系统
│  │
│  ├─ 这些系统有现成的 MCP Server?
│  │  └─ 是 → 用 MCP,省去重复开发
│  │  └─ 否 → 评估:是否有多个 Agent 会复用这些工具?
│  │           ├─ 是 → 投入开发 MCP Server,一次开发多处复用
│  │           └─ 否 → 直接用 Function Calling 适配,更快上线
│  │
│  └─ 集成后,任务是否需要多步骤流程编排?
│     │
│     ├─ 流程高度确定性,变化少
│     │  └─ 用代码(或 MCP Server 内的代码)固化流程
│     │
│     └─ 流程需要处理边界情况,或经常调整
│        └─ 用 Skills 定义流程(SKILL.md)

五、未来展望:Agent 工具链将走向何方

趋势 1:MCP 将成为 Agent 生态的基础设施
就像 REST API 成为 Web 服务的基础设施一样,MCP 有望成为 Agent 工具接入的事实标准。预计未来 12 个月内,主流 SaaS 产品都会提供官方 MCP Server。

趋势 2:Skills 将走向结构化 + 可执行
纯自然语言的 Skills 是好的起点,但生产环境需要更结构化的定义。预计未来会出现 Skills 的 DSL(领域特定语言),兼具自然语言的表达力和代码结构化的可靠性。

趋势 3:Agent-to-Agent 协议将兴起
当单个 Agent 的能力通过 MCP/Skills 标准化之后,下一个自然的问题是:Agent 之间如何协作? Google 已经提出了 A2A(Agent-to-Agent)协议,这是一个值得密切跟踪的方向。

趋势 4:工具调用将向"自主优化"演进
目前的工具调用策略(用什么工具、什么顺序)仍然需要人工设计。未来,我们会看到 Agent 通过强化学习自主优化工具调用策略,类似 AlphaGo 通过自我对弈优化下棋策略一样。


总结

Function Calling、MCP、Skills 三者,分别对应了 AI Agent 工具链的三个关键问题:

Function Calling  →  "怎么调用工具?"(执行层)
MCP              →  "工具怎么标准化接入?"(集成层)
Skills           →  "复杂任务流程怎么定义?"(编排层)

最后一句建议

选型的本质,是在开发效率、执行可靠性、流程灵活性三者之间做权衡。

不要陷入"技术选型焦虑"。这三个技术都不是非此即彼的关系。 架构演进应该是需求驱动的,而不是技术驱动的。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

更多推荐