news 2026/4/14 15:17:24

收藏!大模型Function Call实战教程:从零开始,让你的AI会“做事“

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收藏!大模型Function Call实战教程:从零开始,让你的AI会“做事“

1基本概念


当你第一次看到Function Call这个名字,直译就是“函数调用”。没错,它说的就是“调用函数”。但你可能会好奇:LLM 怎么会去调用函数呢?

在理解这个之前,先想一想什么是“函数”。其实你每天都在无意识地使用函数:比如你在百度或 Google 搜索一个内容,搜索结果出来后,你点击其中一条链接。这个“点击”背后,其实就是一次函数调用——系统把你选择的内容,从数据库里取出来,再展示到网页上。

这些过程你看不到,但它们都在后台自动完成。Function Call 在大模型里也是类似的:模型并不自己“知道”所有答案,而是通过调用外部的函数(工具),把结果取回来,然后再回答你。

如果让你来设计Function Call,你会先想到什么? 大多数有编程经验的同学,第一反应可能是:

  • 这个函数要完成什么功能?
  • 需要哪些参数?
  • 参数怎么传递?
  • 最后返回什么结果?

没错,这就是函数的基本要素。那接下来问题来了:LLM 怎么知道你写的这些函数呢?

答案是:你需要把它们“注册”到 LLM 中。所谓注册,其实就是把函数的定义(功能说明、参数格式、返回结果类型)描述一遍,交给 LLM 记住。这样,当模型遇到相关问题时,它就能主动选择调用哪个函数,并生成对应的参数。

接下来,模型会把生成的参数传给你定义的函数,函数运行得到结果。然后这个结果会被当作“新的上下文”再交给 LLM,模型结合结果和你原来的问题,生成最终的答案。

上述描述就是function call的完整过程。

2 为什么需要 Function Call?


最初的大模型(GPT-2、GPT-3)只能靠自己“记忆”生成答案。

但一旦用户问到实时信息(如“今天上海的天气”)或外部操作(如“帮我订张票”),模型就无能为力,只能“胡编”一个结果。

这时研究者就意识到:模型必须要能和外部世界互动

2023年6月 OpenAI正式推出Function Calling,其发展历程如下:

大模型很强,但它的“脑子”来自训练时刻的快照:知识是静态的、通用的、不可验证的。一旦问题落到真实业务里,就会立即遇到三类鸿沟:

  • 第一,时效性——“明天杭州的天气”“这班机有没有延误”“库存还剩多少”都需要实时系统给答案;
  • 第二,个性化与权限——“我这个账号的账单”“我司本月的销售额”“我工单的处理进度”属于企业或个人的私域数据,模型本体既看不到也不该看到;
  • 第三,行动与闭环——不仅要回答,还要去做事:下单、发邮件、建工单、拉取报表、写回数据库,单靠语言生成办不到。

Function Call 的价值就在于把“会说话”的模型,接上“会做事”的工具:开发者先以函数/工具的声明定义可用能力(名称、参数、返回值和安全边界),模型在理解用户意图后自动选择并生成结构化参数,由应用去调用真实世界的 API 或服务,拿到可验证的结果再让模型组织成自然语言回复。

这样一来,答案可追溯、可审计、可复现,降低幻觉,还能把企业现有系统(数据库、搜索、ERP、工单、物联网设备)无缝纳入 AI 工作流。

换句话说,Function Call 让大模型从“静态记忆 + 概率式输出”,进化为“按需取数 + 安全执行 + 可控反馈”的执行中枢:既补齐时效与专有知识的短板,又把回答变成可落地的动作闭环,这就是它在任何严肃场景中不可或缺的原因。

3Function Call 的核心机制(工作原理)


  • 应用向大语言模型发起请求:应用端将用户的自然语言输入(Prompt)以及可用函数的定义信息(Function Declarations / Tool Specifications)一并传递给大语言模型。这样模型在理解问题时,就知道有哪些外部工具可供调用。

  • 大语言模型进行决策:模型内部经过推理,判断是直接生成自然语言回复,还是需要调用一个或多个外部工具。如果需要调用工具,模型会生成对应的函数名及参数(Function Call Arguments)。

  • 模型返回调用指令或直接回复, 模型将处理结果返回给应用端。这个结果可能是:

  • 一条包含函数名与参数的函数调用指令。

  • 一条可直接展示的自然语言消息,或

  • 应用解析并执行函数:当应用收到函数调用指令时,会解析出函数名与参数,并实际执行对应的函数(通常是调用外部 API 或服务)。

  • 应用将函数执行结果反馈给模型:应用把函数执行的原始输出结果(如 API 返回的 JSON 数据)与上下文提示词一并传入模型,使其能够基于数据生成用户可理解的回答。

  • 大语言模型生成最终响应或继续调用,模型接收到函数执行结果后,会决定:

  • 如果问题尚未解决,继续触发后续的工具调用,直到获得足够信息。

  • 直接基于结果生成最终自然语言答案,或

