Tool Calling技术是连接大模型与现实世界的关键桥梁,本质上是模型自身能力与推理引擎接口支持的结合。该技术使大模型能识别用户意图,选择并调用适当工具,整合结果生成回复。文章详细解析了其工作原理、技术架构,并通过OpenAI框架实例演示实现方法,同时强调不同模型在Tool Calling能力上的差异及未来智能化发展方向,为构建复杂AI应用奠定基础。

连接大模型与现实世界的桥梁

在日常与基于大语言模型(LLM)的Chatbot产品交互中,我们逐渐发现这些聊天机器人能力越来越强,比如 Deepseek 可以通过联网检索来查询12306车票信息,但是目前还无法直接购买车票,部分能力当前似乎还难以实现。这正是工具调用(Tool Calling) 技术要持续解决的核心问题。通过工具调用,大模型就能像人类使用手机APP一样操作外部系统,极大扩展了其能力边界。

但一个常见的问题是:Tool Calling 到底是大模型本身的能力,还是推理引擎接口的能力?首先回答下这个问题:

1、 Tool Calling 的本质—双重依赖关系

要理解 Tool Calling 的能力归属,我们需要明确一个关键观点:这是模型自身能力与推理引擎接口支持相结合的产物,两者缺一不可。

1.1 大模型的基础能力

大模型本身需要经过训练,能够理解用户的请求何时需要调用外部工具,并且能够根据提供的工具描述,严格按照规定的格式(如JSON Schema)输出应该调用哪个工具以及具体的参数是什么。这确实是模型的一种内在能力,不同的模型在此项能力上表现有差异。例如早期DeepSeek-R1便不太能很好的支持tool calling,主要还是源于模型的训练。

而DeepSeek V3.1应该便具备了很好的tool calling能力,大家在选用模型时候需要稍加留意。

模型的作用

  • 识别用户意图中需要外部操作的部分
  • 生成结构化工具调用请求(函数名+参数)
  • 根据工具执行结果生成最终的自然语言回复

1.2 推理引擎的接口支持

光有"大脑"想还不够,需要外部的推理引擎来提供一套标准化的机制。这套机制包括:

  • 接收工具定义:允许开发者以结构化方式向模型声明可用工具
  • 引导模型输出:通过特定的提示模板将用户查询和工具定义信息组织成模型的输入
  • 解析模型响应:提供后处理模块能够可靠地从模型输出中识别并提取工具调用指令

2、 Tool Calling 的工作原理与技术架构


2.1 完整工作流程

工具调用工作的核心流程可以概括为以下步骤:

  1. 意图识别:模型分析用户查询,判断是否需要调用外部工具
  2. 工具选择:从可用工具中选择最合适的工具
  3. 参数提取:从用户查询中提取工具所需的参数
  4. 工具执行:外部系统实际执行工具调用
  5. 结果整合:模型将工具执行结果整合到最终回复中


3 、实例演示OpenAI框架下的 Tool Calling 实现

3.1 OpenAI 原生 API 实现

以下是使用 OpenAI 风格 API 实现股票查询的完整示例:

代码来源:根据官方技术文档整理

from openai import OpenAI
import json
client = OpenAI()
# 1. Define a list of callable tools for the model
tools = [
{
"type": "function",
"name": "get_horoscope",
"description": "Get today's horoscope for an astrological sign.",
"parameters": {
"type": "object",
"properties": {
"sign": {
"type": "string",
"description": "An astrological sign like Taurus or Aquarius",
},
},
"required": ["sign"],
},
},
]
def get_horoscope(sign):
return f"{sign}: Next Tuesday you will befriend a baby otter."
# Create a running input list we will add to over time
input_list = [
{"role": "user", "content": "What is my horoscope? I am an Aquarius."}
]
# 2. Prompt the model with tools defined
response = client.responses.create(
model="gpt-5",
tools=tools,
input=input_list,
)
# Save function call outputs for subsequent requests
input_list += response.output
for item in response.output:
if item.type == "function_call":
if item.name == "get_horoscope":
# 3. Execute the function logic for get_horoscope
horoscope = get_horoscope(json.loads(item.arguments))
# 4. Provide function call results to the model
input_list.append({
"type": "function_call_output",
"call_id": item.call_id,
"output": json.dumps({
"horoscope": horoscope
})
})
print("Final input:")
print(input_list)
response = client.responses.create(
model="gpt-5",
instructions="Respond only with a horoscope generated by a tool.",
tools=tools,
input=input_list,
)
# 5. The model should be able to give a response!
print("Final output:")
print(response.model_dump_json(indent=2))
print("\n" + response.output_text)

