大语言模型虽能生成文本,但存在知识截止和无法执行的问题。Function Call技术通过让模型输出结构化JSON声明所需函数调用,由宿主程序执行并反馈结果,使模型具备实时信息获取和执行能力。文章深入解析了Function Call、MCP、ReAct、Skills四大技术如何协同工作,实现大模型的实用化,适合想要学习大模型应用开发的程序员参考。

一、Function Call:从「能说」到「能做」的第一步

1.1 它解决了什么问题?

大语言模型的本质是一个文本续写器——给它一段文字,它预测下一段最合理的文字。这意味着它天生有两个致命缺陷:

缺陷一:知识截止 — 训练数据有截止日期,无法获取实时信息

缺陷二:无法执行 — 它能"说"该怎么做,但不能真正"去做"

Function Call 的核心思想很简单:让模型不仅输出文字,还能输出一段结构化的 JSON,声明"我需要调用某个函数"。宿主程序拦截这个 JSON,执行对应的函数,再把结果喂回模型。

1.2 技术细节:一次 Function Call 到底发生了什么?

图:Function Call 完整执行序列

上图展示了一次完整的 Function Call 流程。关键技术点在于:

工具定义(Tool Schema):每个可调用的函数都用 JSON Schema 描述其参数类型和含义。这是模型"理解"工具能力的基础:

{
  "name": "get_weather",
  "description": "查询城市天气",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {"type": "string", "description": "城市名"},
      "date": {"type": "string", "description": "日期, YYYY-MM-DD"}
    },
    "required": ["city"]
  }
}

模型的决策过程:模型并不是简单地"关键词匹配"来决定调用哪个函数。它会:

\1. 理解用户意图的语义(不是匹配关键词)

\2. 从所有可用工具中选择最匹配的(可能选零个、一个或多个)

\3. 根据上下文推断缺失参数(如用户没说日期,推断为"今天")

\4. 生成严格符合 JSON Schema 的参数对象

1.3 演进:从单次调用到并行调用

2023 年 Function Call 刚出来时只支持单次调用:模型一轮只能调一个函数。到 2024 年底,主流模型已支持并行函数调用(Parallel Tool Use)——模型可以在一轮中同时请求调用多个函数,宿主程序并行执行后统一返回结果。

这大幅提升了复杂任务的效率。比如用户问「北京和上海今天天气对比」,模型会同时发出两个 get_weather 调用,而不是串行执行两次。

但 Function Call 本质仍是一次性的、无状态的。要让模型能自主完成多步骤任务——比如"先搜索资料,再写文章,最后发布"——需要更高级的编排模式。

二、ReAct:让大模型学会「边想边做」

2.1 论文核心:为什么要同时推理和行动?

2022 年普林斯顿的 Yao 等人发表了开创性的论文《ReAct: Synergizing Reasoning and Acting in Language Models》。他们发现了一个关键洞察:

纯推理(Chain-of-Thought):模型能想得很深,但容易"幻觉"——因为它只在自己的知识里打转,无法验证想法。

纯行动(Act-only):模型能调用工具,但缺乏规划——它不知道为什么要调这个工具,也不知道拿到结果后下一步该做什么。

ReAct = 让推理指导行动,让行动结果修正推理。

图片

图:ReAct 推理-行动循环流程

2.2 一个完整的 ReAct 执行过程

以「查询苹果公司最新市值并与微软对比」为例,看 ReAct 循环如何运作:

[Thought 1] 用户想对比苹果和微软的市值。
  我需要分别查询两家公司的最新市值数据。
  先查苹果。

[Action 1] search_web("Apple Inc market cap 2026")

[Observation 1] 苹果市值约 3.8 万亿美元(2026 年 4 月)

[Thought 2] 拿到了苹果的数据。
  现在需要查微软的市值,才能做对比。

[Action 2] search_web("Microsoft market cap 2026")

[Observation 2] 微软市值约 3.4 万亿美元(2026 年 4 月)

