Function Calling 的完整流程是什么?
未标记
考查重点:调用生成、执行与结果回填。提供工具定义,模型生成调用,应用校验执行,按调用 ID 回填真实结果,再由模型继续或回答
本题目录
参考答案
核心回答
Function Calling 是模型根据用户问题和工具定义,生成工具名称及结构化参数,再由应用执行工具、把结果交回模型的过程。完整流程可以分成五步:提供工具定义、模型生成调用、应用校验并执行、按调用标识回填结果、模型继续判断或回答。
例如用户问北京天气,应用把天气工具的用途和城市参数说明发给模型。模型提出查询北京的调用,应用实际请求天气服务,再把查询结果关联到这次调用交回模型,模型才据此组织回答。工具定义不代表函数已经执行;一次任务也可能不调用工具,或者连续调用多轮。
从工具定义到最终回答
这里以应用执行自定义工具的常见方式为例,模型供应商托管的工具可以由其服务端完成执行。
第一步,应用准备工具定义和对话上下文。 工具定义通常包括名称、用途描述和参数 Schema。名称用于分发,描述帮助模型判断何时使用,Schema 说明参数类型、必填项等约束。例如 get_weather 需要 city,可以让温度单位使用有限的枚举。应用把本次问题、必要历史和可用工具一起发送给模型;在框架里,bind_tools 主要完成工具定义的绑定,执行仍需工具执行器或 Agent 运行时。
第二步,模型决定直接回答,还是提出工具调用。 如果需要外部数据,模型返回结构化的工具名和参数,常见协议还会附带调用 ID。应用应解析接口提供的调用字段,不能仅凭回答中出现“我要查天气”就认为有一次有效调用。
第三步,应用检查调用并执行。 应用确认工具存在、参数符合要求,并结合登录用户等可信上下文检查可访问范围,再调用对应函数或接口。结构合法只说明参数满足格式约束,不能证明城市识别正确、资源属于当前用户或操作符合业务条件。
第四步,把实际执行结果关联到原调用。 保留模型提出调用的消息,并按照所用 API 的格式回传工具结果。例如 LangChain 的 ToolMessage 用 tool_call_id 对应原调用;不同供应商的消息字段可能不同。并行查询多座城市时,结果也要各自对应,不能按返回先后猜测归属。查询失败时返回明确的失败信息,不能把模型预想的数据当成工具结果。
第五步,让模型根据结果继续。 信息足够时生成最终回答;还缺信息时可以提出新的工具调用,或向用户询问。应用负责设置调用次数、总时长等停止条件。因此,简单查询常见两次模型请求,但“两次”不是整个机制的固定要求。
下图重点看职责:模型提出调用,应用执行并回填,结果再进入下一次判断。
%%{init: {"themeVariables":{"fontSize":"16px"},"flowchart":{"nodeSpacing":16,"rankSpacing":30,"padding":10}}}%%
flowchart TD
A["应用提供问题、上下文<br/>和工具定义"] --> B["模型判断下一步"]
B -->|可以回答| C["返回答案"]
B -->|需要工具| D["模型生成工具调用<br/>工具名、参数、调用标识"]
D --> E["应用校验并执行<br/>或返回失败信息"]
E --> F["应用关联调用标识<br/>回填实际结果"]
F --> G{"应用检查<br/>是否继续?"}
G -->|允许| B
G -->|达到上限| H["停止,说明未完成部分"]图中的循环由应用或框架驱动。模型给出一次调用意图后,不会自行跳进业务进程执行函数。
怎样判断这条链路接对了?
可以先检查一段最小消息轨迹。下面是机制示意,天气数据为假设值,不是某家 API 的完整请求格式:
用户:北京现在多少摄氏度?
模型:调用 call_1,工具 get_weather,参数 {"city":"北京","unit":"celsius"}
应用:执行天气查询,得到 {"city":"北京","temperature":26,"unit":"celsius"}
应用:回填 call_1 对应的工具结果
模型:根据查询结果,北京当前为 26°C。
排查时沿着“是否产生调用 → 参数是否正确 → 工具是否实际执行 → 结果是否对应并回填 → 模型是否使用结果”检查。只有拿到了 tool_calls,还不能说明外部系统已经执行成功。
追问
多个工具调用能一起执行吗?
没有数据依赖的查询可以在模型、接口和运行时支持时并行执行;后一步需要前一步返回的订单号等数据时,应先取得结果。并行不改变调用与结果的一一对应要求,也不能越过业务约束。
工具调用成功,任务就成功了吗?
还要检查是否查对对象、结果是否完整、最终回答是否准确使用了结果。超时、重试和重复执行等问题,可结合如何提高工具调用可靠性继续展开。
对应教程
- Tools 工具调用:2.2~2.4:工具调用链路、绑定与执行的分工,以及工具结果消息。
- Agent 智能体:1.2~1.3:工具调用怎样进入 Agent 运行循环。
参考资料
- 国内:JavaGuide:大模型结构化输出——Function Calling 到底调用了什么:参考模型表达调用意图、应用执行工具的职责划分,说明业务参数为什么仍需由应用校验。
- 国内:阿里云:Function Calling:参考完整的调用交互过程,串起模型生成调用、应用执行、结果回传与后续多轮调用。
- 国内:AgentScope:工具:结合工具定义的用法,解释函数怎样转成模型可见的 Schema,以及应用执行上下文为何要与模型生成的参数区分。
- 国外:Claude:Define tools:依据工具定义和调用字段的说明,解释模型需要看到哪些信息,以及调用请求怎样表达。
- 国外:LangChain:Tools:参考工具定义、执行与结果返回的用法,把 Function Calling 的各步骤对应到框架中的实现。
相关面经
49 篇快手
Agent 开发工程师大模型的工具调用大致经历哪些步骤?选择或设计工具时,你会如何权衡能力边界、调用成本、可靠性和安全性?
携程
大模型算法工程师说明从用户自然输入到调用后端接口的完整链路
麒麟软件
后端研发工程师你的 Agent 项目中,Tool Calling 是如何使用的?
公司未注明
工具有哪些?怎么发现和调用
纷享销客
后端开发工程师工具是如何注入大模型进行循环调用与观察的?
展开剩余 44 篇面经
蚂蚁集团
AI Agent 应用工程师讲解大模型工具调用原理,以及工具的选型思路
汽车之家
**17. Agent 是如何调用工具的?Function Calling 的原理是什么?**
阿里巴巴
Agent 开发工程师更底层的实现有没有了解过?agent怎么知道要进行工具调用,以及选择哪个工具调用。
东方财富
AI 应用开发工程师水滴
AI全栈水滴
AI 全栈工程师Function calling、MCP、skills讲一下?有自己写过skills的实践吗?
滴滴
Java 开发工程师外部工具和数据源是怎么接入的?
网易
Agent 开发工程师Tool调用流程是什么?如何设计Tool的description以提升调用准确率?
懂车帝
后端开发工程师● 如果需要将工具调用的结果提供给模型生成最终回答,如何实现?
哔哩哔哩
AI Agent 开发### 11、Function Calling和Tool Calling的执行流程是什么?模型是如何判断需要调用工具,以及生成对应参数的?
字节跳动
AI 应用开发工程师选一个你实现的工具,讲清完整调用链路:模型如何知道工具接收哪些参数?模型返回调用请求后,程序如何处理?执行结果如何返回给模型?
恒生电子
AI 应用开发工程师Function Calling 如何实现大模型调用外部 API?模型本身无法执行函数,在整个机制中承担的核心作用是什么?
百度
后端开发工程师Function Calling的原理了解吗?JSON Schema起到什么作用?
阿里巴巴
AI 全栈开发工程师你说用到的 ReAct 模式,工具调用是怎么做的?是基于 Spring AI 还是 LangChain 还是某些框架实现的?
快手
AI 全栈开发工程师(音视频)你是否了解主流 Agent 架构、工具调用链路和 Skill 评测等概念?
BIGO
客户端开发工程师FunctionCall
蚂蚁集团
Agent 开发工程师大模型调用外部工具的底层机制是什么?模型如何决定调用哪个工具?
阿里巴巴
AI 应用开发工程师functioncalling
宁波银行
工具调用
阿里巴巴
Agent 应用开发工程师Agent 是如何实现“调用一个函数/工具”的?底层原理是什么?
蚂蚁集团
全栈开发工程师Agent是如何调用底层工具
快手
AI Agent 开发Function Calling 是怎么设计的?
法本信息
AI Agent 开发你项目里的工具系统是怎么做的?比如一个新工具从定义、注册、被Agent发现,到最后被调用,完整流程是什么?
公司未注明
后端开发你项目里的 Agent 自主决策、工具调用链路是怎么设计的?
百度
Java 开发工程师(智能客服)模型已经思考完成,也选择好了工具,接下来它是怎么真正调用工具的?
阿里巴巴
Agent 应用开发工程师项目二中Function Calling的流程是怎样的?
字节跳动
全栈开发工程师(Agent)agent是怎么调用工具的?
阿里巴巴
Agent项目二中Function Calling的流程是怎样的?
阿里巴巴
大模型推荐算法工程师agent工具调用调用
快手
阿里巴巴
后端开发工程师(AI)Function Calling 的原理是什么?你怎么理解 Tool Use?
阿里国际
AI 应用开发项目中怎么实现fuction calling的
快手
AI AgentFunction Calling 是怎么设计的?
阿里巴巴
AI 应用开发工程师ai开发过程中,调用工具,记忆管理怎么实现的
美团
后端开发工程师Tool Calling 是什么?Agent 怎么自主决策调用?
字节跳动
Agent 开发工程师你的Agent具备哪些核心能力?工具调用的整体流程讲一下,工具注册、解析、调用、结果回传全链路
蚂蚁集团
Agent 开发工程师说一说你对function calling的理解。
蚂蚁国际
AI 应用 / Agent 开发说一说你对function calling的理解。
阿里巴巴
AI 应用开发工程师LocalLife是你自己做的项目吗,说一下其中的function Calling完整的工作流
快手
后端开发Agent 工具调用的完整业务流程是怎样的?
美团
后端开发腾讯
后端开发工程师agent 如何执行工具的
字节跳动
AI 开发工程师tool调用机制
字节跳动
Agent 开发工程师function calling
收录题集
展开剩余 15 份题集
Agent开发面试题
AI Agent 面试 Top50 必刷题
LLM 工具调用面试题
工具管理:参数校验、工具路由与百级工具库
Agent 核心面试题
后训练综合问答
Agent与工具调用
Agent基础概念 请介绍Agent相关的八股概念,并谈谈你对Agent的理解。
工具调用方式与工具类型