3.2 这里有几个非常重要的注意事项:

工具定义规范

工具定义需要遵循 JSON Schema 标准,这是确保模型正确理解工具功能的关键:

# 1. Define a list of callable tools for the model
tools = [
{
"type": "function",
"name": "get_horoscope",
"description": "Get today's horoscope for an astrological sign.",
"parameters": {
"type": "object",
"properties": {
"sign": {
"type": "string",
"description": "An astrological sign like Taurus or Aquarius",
},
},
"required": ["sign"],
},
},
]

函数可以在每个 API 请求的 tools 参数中进行设置。
一个函数由其 schema(模式) 定义,该模式告知模型函数的作用以及它期望的输入参数。
函数定义包含以下属性:

字段 描述
type 始终为 function
name 函数名称(例如:get_weather
description 说明何时以及如何使用该函数
parameters 定义函数输入参数的 JSON schema
strict 是否在调用函数时强制启用严格模式

下面是一个 get_weather 函数的示例定义。

{
"type": "function",
"name": "get_weather",
"description": "Retrieves current weather for the given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City and country e.g. Bogotá, Colombia"
},
"units": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Units the temperature will be returned in."
}
},
"required": ["location", "units"],
"additionalProperties": false
},
"strict": true
}

多轮工具调用处理:复杂的查询可能需要多次工具调用,这就需要维护对话上下文,这篇文章我们先不过多展开。

3.3 需要规避的常见陷阱

  1. 函数命名规范:使用清晰明确的动词-名词组合
  • ❌ “name”: “func1”

  • ✅ “name”: “get_weather”

  1. 描述清晰准确:详细说明工具功能和适用场景
  • ❌"description": “天气功能”

  • ✅ “description”: “获取指定城市的当前天气情况,包括温度和天气状况”

3.参数定义合理:避免冗余参数,明确必需参数

4、总结与展望

Tool Calling 技术是大模型与现实世界连接的关键桥梁。通过本文的分析,我们可以明确:

  1. 双重依赖关系:Tool Calling 能力既依赖于大模型本身的推理能力,也依赖于推理引擎的接口支持。
  2. 技术成熟度:当前主流框架(OpenAI API、LangChain、Spring AI等)都已提供完善的 Tool Calling 支持,但在具体实现上要甄别差异。
  3. 模型差异性:不同模型在 Tool Calling 能力上存在显著差异,需要根据具体需求选择合适的模型。
  4. 未来发展方向:Tool Calling 正朝着更加智能化、自动化的方向发展,未来可能会出现更复杂的多工具协作和自主规划能力。
  5. 通过合理运用 Tool Calling 技术,我们可以让大语言模型突破其内在限制,真正成为能够与现实世界交互的智能代理(Agent),为构建更加复杂的AI应用奠定坚实基础。

本文代码示例仅供参考,实际使用时请根据具体框架版本进行调整和优化。

如何从零学会大模型?小白&程序员都能跟上的入门到进阶指南

当AI开始重构各行各业,你或许听过“岗位会被取代”的焦虑,但更关键的真相是:技术迭代中,“效率差”才是竞争力的核心——新岗位的生产效率远高于被替代岗位,整个社会的机会其实在增加。

但对个人而言,只有一句话算数:
“先掌握大模型的人,永远比后掌握的人,多一次职业跃迁的机会。”

回顾计算机、互联网、移动互联网的浪潮,每一次技术革命的初期,率先拥抱新技术的人,都提前拿到了“职场快车道”的门票。我在一线科技企业深耕12年,见过太多这样的案例:3年前主动学大模型的同事,如今要么成为团队技术负责人,要么薪资翻了2-3倍。

深知大模型学习中,“没人带、没方向、缺资源”是最大的拦路虎,我们联合行业专家整理出这套 《AI大模型突围资料包》,不管你是零基础小白,还是想转型的程序员,都能靠它少走90%的弯路:

  • ✅ 小白友好的「从零到一学习路径图」(避开晦涩理论,先学能用的技能)
  • ✅ 程序员必备的「大模型调优实战手册」(附医疗/金融大厂真实项目案例)
  • ✅ 百度/阿里专家闭门录播课(拆解一线企业如何落地大模型)
  • ✅ 2025最新大模型行业报告(看清各行业机会,避免盲目跟风)
  • ✅ 大厂大模型面试真题(含答案解析,针对性准备offer)
  • ✅ 2025大模型岗位需求图谱(明确不同岗位需要掌握的技能点)

