大语言模型虽能生成文本,但存在知识截止和无法执行的问题。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 Call MCP ReAct Skills
层级 执行层 协议层 编排层 能力层
粒度 单次调用 连接标准 多步循环 完整流程
类比 手指 神经系统 大脑 肌肉记忆
有无状态 无状态 有连接状态 有推理状态 有领域知识
可否独立使用 可以 需要工具 需要工具 需要 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

更多推荐