LangChain Agent API从入门到实战:三步构建你的第一个AI智能体,零基础小白收藏这一篇就够了!!
前言
学完以上内容大家会发现伴随着用户应用和开发需求的复杂化,LangChain使用底层API搭建的Chain工作流逐渐显得力不从心。而DeepSeek-V3、Qwen3等大模型经过飞速发展已经具备极强的Agent能力,对于工具函数的串联、并联和错误循环的编排已经成为当前大模型的基本操作。面对现状,LangChain是如何快速将大模型构建为AI Agent智能体呢?本期分享笔者将和大家一起学习LangChain Agent API的调用方法~
本系列分享是笔者结合自己学习工作中使用LangChain&LangGraph经验倾心编写,力求帮助大家体系化快速掌握LangChain&LangGraph AI Agent智能体开发的技能!大家感兴趣可以关注笔者微信公众号: 大模型真好玩, 每期分享涉及的代码均可在公众号私信: LangChain智能体开发获得。
PS:鉴于后台私信越来越多,我建了一些大模型交流群,大家在日常学习生活工作中遇到的大模型知识和问题都可以在群中分享出来大家一起解决!如果大家想交流大模型知识,可以关注我并回复加群。
一、LangChain Agent API 简介
LangChain的“链”式结构存在执行方式不灵活的重大问题。比如我们上篇文章搭建的链封装了天气工具,但如果用户在使用过程中并没有询问相关天气情况,反而提问了“决策树是什么?”类似的机器学习问题,那该链该如何执行呢?
面对这种情况大家考虑链中是否要跳过一些节点或者构建不同链满足复杂需求,但很显然这增加了开发复杂度。目前大模型经过迅猛发展已经具备了自动规划对工具串联、并联等相关操作的能力,基于此LangChain在链的基础上抽象出更高级的封装Agent,LangChain对于Agent的定义是“由大模型规划并自由组装各种链来满足用户需求”。更重要的,LangChain还在Agent的基础上封装了更高级的LangGraph(LangGraph类似Multi-Agent多智能体协同的概念,LangChain内容分享完毕后会分享LangGraph的教程)。

从本期内容开始,笔者就为大家分享LangChain Agent API抽象层的相关知识。
二、LangChain快速接入工具搭建智能体
LangChain Agent API的基本使用方法十分简单,下面还是通过天气助手小案例带大家快速上手Agent API的基本使用:
- 导入相关依赖包并编写查询天气的函数,注意本案例导入
create_tool_calling_agent函数和AgentExecutor类,是本节智能体构建内容的关键。
import requests
from langchain.agents import create_tool_calling_agent, tool, AgentExecutorfrom langchain.chat_models import init_chat_modelfrom langchain_core.prompts import ChatPromptTemplate
@tooldef get_weather(loc): """ 查询即时天气函数 :param loc: 必要参数,字符串类型,用于表示查询天气的具体城市名称,\ :return:心知天气 API查询即时天气的结果,具体URL请求地址为:"https://api.seniverse.com/v3/weather/now.json" 返回结果对象类型为解析之后的JSON格式对象,并用字符串形式进行表示,其中包含了全部重要的天气信息 """ url = "https://api.seniverse.com/v3/weather/now.json" params = { "key": "你注册的心知天气api", "location": loc, "language": "zh-Hans", "unit": "c", } response = requests.get(url, params=params) temperature = response.json() return temperature['results'][0]['now']
- 构建提示词模板组件和大模型组件(注意提示词模板中的
agent提示符),为保证大模型具备更强的Agent能力,本期内容不再使用硅基流动的免费模型Qwen3-8B, 而是使用DeepSeek-V3模型
# 构建提示模版, 提示词模板对于Agent的构建是必须的prompt = ChatPromptTemplate.from_messages( [ ("system", "你是天气助手,请根据用户的问题,给出相应的天气信息,并具备将结果写入文件的能力"), ("human", "{input}"), ("placeholder", "{agent_scratchpad}"), # 这部分agnet提示符写法是写死的不可以修改 ])
# 使用 DeepSeek 模型model = init_chat_model( model='deepseek-chat', # deepseek-chat表示调用DeepSeek-v3模型 model_provider='deepseek',# 模型提供商写deepseek api_key="你注册的deepseek api key",)
- 本项目中不再使用
model.bind()绑定模型组件和工具,而是使用create_tool_calling_agent快速构建代理,代码如下:
#定义工具tools = [get_weather]
# 直接使用`create_tool_calling_agent`创建代理agent = create_tool_calling_agent(model, tools, prompt)
4. 使用`AgentExecutor`构建Agent并快速运行代理, 代码和执行结果如下, 可以看到LangChain构建Agent是不是特别简单
# 使用AgentExecutor运行当前Agentagent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # Verbose表示是否要打印执行细节response=agent_executor.invoke({"input":"请问今天北京天气怎么样?"})
print(response)

从执行结果中可以看到LangChain Agent灵活的、全自动的创建了一个chain并invoke执行得到了北京的天气情况,执行结果通过{ input: , output: }格式返回。看到这大家一定会感慨LangChain构建智能体竟然如此简单!
三、LangChain Agent 多工具调用
得益于LangChain Agent API 底层自建了很多优化去引导大模型的工具调用工作,LangChain Agent可以快速准确的调用各种工具,准确性和稳定性也要比单纯使用Function Calling能力要强一些。LangChain Agent可以通过串联,并联以及串并联组合的方式调用工具,下面提供这两种调用方法的示例让大家直观感受LangChain Agnet功能的强大。
3.1 并联调用
如果用户同时询问北京和杭州的天气,LangChain Agent会并联查询两个地方的天气,大家可以修改以上代码的提示词进行尝试:
response=agent_executor.invoke({"input":"请问今天北京和杭州的天气怎么样,哪个城市更热??"})print(response)
执行结果如下:

可以看到LangChain 同时调用get_weather工具获取了北京和杭州的天气情况并回答了用户问题,从上面可以看出LangChain Agent执行并联调用的流程如下:

这里给大家设立一个思考题,假如我们还是想通过Chains底层API的方法实现串并联调用该如何设计呢?欢迎大家在评论区和笔者讨论~
3.2 串联调用
如果用户想“查询北京和杭州现在的温度,并将结果写入本地的文件中。”,LangChain该如何执行呢?我们设想LangChain Agent的执行结果如下图:

编写代码验证一下是否正确:
- 在上述代码中添加写入文件函数
write_file()
@tooldef write_file(content): """ 将指定内容写入本地文件。 :param content: 必要参数,字符串类型,用于表示需要写入文档的具体内容。 :return:是否成功写入 """ with open('res.txt', 'w', encoding='utf-8') as f: f.write(content) return "已成功写入本地文件。"
- 将
write_file函数加入工具列表,并在提示词模板中说明大模型具备写入文件的能力
#定义工具tools = [get_weather, write_file]
# 构建提示模版, 提示词模板对于Agent的构建是必须的prompt = ChatPromptTemplate.from_messages( [ ("system", "你是天气助手,请根据用户的问题,给出相应的天气信息,并具备将结果写入文件的能力"), ("human", "{input}"), ("placeholder", "{agent_scratchpad}"), # 这部分agnet提示符不需要人工输入,同时也是写死的不可以修改 ])
- 调用
create_tool_calling_agent创建代理,并使用AgentExecutor执行当前Agent,可以看到LangChain Agent并联搜索得到了北京杭州的天气后,又串联使用文件写入工具把结果写入到res文件中:
# 使用 DeepSeek 模型model = init_chat_model( model='deepseek-chat', # deepseek-chat表示调用DeepSeek-v3模型 model_provider='deepseek',# 模型提供商写deepseek api_key="",)
# 直接使用`create_tool_calling_agent`创建代理agent = create_tool_calling_agent(model, tools, prompt)
# 使用AgentExecutor运行当前Agentagent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # Verbose表示是否要打印细节信息
response=agent_executor.invoke({"input":"查一下北京和杭州现在的温度,并将结果写入本地的文件中。"})print(response)


四、LangChain使用内置搜索工具搭建联网搜索智能体
既然LangChain Agent能够快速灵活的调用外部工具, 那调用内置工具的能力更是不在话下,接下来我们通过一个联网搜索功能的内置工具Agent来学习LangChain接入内置工具的方法。(注意; 需要科学上网)
LangChain内置工具可参考官方网站https://python.langchain.com/docs/integrations/tools/ 。本次网络搜索功能我们使用的是Tavily Search这个工具,文档在https://python.langchain.com/docs/integrations/tools/tavily_search/ 。TavilySearch是目前对大语言模型非常友好的搜索工具之一,可以方便地处理文本、图像等不同类型的内容并代入大语言模型进行解析。我们以前分享过的Suna和Google Agent都推荐使用Tavily Search作为联网搜索工具。
- 执行命令
pip install langchain-tavily安装Tavily依赖包

- 登录 Tavily官网, 可以用github账号登录,然后到
Overview注册一个API Key, 每个月有1000次免费搜索案例。我们还需要将API KEY写入环境变量中,环境变量名为TAVILY_API_KEY。

- 先来测试一下
Tavily Search的基本功能, 编写如下代码:
from langchain_community.tools.tavily_search import TavilySearchResults
search = TavilySearchResults(max_results=2)search.invoke("苹果2025WWDC发布会")
执行结果如下,可以看到Tavily Search输出了两个结果:

4. Tavily Search 接入Agent的流程和上面讲述的相同,这里不加赘述了,完整代码如下:
from langchain.agents import AgentExecutor, create_tool_calling_agent, toolfrom langchain_core.prompts import ChatPromptTemplatefrom langchain.chat_models import init_chat_modelfrom langchain_community.tools.tavily_search import TavilySearchResults
search = TavilySearchResults(max_results=2)
tools = [search]
prompt = ChatPromptTemplate.from_messages( [ ("system", "你是一名助人为乐的助手,并且可以调用工具进行网络搜索,获取实时信息。"), ("human", "{input}"), ("placeholder", "{agent_scratchpad}"), ])# 初始化模型# 使用 DeepSeek 模型model = init_chat_model( model='deepseek-chat', # deepseek-chat表示调用DeepSeek-v3模型 model_provider='deepseek',# 模型提供商写deepseek api_key="你注册的api key",)agent = create_tool_calling_agent(model, tools, prompt)agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)agent_executor.invoke({"input": "请问苹果2025WWDC发布会召开的时间是?"})
执行结果如下, 可以看到LangChain成功执行并通过搜索给出了精确的召开时间:

五、 总结
本篇文章分享了LangChain Agent API快速搭建智能体的方法,关键步骤通过create_tool_calling_agent创建模型和工具的Agent,并使用AgentExecutor执行当前Agent。总而言之在当今大模型强大能力的加持下,LangChain Agent API搭建智能体的方法还是非常简单的。下期分享我们将通过大模型调用浏览器自动化网络爬虫实战的项目带大家完整搭建一个Agent,大家一起期待一下吧~
最后
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

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

更多推荐

所有评论(0)