[Thought 3] 两个数据都有了。
  苹果 3.8 万亿 vs 微软 3.4 万亿,
  苹果领先约 11.8%。
  可以给出最终答案了。

[Final Answer] 截至 2026 年 4 月,苹果市值约 3.8 万亿...

2.3 ReAct 的三个关键设计决策

设计决策作用如果缺失会怎样
Thought 可见推理过程写入上下文,指导后续决策模型重复调用相同工具,陷入死循环
Observation 注入真实数据取代模型的猜测模型依赖训练数据,产生过时信息
循环终止条件模型自主判断何时该停止无限循环消耗 token 和时间

2.4 2026 年的 ReAct 演进

到 2026 年,ReAct 已经从单 Agent 模式扩展为更复杂的架构:

Plan-and-Execute:先用一个规划 LLM 生成完整计划,再用执行 LLM 逐步实施。比 vanilla ReAct 更适合长任务。

Reflexion:在 ReAct 循环外增加"反思"环节——任务完成后回顾整个过程,提炼经验,下次做得更好。

Multi-Agent ReAct:多个 Agent 各自运行 ReAct 循环,通过 A2A 协议协作,主 Agent 负责拆解和汇总。

三、MCP:标准化一切工具连接

3.1 Function Call 的碎片化困境

Function Call 虽好,但带来了一个严重的工程问题:每个 AI 应用都需要自己实现工具接入。

假设你的 AI 应用要接 5 个工具(搜索、文件、数据库、浏览器、日历),如果市场上有 3 个 AI 应用(Claude Desktop、VS Code AI、自研系统),那就是 5 x 3 = 15 个独立的接入实现。每加一个工具或一个应用,整个矩阵都要扩展。

这就是经典的 M x N 问题。HTTP 协议解决了 Web 的 M x N 问题,USB 解决了硬件外设的 M x N 问题——AI 工具连接需要自己的 USB。

3.2 MCP 的架构设计

在这里插入图片描述

图:MCP 三层协议架构

MCP(Model Context Protocol)由 Anthropic 在 2024 年底提出并开源,其核心设计分为三层:

第一层:传输层

stdio 模式:MCP Server 作为子进程运行,通过标准输入/输出通信。最简单、最安全,适合本地工具。

HTTP + SSE 模式:MCP Server 作为独立 HTTP 服务运行,支持远程连接。适合共享型工具(如数据库、云服务)。

两种模式上层协议完全一致,切换无需改代码。

第二层:协议层(JSON-RPC 2.0)

MCP 复用了成熟的 JSON-RPC 2.0 协议,而不是发明新轮子。核心方法:

initialize — 握手协商双方能力

tools/list — 列出 Server 提供的所有工具

tools/call — 调用指定工具并传参

resources/read — 读取数据资源

第三层:能力层(三大原语)

原语说明谁控制
Tools可执行的函数(如查天气、写文件)模型主动调用
Resources可读取的数据源(如文件内容、DB 记录)应用程序控制
Prompts预定义的交互模板(如"代码审查"流程)用户选择触发

3.3 一个 MCP Server 长什么样?

from mcp.server import Server
from mcp.types import Tool, TextContent

app = Server("weather-server")

@app.list_tools()
async def list_tools():
    return [Tool(
        name="get_weather",
        description="查询城市天气",
        inputSchema={
            "type": "object",
            "properties": {
                "city": {"type": "string"}
            }
        }
    )]

@app.call_tool()
async def call_tool(name, arguments):
    if name == "get_weather":
        result = await weather_api.query(arguments["city"])
        return [TextContent(text=json.dumps(result))]

# 启动后,任何 MCP 客户端都能自动发现并调用
app.run(transport="stdio")

写一次 MCP Server,就能被 Claude Desktop、VS Code Copilot、Cursor、以及任何支持 MCP 的应用调用。这就是协议标准化的力量——M x N 降为 M + N。

3.4 MCP 生态爆发

截至 2026 年 4 月,MCP 生态已经覆盖:

文件与代码:filesystem、Git、GitHub、GitLab

数据库:PostgreSQL、MySQL、SQLite、MongoDB

