01 大模型为什么调用工具

1.1 大模型的本质局限

  • 知识时效性有限

大模型的训练数据存在截止日期(如GPT-4的知识截止到2023年),无法获取实时信息(如天气、股价、新闻)。

工具解决方式:调用搜索引擎、API或数据库获取最新数据。

  • 缺乏精确计算能力

大模型擅长语言逻辑,但复杂数学运算(如积分、统计)可能出错。

工具解决方式:调用计算器、Mathematica或Python代码。

  • 无法直接操作现实世界

模型本身是纯软件,不能发送邮件、控制智能家居或执行物理操作。

工具解决方式:调用API(如发送邮件的SMTP接口、智能家居的IoT平台)。

  • 长文本处理效率低

直接处理超长文档(如100页PDF)时可能丢失细节。

工具解决方式:调用RAG(检索增强生成)工具或文本摘要模型。

1.2 工具调用的核心价值

  • 扩展能力范围

将大模型的“大脑”与工具的“手脚”结合,实现更复杂的任务闭环。

示例:

用户问:“帮我订明天北京飞上海的机票” → 调用航班查询API和支付接口。

  • 提升结果准确性

依赖专业工具避免幻觉(Hallucination)。

示例:

用户问:“计算复利投资10年的收益” → 调用金融计算器而非依赖模型生成。

  • 节省计算资源

简单任务(如单位换算)直接调用工具比用模型推理更高效。

02

工具调用流程

2.1 大模型调用工具流程

详细流程说明:

用户输入: 用户提出问题或请求

模型分析: 大模型分析问题,判断是否需要工具辅助

决策分支:

  • 不需要工具: 直接生成回答
  • 需要工具: 继续工具调用流程

工具调用生成: 模型生成结构化工具调用请求,包括:

  • 工具名称
  • 调用参数
  • 调用方式

工具执行: 系统执行实际工具调用

结果获取: 获取工具执行后的返回结果

结果整合: 模型将工具结果与已有信息整合

最终响应: 生成包含工具结果的完整回答

03

代码DEMO

3.1 LangGraph调用代码:

from typing import Annotated
from langchain_openai import ChatOpenAI
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
from dotenv import load_dotenv  # 用于加载环境变量
from langchain.globals import set_debug
from langchain.globals import set_verbose
from langchain_core.tools import  tool
from langgraph.prebuilt import ToolNode
set_debug(True)
set_verbose(False)
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(filename)s[line:%(lineno)d] - %(funcName)s() - %(message)s')
load_dotenv()  # 加载 .env 文件中的环境变量
# 第一步:定义一个天气搜索工具
@tool
def query_weather(location: str) -> str:
"""天气查询"""
return location + ":天气晴朗,气温25℃"
tools = [query_weather]
llm = ChatOpenAI(model="qwen-max-latest", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
# 第二步:创建一个LLM实例,并绑定工具
llm_with_tools = llm.bind_tools(tools)
# 第三步:创建一个图流程
class State(TypedDict):
messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)
# 第四步:创建一个大模型调用node
def chatbot(state: State):
return {"messages": [llm_with_tools.invoke(state["messages"])]}
graph_builder.add_node("chatbot", chatbot)
graph_builder.add_node("tools", ToolNode(tools=tools))
# 第五步:创建一个工具调用条件路由函数,判断是否路由到工具调用
def route_tools(
state: State,
):
"""
Use in the conditional_edge to route to the ToolNode if the last message
has tool calls. Otherwise, route to the end.
"""
if isinstance(state, list):
ai_message = state[-1]
elif messages := state.get("messages", []):
ai_message = messages[-1]
else:
raise ValueError(f"No messages found in input state to tool_edge: {state}")
if hasattr(ai_message, "tool_calls") and len(ai_message.tool_calls) > 0:
return "tools"
return END
#条件路由边
graph_builder.add_conditional_edges(
"chatbot",
route_tools,
{"tools": "tools", END: END},
)
graph_builder.add_edge("tools", "chatbot")
graph_builder.add_edge(START, "chatbot")
graph = graph_builder.compile()
# 第六步:创建一个流式更新函数并执行对话
def stream_graph_updates(user_input: str):
for event in graph.stream({"messages": [{"role": "user", "content": user_input}]}):
for value in event.values():
print("Assistant:", value["messages"][-1].content)
while True:
try:
user_input = input("User: ")
if user_input.lower() in ["quit", "exit", "q"]:
print("Goodbye!")
break
stream_graph_updates(user_input)
except:
# fallback if input() is not available
user_input = "What do you know about LangGraph?"
print("User: " + user_input)
stream_graph_updates(user_input)
break