所有资料已整理成包,想领《AI大模型入门+进阶学习资源包》的朋友,直接扫下方二维码获取~

在这里插入图片描述

① 全套AI大模型应用开发视频教程:从“听懂”到“会用”

不用啃复杂公式,直接学能落地的技术——不管你是想做AI应用,还是调优模型,这套视频都能覆盖:

  • 小白入门:提示工程(让AI精准输出你要的结果)、RAG检索增强(解决AI“失忆”问题)
  • 程序员进阶:LangChain框架实战(快速搭建AI应用)、Agent智能体开发(让AI自主完成复杂任务)
  • 工程落地:模型微调与部署(把模型用到实际业务中)、DeepSeek模型实战(热门开源模型实操)

每个技术点都配“案例+代码演示”,跟着做就能上手!

在这里插入图片描述

课程精彩瞬间

在这里插入图片描述

② 大模型系统化学习路线:避免“学了就忘、越学越乱”

很多人学大模型走弯路,不是因为不努力,而是方向错了——比如小白一上来就啃深度学习理论,程序员跳过基础直接学微调,最后都卡在“用不起来”。

我们整理的这份「学习路线图」,按“基础→进阶→实战”分3个阶段,每个阶段都明确:

  • 该学什么(比如基础阶段先学“AI基础概念+工具使用”)
  • 不用学什么(比如小白初期不用深入研究Transformer底层数学原理)
  • 学多久、用什么资料(精准匹配学习时间,避免拖延)

跟着路线走,零基础3个月能入门,有基础1个月能上手做项目!

img

③ 大模型学习书籍&文档:打好理论基础,走得更稳

想长期在大模型领域发展,理论基础不能少——但不用盲目买一堆书,我们精选了「小白能看懂、程序员能查漏」的核心资料:

  • 入门书籍:《大模型实战指南》《AI提示工程入门》(用通俗语言讲清核心概念)
  • 进阶文档:大模型调优技术白皮书、LangChain官方中文教程(附重点标注,节省阅读时间)
  • 权威资料:斯坦福CS224N大模型课程笔记(整理成中文,避免语言障碍)

所有资料都是电子版,手机、电脑随时看,还能直接搜索重点!

在这里插入图片描述

④ AI大模型最新行业报告:看清机会,再动手

学技术的核心是“用对地方”——2025年哪些行业需要大模型人才?哪些应用场景最有前景?这份报告帮你理清:

  • 行业趋势:医疗(AI辅助诊断)、金融(智能风控)、教育(个性化学习)等10大行业的大模型落地案例
  • 岗位需求:大模型开发工程师、AI产品经理、提示工程师的职责差异与技能要求
  • 风险提示:哪些领域目前落地难度大,避免浪费时间

不管你是想转行,还是想在现有岗位加技能,这份报告都能帮你精准定位!

在这里插入图片描述

⑤ 大模型大厂面试真题:针对性准备,拿offer更稳

学会技术后,如何把技能“变现”成offer?这份真题帮你避开面试坑:

  • 基础题:“大模型的上下文窗口是什么?”“RAG的核心原理是什么?”(附标准答案框架)
  • 实操题:“如何优化大模型的推理速度?”“用LangChain搭建一个多轮对话系统的步骤?”(含代码示例)
  • 场景题:“如果大模型输出错误信息,该怎么解决?”(教你从技术+业务角度回答)

覆盖百度、阿里、腾讯、字节等大厂的最新面试题,帮你提前准备,面试时不慌!

在这里插入图片描述

以上资料如何领取?

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

在这里插入图片描述

为什么现在必须学大模型?不是焦虑,是事实

最近英特尔、微软等企业宣布裁员,但大模型相关岗位却在疯狂扩招

  • 大厂招聘:百度、阿里的大模型开发岗,3-5年经验薪资能到50K×20薪,比传统开发岗高40%;
  • 中小公司:甚至很多传统企业(比如制造业、医疗公司)都在招“会用大模型的人”,要求不高但薪资可观;
  • 门槛变化:不出1年,“有大模型项目经验”会成为很多技术岗、产品岗的简历门槛,现在学就是抢占先机。

风口不会等任何人——与其担心“被淘汰”,不如主动学技术,把“焦虑”变成“竞争力”!

在这里插入图片描述

在这里插入图片描述

最后:全套资料再领一次,别错过这次机会

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

加粗样式

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