浏览器:Puppeteer、Playwright、Browser MCP

设计工具:Figma、Pencil(本文的架构图就是通过 MCP 驱动 matplotlib 生成的)

云服务:AWS、GCP、Cloudflare、Docker

… 以及数千个社区贡献的 Server

四、Skills:可复用的能力封装

4.1 为什么需要 Skills?

有了 Function Call + ReAct + MCP,模型已经能自主调用工具完成任务。但在实际部署中,我们会发现一个问题:同样的工具组合 + 同样的流程,在不同场景下反复出现。

比如"发布一篇微信公众号文章"这个任务,每次都涉及:

1. 搜索素材(调用 search MCP Server)
2. 撰写文章(调用 LLM 自身能力)
3. 排版转 HTML(调用 formatter 工具)
4. 生成配图(调用 image generation MCP Server)
5. 发布到公众号(调用 wechat-publish API)
6. 检查发布结果(验证步骤)

如果每次都靠 ReAct 从零推理这个流程,不仅慢(每步都要思考),还不稳定(可能遗漏步骤或顺序出错)。

Skill = 经验的固化。它把"我已经知道怎么做"这件事封装起来:已验证的工具组合 + 固定的执行流程 + 特定领域的知识 = 一个可复用的能力单元。

4.2 Skill 的技术构成

一个 Skill 通常包含四个部分:

组成部分说明
Prompt 模板告诉 Agent "你现在的角色是XXX,你需要完成XXX"的系统提示词
工具清单这个 Skill 需要哪些 MCP Server 和 Tools
执行脚本可选的确定性流程代码(不是所有步骤都需要 LLM 推理)
领域知识特定领域的规则和约束(如"微信会剥离 style 标签,必须用内联样式")

4.3 Skill vs Prompt vs Agent

这三个概念容易混淆,区分如下:

Prompt:一段静态的指令文本。没有工具,没有流程,没有执行能力。类比一张「菜谱」。

Skill:Prompt + 工具 + 流程 + 知识的打包。可被 Agent 激活和执行。类比一个「训练有素的厨师」。

Agent:拥有多个 Skills、能自主决策调用哪个 Skill 的完整实体。类比一个「餐厅经理」。

五、四层协同:完整的 Agent 技术栈

在这里插入图片描述

图:AI Agent 四层协同架构

现在把四者放在一起看。当你对 AI 说**「帮我调研 AI Agent 趋势,写篇公众号文章发布」**时,一个完整的 Agent 内部是这样运作的:

Step 1 - Skills 层:Agent 识别到这是一个"调研+写作+发布"任务,激活 research-to-wechat Skill。

Step 2 - ReAct 层:Skill 启动 ReAct 循环。Thought: “先搜索 AI Agent 2026 相关资料”。

Step 3 - MCP 层:ReAct 决定调用搜索工具,通过 MCP 协议连接搜索 Server,发送 tools/call 请求。

Step 4 - Function Call 层:search_web(“AI Agent 2026 trends”) 被实际执行,返回搜索结果。

Step 5 - ReAct 层:Observation 接收结果。Thought: “资料足够,开始写文章”。

Step 6 - MCP 层:连接图表生成 Server,生成架构图。

Step 7 - Function Call 层:matplotlib 渲染图表,返回图片数据。

Step 8 - ReAct 层:Thought: “文章和图表就绪,调用发布 API”。

Step 9 - Function Call 层:POST wechat-publish API,返回发布成功。

Step 10 - Skills 层:Skill 执行完毕,向用户报告结果。

这个例子不是假设——你正在阅读的这篇文章,就是这个架构的实际产物。本文的架构图由 matplotlib MCP 工具生成,内容由 ReAct 循环驱动搜索和写作,最终通过微信发布 API 的 Function Call 推送到你的屏幕上。

六、对比与思考

6.1 四者关系一张表

维度Function CallMCPReActSkills
层级执行层协议层编排层能力层
粒度单次调用连接标准多步循环完整流程
类比手指神经系统大脑肌肉记忆
有无状态无状态有连接状态有推理状态有领域知识
可否独立使用可以需要工具需要工具需要 Agent

