智能体(Agent)通过工具调用,将大语言模型的“思考”能力与外部系统、工具、API的“行动”能力结合,实现从需求理解到任务执行的闭环。本文简述智能体系统核心技术之一——Function Calling,介绍智能体的定义、架构、工作流程,以及如何使用Function Calling让大模型能与外部世界交互,完成复杂任务。

1、什么是智能体?

OpenAI的研究主管Lilian Weng给出的定义是:Agent = 大模型(LLM)+ 规划(Planning)+ 记忆(Memory)+ 工具使用(Tool Use)。

图:智能体的基础架构定义

如上图所示,在基于大语言模型(也可以是多模态大模型)的智能体系统中,大模型的充当着智能体的“大脑”的角色,同时还有三个关键部分:

  • 规划(Planning) : 智能体会把大型任务分解为若干个子任务,并规划执行任务的流程;智能体会对任务执行的过程进行思考和反思,从而决定是继续执行任务,或判断任务完结并终止运行。
  • 记忆(Memory): 具有长短期记忆能力。短期记忆,是指在执行任务的过程中的上下文,会在子任务的执行过程产生和暂存,在任务完结后被清空。长期记忆是长时间保留的信息,一般是指外部知识库,如用向量数据库来存储和检索。
  • 工具使用(Tool use):为智能体配备本地工具、API或者MCP服务,比如:计算器、搜索工具、代码执行器、数据库查询工具、地图服务等。有了这些工具和API服务,智能体就可以与外部的世界进行交互,解决更实际复杂的问题。

2、智能体——工具调用的流程

基于Function Call的Agent是近年来在大语言模型应用中广泛采用的一种智能交互机制。其基本工作流程是:由智能体负责根据用户输入动态决策是否调用外部工具,而Function Call提供标准化、结构化的函数接口,允许模型在对话推理过程中无缝接入外部系统,实现数据查询、外部工具执行、复杂推理等功能扩展。

使用 Agent + Function Call 机制的核心价值包括:

(1)增强模型能力:通过工具调用,模型可获取实时数据、执行数据库查询、调用各类计算引擎等,从而突破模型预训练、后训练参数中的知识限制。

(2)动态调度机制:Agent可以基于上下文,自动判断调用哪一个或哪一组工具,适合多步骤、多模块、更复杂的任务。

(3)支持多轮交互:Agent允许大模型基于上下文记忆配合工具调用策略,使得智能体系统具备更强的多轮协同能力。

举例说明:为什么需要Agent?

如果你直接向大模型提问:“上周五,通义大模型团队又新出了什么模型?”,大模型可能会这样回答:我无法提供实时信息,因为我的知识只更新到2025年3月。

如果这个问题需要人帮助大模型来解决,那么一个有效的操作步骤为:

1、选择工具

由于问题是关于实时新闻的,先打开浏览器工具;

2、提取参数

用浏览器输入框输入:“上周通义大模型团队又新出了什么模型?”;

3、运行工具

浏览器返回了一些网页,如“Qwen3-Max-Preview 发布核心介绍: 相较于2.5系列,新版本在中英文理解、复杂指令遵循、工具调用等维度实现了显著增强,同时大幅减少了知识幻觉,让模型更智能、更可靠。”等;

4、将工具的输出提供给大模型

将网页内容输入到大模型中:“这是查询到的信息:Qwen3-Max-Preview 发布,相较于2.5系列,新模型在中英文理解、复杂指令遵循、工具调用等维度实现了显著增强,同时大幅减少了知识幻觉,让模型更智能、更可靠。请根据以上内容回答。

最终,由于向大模型提供了足够的实时的参考信息,可以得到类似的回复:上周,通义大模型Qwen3-Max-Preview发布,相较于Qwen2.5系列,新模型在中英文理解、复杂指令遵循、工具调用等维度实现了显著增强,同时大幅减少了知识幻觉,让模型更智能、更可靠…

此时大模型,可以回答关于实时新闻的问题,然而这个过程需要人的参与(选择工具、提取参数、运行工具),无法实现自动化运行的效果。

而Function Calling(工具调用)可以自动化地完成以上流程,在接收到用户的任务、指令后可以自动选择工具、提取参数,然后,工具端系统接收参数并运行工具,最终完成工具和复杂任务的实际执行。总结为下图:

3、如何使用Function Calling

以Qwen系列的模型为例,Function Calling支持两种传入工具信息的方式:

方式一:通过tools参数传入(推荐)

按照定义工具、创建工具数组、创建messages数组、发起工具调用、运行工具函数等步骤进行调用。

方式二:通过System Message传入

通过tools参数传入时,服务端会根据模型自动适配合适的prompt模板并组装,因此推荐优先使用tools参数。

Function Calling的代码示例:

from openai import OpenAI
from datetime import datetime
import json
import os
import random
# 指向本地部署的vLLM服务
client = OpenAI(
api_key="EMPTY",
base_url="http://localhost:8000/v1",
)
# 定义工具列表,模型在选择使用哪个工具时会参考工具的name和description
tools = [
# 工具1 获取当前时刻的时间
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "当你想知道现在的时间时非常有用。",
# 因为获取当前时间无需输入参数,因此parameters为空字典
"parameters": {},
},
},
# 工具2 获取指定城市的天气
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "当你想查询指定城市的天气时非常有用。",
"parameters": {
"type": "object",
"properties": {
# 查询天气时需要提供位置,因此参数设置为location
"location": {
"type": "string",
"description": "城市或县区,比如北京市、西城区、海淀区等。",
}
},
"required": ["location"],
},
},
},
]
# 模拟天气查询工具。返回结果示例:“成都今天是晴天。”
def get_current_weather(arguments):
# 定义备选的天气条件列表
weather_conditions = ["晴天", "多云", "雨天"]
# 随机选择一个天气条件
random_weather = random.choice(weather_conditions)
# 从JSON中提取位置信息
location = arguments["location"]
# 返回格式化的天气信息
return f"{location}今天是{random_weather}。"
# 查询当前时间的工具。返回结果示例:“当前时间:2025-09-07 17:15:18。“
def get_current_time():
# 获取当前日期和时间
current_datetime = datetime.now()
# 格式化当前日期和时间
formatted_time = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
# 返回格式化后的当前时间
return f"当前时间:{formatted_time}。"
# 封装模型响应函数
def get_response(messages):
completion = client.chat.completions.create(
model="qwen-max",
messages=messages,
tools=tools,
)
return completion
# 主流程函数(多轮对话 + 工具调用)
def call_with_messages():
print("\n")
messages = [
{
"content": input(
"请输入:"
),  # 提问示例:"现在几点了?" "一个小时后几点" "成都天气如何?"
"role": "user",
}
]
print("-" * 60)
# 模型的第一轮调用
i = 1
first_response = get_response(messages)
assistant_output = first_response.choices[0].message
print(f"\n第{i}轮大模型输出信息:{first_response}\n")
if assistant_output.content is None:
assistant_output.content = ""
messages.append(assistant_output)
# 如果不需要调用工具,则直接返回最终答案
if (
assistant_output.tool_calls == None
):  # 如果模型判断无需调用工具,则将assistant的回复直接打印出来,无需进行模型的第二轮调用
print(f"无需调用工具,我可以直接回复:{assistant_output.content}")
return
# 如果需要调用工具,则进行模型的多轮调用,直到模型判断无需调用工具
while assistant_output.tool_calls != None:
# 如果判断需要调用查询天气工具,则运行查询天气工具
tool_info = {
"content": "",
"role": "tool",
"tool_call_id": assistant_output.tool_calls[0].id,
}
if assistant_output.tool_calls[0].function.name == "get_current_weather":
# 提取位置参数信息
arguments = json.loads(assistant_output.tool_calls[0].function.arguments)
tool_info["content"] = get_current_weather(arguments)
# 如果判断需要调用查询时间工具,则运行查询时间工具
elif assistant_output.tool_calls[0].function.name == "get_current_time":
tool_info["content"] = get_current_time()
tool_output = tool_info["content"]
print(f"工具输出信息:{tool_output}\n")
print("-" * 60)
messages.append(tool_info)
assistant_output = get_response(messages).choices[0].message
if assistant_output.content is None:
assistant_output.content = ""
messages.append(assistant_output)
i += 1
print(f"第{i}轮大模型输出信息:{assistant_output}\n")
print(f"最终答案:{assistant_output.content}")
if __name__ == "__main__":
call_with_messages()

4、常用的智能体平台

智谱清言,https://chatglm.cn

字节跳动,Coze,https://www.coze.cn/home

字节跳动,扣子空间,https://space.coze.cn

百度文心智能体平台,https://agents.baidu.com

天工智能体平台,https://www.tiangong.cn

问小白,https://www.wenxiaobai.com

dify,https://cloud.dify.ai

Link AI,https://link-ai.tech/portal

n8n,https://n8n.io

FastGPT,https://fastgpt.cn

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套 AI 大模型突围资料包

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2026 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要 《AI大模型入门+进阶学习资源包》下方扫码获取~
在这里插入图片描述

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
在这里插入图片描述

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
在这里插入图片描述

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
在这里插入图片描述

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
在这里插入图片描述

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
在这里插入图片描述

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

图片

以上资料如何领取?

在这里插入图片描述

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

图片

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
在这里插入图片描述
在这里插入图片描述

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

以上全套大模型资料如何领取?

在这里插入图片描述

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