AI智能体开发框架LangChain & LangGraph快速入门实战(包含LangSmith)

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

最近乱七八糟的事太多,今天来点偏技术实战的,带大家用LangChain & LangGraph快速入门用编程创建智能体,用LangSmith进行追踪,Agent-Chat构建Agent UI。

基本概念

相信大家相比于LangGraph,LangChain能更熟悉一些,毕竟LangChain出现的更早,下面先来简单介绍下这两个框架。

LangChain:它是一个开发AI应用的基础框架,主要提供了开发AI应用的各种接口和工具,例如调用大模型的统一接口,提供了搜索、文档处理、向量数据库处理等工具,可以方便我们非常快速调用实现功能,加快开发速度,否则我们还得自己去封装。除此之外,LangChain还提供了链式调用(Chains)、记忆管理和提示词模版等基础功能。

官网地址:

Introduction | 🦜️🔗 LangChain

LangGraph:它更高级一些,它在LangChain上面,是一个基于LangChain的工作流编排框架,可以处理复杂的工作流编排和多智能体编排。所以从名字上也可以看出来,LangChain还是停留在链式(Chain)的调用,而LangGraph则是把复杂的智能体工作流抽象成一个图(Graph)了。LangGraph的核心功能包含了有状态的工作流处理、条件分支、循环、并行执行、检查点(Checkpoints)和状态管理等处理。

官网地址:

LangGraph

PS:可能有些人对于上面提到的LangGraph状态管理这个概念有些模糊,在此补充解释下。状态简单理解,就是工作流执行过程中需要保存和传递的数据,每个步骤的结果都会保存,后续步骤可以访问前面步骤的结果和数据,如果某个步骤失败,可以从失败点重新开始。

实战

接下来带大家实战一个项目,让大家快速入门LangChain & LangGraph生态。这里,我们开发工具就选择用Curosr了。

1、创建空项目,用cursor打开

第一步,我们在外头创建一个空项目文件夹,这里我选择叫【lang-demo】,然后用Cursor打开该文件夹。

2、创建虚拟环境

为了和其他python项目的环境进行隔离,我们用cursor的终端,使用conda命令先创建一个虚拟环境,这里我创建的虚拟环境叫clx,然后进入到该虚拟环境中。(注意,建议python版本要3.11以上,因为后续需要安装langgraph-cli[inmem],最低版本要求3.11)。

ini 复制代码
conda create -n clx python=3.12
conda activate clx

如何判断是不是已经进入到了上面创建的虚拟环境中呢?进入后,终端的命令行前会有虚拟环境的名称。

3、创建requirements.txt,安装依赖

项目中创建requirements.txt文件,内容如下:

然后在cursor终端输入命令安装依赖,命令如下:

复制代码
pip3 install -r requirements.txt

4、创建环境变量文件

接下来创建【.env】文件,里面配置各处申请的key。内容如下:

其中deepseek的API Key申请参照:

TAVILY的API Key申请参照:

LangSmith的API Key申请参照:

5、使用cursor生成一个LangChain & LangGraph的demo

对,你没看错,这里不是给大家讲我本地的项目如何做的,而是让大家用Cursor去给自己生成一个,并调试通,所以最后每个人的Demo肯定是不一样的。我生成Demo的Prompt如下:

bash 复制代码
请给我生成一个LangChain和LangGraph的Demo,要求如下:
1、尽可能多的用上【requirements.txt】和【.env】的技术内容进行设计。
2、Demo尽量简单,适合学习用,方便理解。
3、需要包含【README.md】文件,对项目结构和核心代码进行说明。
4、包含运行Demo的快捷入口文件。

然后就看Cursor发挥了,第一次生成后肯定跑不通,需要不停的让cursor进行调试,因为是Demo性质的,相对简单,逻辑也不会太复杂,一般在10轮Prompt交互之内即可得到Cursor创建的可正确运行的项目。

最后给大家演示下,给我生成的项目是什么功能:

给我生成了一个【run_demo.py】入口文件,

用python命令运行:

我选择【1】,然后输入我的问题:天空为什么是蓝色的

然后根据我的问题,Demo会识别主题是我的问题是一个简单的问答【general_chat】,调用模型给我回复了答案。除此之外,还对数据进行了分析,最后生成了一个可视化图表。

图表:

然后,我继续测试,换一个问题,问一个需要联网搜索的,例如我提问:请帮我搜索今天的热点AI新闻有哪些。然后他就会识别为【Search】主题,给我联网搜索生成结果,对数据进行分析后生成可视化图表。

到这里,我的Demo就演示完了,然后呢,如何方便你快速了解项目呢,当然从让其生成的【README.md】文件了。

Readme中介绍了项目的基本功能。

对项目的调用流程进行了说明。

说明了项目在哪使用了LangChain,都做了什么,并且对应的代码是多少行。

还说明了项目哪里使用了LangGraph,都做了什么,并且对应的代码是多少行。

具体不详细介绍了,给我生成的Readme中已经写的很详细了,完全可以看懂,下面总结说明下,给我生成的Demo代码哪些地方用到了LangChain,哪些地方用到了LangGraph。

LangChain相关:

  • 使用LangChain中ChatDeepSeek与模型进行交互。
  • 集成LangChain中TavilySearch工具进行搜索。
  • 使用langchain_core.messages统一消息格式。

LangGraph相关:

  • 进行状态管理。
  • 进行工作流编排。
  • 进行状态传递。

到此为止,给大家演示了Cursor给我生成的LangChain&LangGraph Demo。

6、Langgraph-cli和LangSmith的使用

下面我们继续,在控制台安装库langgraph-cli,方便后续调试和用LangSmith来追踪我们的项目。安装命令如下:

arduino 复制代码
pip3 install -U "langgraph-cli[inmem]"

安装后输入下面命令启动项目:

复制代码
langgraph dev

启动后会发现有三个重要的路径,其中第一个和第三个是可以打开的。

第一个是项目API的Endpoint,打开后显示Not Found,这是正常的。因为默认没有这个get请求,不会重定向到任何地方,但是既然有结果返回,说明API的Endpoint是通的。

http://127.0.0.1:2024

第三个可以打开,打开后是LangGraph的API文档说明,并且可以在线测试API,这里就不给大家演示了,很简单。

http://127.0.0.1:2024/docs

但是第二个需要特殊说明,我们路径可以打开,但是获取不到项目的内容,这个肯定是不正常的。

smith.langchain.com/studio/?bas...

有一定软件基础能力的人很容易可以判断出来,因为下面这个路径跨域了,smith平台是不可能获取你本地服务API EndPoint的,访问不了很正常。

smith.langchain.com/studio/?bas...

所以为了解决这个问题,我们需要改一下启动的命令,使用下面命令启动:

css 复制代码
langgraph dev --tunnel

这次启动后大家可以看到,路径更长了,而且并不是之前本地的ip了,而是换成公网可访问的cloudflare的地址。

smith.langchain.com/studio/?bas...

这样,langsmith平台就可以正常地加载了。加载后大家可以看到,你也的业务流程完全变成了可追踪的可视化工作流。

然后,我就可以输入问题,在这个平台上进行调试,例如在对应的传递参数的地方,我提问:天为什么会下雨,在此平台就可以连接到你本地的工程,进行可视化调试和输出了。

并且可以切换到【Trace】选项卡查看其运行轨迹,进行追踪。

除此之外,现在你把这个页面关闭。然后再次进入到LangSmith的主页,点击【Tracing Projects】,也可以看到之前运行追踪的记录。

这意味着什么呢?这意味着只要你用【langgraph dev】启动了你本地的工程,你在何处访问你的项目,都会自动进行行为追踪并且在LangSmith平台上进行查看。

解惑:

大家通过我上面的操作,是不是感觉很神奇,都会存在这种疑问,不是一直在讲LangChain吗,怎么突然来了LangSmith,它是干嘛的,感觉像可以追踪行为用的,那我的项目,又是何时与LangSmith平台进行的联系呢?

LangSmith:其实我不用过多解释,通过上面的演示大家也能够感受到。LangSmith大家理解成一个在线监控和调试平台即可,提供了在线调试Debug(上面演示的工作流在线输入为什么会下雨的例子,可看到流程中每一步的结果)、Trace追踪(上面例子中的调用链路,可追溯)、还有生产监控Monitoring(上线后追踪用户真实交互,方便后续优化智能体)和评估Evaluation(支持对不用的Prompt/模型/AB测试/质量等进行评估)。

那如何建立的联系呢,大家最早在上面还有印象吧,让大家在【.env】中配置了LangSmith的相关信息,而且Tracing还设置为了True。

在生成的代码逻辑中,通过这些参数,就让你的工程与LangSmith平台关联上了。

代码中引入追踪的注解,在想追踪的方法上添加注解皆可

官网写的更是详细如何接入,包括未给大家演示的评估Evaluation功能,在此不详细解释了。

到这里,才算是,LangChain、LangGraph和LangSmith讲完了。

7、扩展部分:agent-chat UI的使用

这一部分属于拓展部分,刚才我们写的Agent事实上是没有UI的。LangChain生态也是想到了这一点,所以官方还推出了一个Agent-Chat开源项目,可以快速构筑UI,关联到我们刚才本地创建的智能体。

项目地址:

github.com/langchain-a...

使用和安装也是非常的简单,官网上写的很清楚,先clone项目到本地,然后进入到项目目录后,通过【pnpm install】进行安装,通过【pnpm dev】启动该项目。

启动成功后,即可通过3000端口进行访问。访问后,主页面上配置启动本地服务地址、项目ID与LangSmith API Key即可连接到本地启动的智能体。

配置成功后,我们就可以正常提问了,例如我下面问的:地球为什么是圆的。给我正常响应,并且在后台工程中也进行了数据分析和生成了图表。

总结下今天的内容,我们从0创建了一个空的项目,并且借助于Cursor,让其给我们生成了一个LangChain和LangGraph的Demo,除此之外,我们还关联到了LangSmith平台进行调试和追踪,最后通过Agent-Chat快速构建了UI去使用。

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

相关推荐
大模型教程6 小时前
用Dify搭建企业知识库:5个实战技巧提升检索准确率90%
程序员·llm·agent
Moonbit8 小时前
MoonBit Meetup 丨 手把手带你走进 AI 编程新世代
前端·后端·程序员
无奈何杨10 小时前
技术产品的市场推广与品牌构建:让客户主动找到你
程序员·产品·创业
智泊AI10 小时前
Embedding是什么?Embedding的原理是什么?
llm
DevYK10 小时前
企业级Agent开发教程(四) 基于 MongoDB 实现持久化记忆缓存
langchain·agent
鹏多多12 小时前
今天你就是VS Code之神!15个隐藏技巧让代码效率翻倍
前端·程序员·visual studio code
冰 河12 小时前
《高性能SQL引擎》总结-高性能SQL引擎整体专栏总结
性能优化·程序员·高并发·架构师·高性能
uzong19 小时前
一次慢接口背后,竟藏着40+种可能!你中过几个
后端·面试·程序员
文心快码BaiduComate1 天前
代码·创想·未来——百度文心快码创意探索Meetup来啦
前端·后端·程序员