6.2 安全问题不可忽视

当 AI 从"只会说话"进化到"能调工具、能自主循环、能执行多步任务"时,安全威胁面也发生了本质变化:

Prompt 注入升级:恶意内容可以通过工具返回值(如网页内容、文件内容)注入到 Agent 的上下文中,劫持后续行为。

权限扩散:Agent 具备文件读写、API 调用等能力后,一次误操作的影响范围远大于纯文本对话。

Tool Confusion:恶意 MCP Server 可能伪装成正常工具,窃取用户数据或执行恶意操作。

目前的应对方案包括:MCP 的能力协商机制(Server 声明权限边界)、Agent 的人工审批节点(关键操作需用户确认)、以及沙箱化执行环境。但这仍是一个快速演进的领域。

写在最后

Function Call 让模型长出了手指,MCP 为这些手指接通了神经系统,ReAct 赋予了大脑边想边做的能力,Skills 则沉淀下肌肉记忆。

四者的融合,正在把 AI 从「被动回答问题的工具」变成「主动解决问题的助手」。而这个转变,不是发生在未来——你手中的这篇文章,就是它今天的作品。

最后

对于正在迷茫择业、想转行提升,或是刚入门的程序员、编程小白来说,有一个问题几乎人人都在问:未来10年,什么领域的职业发展潜力最大?

答案只有一个:人工智能(尤其是大模型方向)

当下,人工智能行业正处于爆发式增长期,其中大模型相关岗位更是供不应求,薪资待遇直接拉满——字节跳动作为AI领域的头部玩家,给硕士毕业的优质AI人才(含大模型相关方向)开出的月基础工资高达5万—6万元;即便是非“人才计划”的普通应聘者,月基础工资也能稳定在4万元左右。

再看阿里、腾讯两大互联网大厂,非“人才计划”的AI相关岗位应聘者,月基础工资也约有3万元,远超其他行业同资历岗位的薪资水平,对于程序员、小白来说,无疑是绝佳的转型和提升赛道。
图片
图片
对于想入局大模型、抢占未来10年行业红利的程序员和小白来说,现在正是最好的学习时机:行业缺口大、大厂需求旺、薪资天花板高,只要找准学习方向,稳步提升技能,就能轻松摆脱“低薪困境”,抓住AI时代的职业机遇。

如果你还不知道从何开始,我自己整理一套全网最全最细的大模型零基础教程,我也是一路自学走过来的,很清楚小白前期学习的痛楚,你要是没有方向还没有好的资源,根本学不到东西!

下面是我整理的大模型学习资源,希望能帮到你。

请添加图片描述

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

1、大模型学习路线

img

2、从0到进阶大模型学习视频教程

从入门到进阶这里都有,跟着老师学习事半功倍。

在这里插入图片描述

3、 入门必看大模型学习书籍&文档.pdf(书面上的技术书籍确实太多了,这些是我精选出来的,还有很多不在图里)

在这里插入图片描述

4、 AI大模型最新行业报告

2026最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

img

5、面试试题/经验

img

【大厂 AI 岗位面经分享(107 道)】

img

【AI 大模型面试真题(102 道)】

img

【LLMs 面试真题(97 道)】

img

6、大模型项目实战&配套源码

img

适用人群

在这里插入图片描述

四阶段学习规划(共90天,可落地执行)
第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型

  • 带你了解全球大模型

  • 使用国产大模型服务

  • 搭建 OpenAI 代理

  • 热身:基于阿里云 PAI 部署 Stable Diffusion

  • 在本地计算机运行大模型

  • 大模型的私有化部署

  • 基于 vLLM 部署大模型

  • 案例:如何优雅地在阿里云私有部署开源大模型

  • 部署一套开源 LLM 项目

  • 内容安全

  • 互联网信息服务算法备案

  • …

    👇👇扫码免费领取全部内容👇👇

    在这里插入图片描述

3、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

Logo

更多推荐