4 实际案例展示


我用一个简单的例子来解释Function Call的工作原理:

如果我现在问ChatGPT:杭州今天天气如何?内部是怎么运作的呢?

第 1 步:用户提问

  • 用户:输入提示词(Prompt) → “杭州今天天气如何?”

第 2 步:应用 (ChatGPT)

  • ChatGPT 接收到用户问题。

  • ChatGPT 需要判断:这个问题能直接回答吗?还是要调用外部数据?

  • ChatGPT 发现:天气是实时数据,自己“不会算”,于是决定调用外部函数

  • 函数声明(Function Declaration),应用层(比如 ChatGPT 产品)会提前写好一组函数的定义(声明),比如:

  • 每个函数都会有名字(name)、描述(description)、参数(parameters schema)

  • 定义的格式必须符合OpenAI 规范(目前是 JSON Schema),这样模型才能正确理解。

  • get_weather(location, date)

  • get_stock_price(symbol, date)

  • get_inventory(item_id)

第 3 步:模型生成调用参数模型收到“用户问题 + 函数声明”后,先理解用户需求,再在可用函数里选择合适的一个,并生成调用所需的函数名和参数,例如:

函数名:get_weather 参数:{location=杭州,date=2025-09-21}

第 4 步:函数调用 API

  • ChatGPT 向天气 API发送请求。
  • API 返回结果:
{ "temperature": "28°C", "condition": "多云" }

第 5 步:应用返回答案

  • Function Call调用的结果给到模型;
  • 模型生成答案给到应用ChatGPT;
  • ChatGPT最终响应给用户;

5 什么是“把函数注册到模型中”


在 Function Call 的机制里,有一个常见的问题是:模型本身并不知道你有哪些函数。那么,如何让模型“知道”并正确调用呢?这就涉及到函数注册的过程。

通过 Prompt 告诉模型

  • 在调用模型时,除了用户的自然语言问题,还需要在 Prompt 中一并写入函数的定义。
  • 定义包括:函数名、参数类型、参数说明、返回值格式,甚至权限或使用场景。
  • 这样,模型在推理时会把这些函数当作“候选工具”,并选择合适的一个生成参数。
  • 在前面章节的示例里,我展示过一个较复杂的 Prompt,它把所有函数的描述一次性写清楚,每次调用模型时,函数定义会和用户问题一起传入。

通过 API 调用参数传递(tools 字段)

  • 在程序层面,调用大模型时通常会有一个tools字段(或类似参数)。
  • 你可以把需要的函数用 JSON Schema 的格式列出来:包括函数名、参数、说明等。
  • 当请求发给大模型时,这些函数就相当于被“注册”进了模型当前的上下文。
  • 模型在生成响应时,会根据工具的定义返回结构化的函数调用请求。

所谓“函数注册到模型中”,并不是把函数永久写进模型,而是在每次会话或调用时,通过 Prompt + tools 参数,把函数的定义临时交给模型。模型就能在推理时“记住”这些函数,并在需要时调用。

prompt 和 tools 参数都需要在调用模型 API 时一并传入。

05 Function Call与MCP(Model Context Protocol )、Agent关系

有了 Function Call,模型能“调一次工具”。但真实业务往往不是一次就完,还牵涉到先调谁、怎么排顺序、失败如何重试,以及工具如何被统一接入与复用。于是就有了两条演进线:Agent负责把多步流程编排成闭环,MCP负责把工具接入标准化、可发现、可治理。接下来我们就讲它们与 Function Call 的关系。

Function Call与MCP关系:

MCP 把“工具/函数”的定义与托管从应用层挪到独立的 MCP Server。你按统一 Schema(名字、参数、返回值、权限等)在各台服务器上暴露工具;应用侧只要作为MCP Client连接这些服务器,就能自动发现并调用工具,不再为每个客户端/每个模型重复接入一次。像CursorDifyChatGPT(自定义连接器/Responses API)都已经能作为 MCP 客户端对接远程 MCP 服务器,用的就是这一套标准。

更严谨地说:MCP ≠ 只是“函数换了个放置位置”

  • Function Call:描述“如何调用一个工具”的模型行为(选择工具 → 产出结构化参数 → 执行 → 回传结果)。
  • MCP:描述“工具如何被发现与接入”的协议层(服务发现、能力声明、会话与鉴权、可观测、跨应用复用)。
  • 典型链路是:MCP 负责发现/接入→ 模型在客户端内用Function Call产出参数 → 客户端调用该 MCP 工具并回传结果给模型。换言之,MCP 是“接线标准”,Function Call 是“用电方式”。

所以说,MCP未来可以形成规模商业化模式:

  • 商业模式:既然 MCP 解决了“工具可复用、跨应用接入”的问题,那在 Server 端确实可以设计为按调用次数、按 QPS、按并发量收费,就像现在的 API(OpenAI、Stable Diffusion、各类 SaaS API)一样。

与Agent关系:

  • MCP Server 里暴露了若干工具(搜索、数据库、RAG、第三方 API 等),MCP 把工具摆到桌面上。
  • MCP Client(如 ChatGPT、Cursor、Dify)连上去,把这些工具“挂载”到模型可见的环境。
  • Agent 决定怎么用这些工具完成目标,形成执行逻辑,决定先调哪个工具、后调哪个工具,利用 Function Call机制来一步步调用 MCP 工具,直到达成目标。

因此未来可能会出现:Agent-as-a-Service + MCP 工具市场。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01教学内容

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

vx扫描下方二维码即可

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:

04视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!

0690+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 13:59:13

Hunyuan-MT-7B与电子病历系统集成实现多语健康档案

Hunyuan-MT-7B与电子病历系统集成实现多语健康档案 在西藏林芝的一家县级医院里,一位藏族老人用母语描述着持续数日的胸痛症状。接诊医生听后皱起眉头——虽然能大致理解,但关键术语的模糊表达让他难以准确判断是心绞痛还是胃食管反流。过去,…

作者头像 李华
网站建设 2026/4/12 12:48:36

Hunyuan-MT-7B模型安全性分析:是否存在数据泄露风险

Hunyuan-MT-7B模型安全性分析:是否存在数据泄露风险 在企业对AI模型的落地需求日益增长的今天,一个核心矛盾逐渐凸显:我们既希望使用高性能的大语言模型提升效率,又极度担忧敏感信息在翻译、处理过程中被外泄。尤其是在金融、政务…

作者头像 李华
网站建设 2026/4/10 13:04:56

【MCP MLOps实战指南】:从零搭建高效机器学习运维体系

第一章:MCP MLOps概述与核心理念 MCP MLOps(Machine Learning Operations on Multi-Cloud Platform)是一套面向多云环境的机器学习工程化实践框架,旨在提升模型开发、部署与运维的自动化水平和协作效率。该体系融合了DevOps原则与…

作者头像 李华
网站建设 2026/4/12 1:47:49

3分钟用Java Record构建REST API数据模型原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速生成一个博客系统的API数据模型原型,包含:1) 文章Record(标题、内容、作者);2) 评论Record(内容、评论者);3) 用户Profile Reco…

作者头像 李华
网站建设 2026/4/14 17:41:45

DVWA安全测试平台能和Hunyuan-MT-7B结合吗?探讨可能性

DVWA安全测试平台能和Hunyuan-MT-7B结合吗&#xff1f;探讨可能性 在网络安全教学与渗透测试实践中&#xff0c;我们常常面临一个现实问题&#xff1a;大量漏洞利用案例、技术文档和攻击载荷说明都以英文为主。对于非母语开发者或初学者而言&#xff0c;理解诸如<script>…

作者头像 李华
网站建设 2026/4/14 18:49:15

5分钟构建0XC0000005错误检测原型:快马平台实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 在快马平台上快速开发一个0XC0000005错误检测原型&#xff0c;要求&#xff1a;1) 监控指定进程的退出代码&#xff1b;2) 检测到0XC0000005时触发警报&#xff1b;3) 记录错误发生…

作者头像 李华