编译后的graph图如下:

以下是执行流程的详细步骤:

  1. **定义工具**:我们定义了一个天气查询工具query\_weather,它接受一个位置参数并返回一个字符串(模拟天气信息)。

  2. **创建LLM实例并绑定工具**:使用ChatOpenAI(这里配置为使用阿里云的qwen-max-latest模型),并将工具绑定到LLM上,这样LLM在生成内容时就知道有哪些工具可用。

  3. **定义状态**:状态是一个TypedDict,包含一个消息列表(messages),使用add\_messages注解,这样在更新状态时消息会自动追加。

  4. **构建状态图**:

-添加两个节点:

  • chatbot节点:调用绑定了工具的LLM,将当前消息列表作为输入,生成AI消息(可能包含工具调用请求)。

  • tools节点:使用预构建的ToolNode,它负责执行工具调用。当AI消息中包含工具调用请求时,这个节点会处理这些请求,并生成工具调用的结果消息(ToolMessage)。

  • 设置条件路由:在chatbot节点之后,根据AI消息是否包含工具调用来决定下一步:

  • 如果AI消息中包含工具调用(tool\_calls非空),则路由到tools节点。

  • 否则,结束流程(END)。

  • 添加边:从tools节点执行完毕后,回到chatbot节点

  1. **编译执行图**:将上述定义编译成一个可执行的工作流。

代码执行结果:

1、第一次调用大模型后,大模型判断并返回需要调用的工具:

...
"kwargs": {
"content": "",
"additional_kwargs": {
"tool_calls": [
{
"id": "call_37511fa143bf493493cdfe",
"function": {
"arguments": "{\"location\": \"北京\"}",
"name": "query_weather"
},
"type": "function",
"index": 0
}
],
"refusal": null
},
...

2、自动执行调用工具函数

[tool/start] [chain:LangGraph > chain:tools > tool:query_weather] Entering Tool run with input:
"{'location': '北京'}"
[tool/end] [chain:LangGraph > chain:tools > tool:query_weather] [1ms] Exiting Tool run with output:
"content='北京:天气晴朗,气温25℃' name='query_weather' tool_call_id='call_2cdd2e607d1e46268bb094'"
[chain/end] [chain:LangGraph > chain:tools] [2ms] Exiting Chain run with output:
[outputs]
Assistant: 北京:天气晴朗,气温25℃

3、大模型总结输出

[chain/end] [chain:LangGraph > chain:chatbot] [993ms] Exiting Chain run with output:
[outputs]
Assistant: 北京现在的天气是晴朗的,气温为25℃。

03

总结

大模型调用工具的核心是通过函数调用(Function Calling)机制:

  • 定义工具:以结构化格式描述工具功能(如LangGraph的@tool装饰器)。
  • 决策调用:模型判断是否需要工具,并生成调用请求。
  • 执行工具:外部系统执行实际操作(如运行代码、查询API)。
  • 整合结果:模型将工具返回结果融入自然语言回复。

想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享

👇👇扫码免费领取全部内容👇👇

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI

1. 100+本大模型方向电子书

在这里插入图片描述

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

在这里插入图片描述

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

在这里插入图片描述

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

Logo

更多推荐