资讯动态

Function Calling:让大模型从“会聊天”到“会调用工具”

发布时间:2026/10/13 10:27:15 来源:尧图企业网站定制
1. 为什么需要 Function Calling随着大语言模型LLM的发展模型已经具备了很强的文本理解和生成能力可以完成问答、总结、内容生成等任务。但是大模型本身仍然存在一些限制无法直接获取实时信息例如天气、股票、新闻等无法直接访问企业内部数据库无法直接执行代码或调用业务系统模型只能利用训练阶段学习到的知识进行回答。例如用户询问“帮我查询一下北京今天的天气。”如果只依靠大模型它并不能真正访问天气接口只能根据已有知识进行推测。为了让大模型具备与外部世界交互的能力就需要 Function Calling。2. 什么是 Function CallingFunction Calling 是一种让大模型调用外部工具的机制。开发者可以通过定义 Function将可用能力描述给大模型包括函数名称name函数功能描述description参数定义parameters例如开发者向模型提供一个天气查询工具{ name: get_weather, description: 查询指定城市的天气信息, parameters: { city: string } }大模型并不会直接执行这个函数而是理解用户需求后判断是否需要调用该工具并生成对应的调用信息。例如用户输入“北京今天的天气怎么样”模型可能生成{ name: get_weather, arguments: { city: 北京 } }这表示“大模型认为应该调用 get_weather 工具并传入北京作为参数。”真正执行函数的工作需要交给应用程序完成。3. Function Calling 的完整执行流程Function Calling 的核心流程如下用户请求 ↓ 大语言模型LLM ↓ 判断是否需要调用工具 ↓ 生成 Function Call 请求 ↓ Harness 执行对应 Function ↓ 调用外部系统/API/数据库 ↓ 返回执行结果 ↓ LLM 根据结果生成最终回答整个过程中各部分职责不同。4. LLM、Harness 和 Function 分别负责什么4.1 LLM负责理解和决策LLM 主要负责理解用户意图判断是否需要调用工具选择合适的 Function生成调用参数。例如用户“查询我的订单状态。”LLM 判断“这个问题需要查询订单系统因此应该调用查询订单的工具。”但是LLM 不会真的查询数据库。4.2 Harness负责执行和控制流程Harness 可以理解为大模型应用中的执行层。它负责接收 LLM 生成的调用请求解析函数名称和参数调用真实业务代码将执行结果返回给 LLM。例如LLM 输出{ name: query_order, arguments: { order_id: 10001 } }Harness 接收到后queryOrder(10001);然后调用订单服务获取真实结果。因此LLM 负责决定调用什么Harness 负责真正执行什么。4.3 Function提供具体能力Function 本质上是开发者提供给模型使用的工具。例如查询天气查询数据库搜索知识库调用支付接口获取用户信息。通过 Function Calling大模型可以连接更多外部能力。5. 多轮 Function Calling在复杂任务中一次工具调用通常无法完成目标。例如用户“帮我制定一个北京三日旅游计划。”Agent 可能需要第一次调用查询天气工具获取未来天气。第二次调用搜索景点工具获取旅游地点。第三次调用路线规划工具生成合理路线。每次工具执行后的结果都会返回给 LLM由 LLM 判断下一步行动。流程如下用户需求 ↓ LLM分析 ↓ 调用工具 ↓ 获取结果 ↓ LLM判断任务是否完成 ↓ 继续调用工具 / 输出答案这就是多步工具调用能力。6. Function Calling 和 Agent 的关系Function Calling 是构建 Agent 的重要基础能力之一。一个完整的 Agent 通常包含LLM负责理解和推理Tools提供外部能力Memory保存历史信息Planning任务规划State管理当前任务状态。其中Function Calling 解决的是“Agent 如何调用工具”的问题。而 Agent 解决的是“如何让大模型自主完成一个复杂任务。”因此Function Calling ≠ Agent。Function Calling 是 Agent 与外部世界交互的重要方式。7. Function Calling 的应用场景7.1 智能客服用户“帮我查询订单。”Agent 调用query_order()访问订单系统并返回结果。7.2 RAG 知识库问答用户“公司的请假流程是什么”Agent 调用search_knowledge_base()检索企业知识库再由 LLM 生成回答。7.3 智能助手用户“帮我安排明天下午三点的会议。”Agent 可以调用calendar_create_event()创建日程。8. 总结Function Calling 解决了大语言模型无法直接操作外部系统的问题。通过 Function Calling大模型应用不再局限于模型训练阶段已有的知识而是能够调用开发者提供的工具实现获取实时信息查询业务数据执行业务操作完成复杂任务。它让大模型从单纯的“文本生成工具”逐渐变成能够连接现实世界、执行任务的智能应用。在未来的大模型应用开发中Function Calling 将成为构建 Agent 系统的重要基础能力。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