摘要:本文围绕 LangChain 中 State 的核心概念展开,介绍 State 作为 Agent 运行任务时的共享内存空间,用于保存用户输入、中间结果、执行状态、上下文信息和下一步计划等关键数据。文章通过有 State 和无 State 的对比,说明 State 在节点间传递信息的重要性,并详细讲解 LangSmith 的配置步骤,帮助读者快速上手 Agent 开发与调试。
内容参考于:图灵AI大模型全栈
在LangChain中这个状态是构建一个智能体很核心的概念
如下图,这个State相当于Agent运行任务时的记忆,这个记忆里有当前任务需要的所有内容,就是说当我们提出了问题时,大模型会进行思考,要不要调用工具,如果调用了工具,工具的结果会再给到大模型,然后大模型判断是否解决了问题,如果解决了问题就生成答案,如果没有解决问题就进行下一步,可以看出它这些步骤里必要要记住用户的问题、工具的返回结果,缺任意一个就没办法解决好问题,这个State就是用来专递这些内容的,这个LangChain的State它就相当于一个共享的内存空间、全局变量,任何Agent都可以访问它获取信息和修改它更新执行状态、信息,它在Agent内部比如调用大模型或工具执行时传递和修改State,State它就是Python中的键值对字典类型,State是在LangGraph中,LangChain是基于LangGraph开发,一次任务一个State,State是根据任务来的

State它主要保存
用户输入:想Agent提出的问题
中间结果:就是调用工具返回的结果
执行状态:记录当前执行到什么步骤了,当前步骤是完成了还是未完成
上下文信息:用户信息、偏好等
下一步计划:下一步要执行的内容
一个任务需要的信息,都会存放在State中
有State和无State
如上图没有State时,如果下雨就通知李四,第一个节点它调用天气查询接口获取天气信息,结果是下雨,然后执行到下一个通知节点,现在没有State传递天气查询节点的结果,到了通知节点它就获取不到天气信息,它就没办法判断
如果有State时,它天气查询节点,查询到天气信息后写到State中,通知节点就去State中获取信息,这样就能得到,天气查询节点更新的内容,就可以判断天气是否下雨,如果下雨就通知李四
LangSmith配置
地址:LangSmith
它需要科学上网,直接点击下图红框使用谷歌账号等级
登录之后点击下图红框
然后添加一个api key
然后如下图的选择和输入,然后点击Create API Key
然后点击Copy复制API Key,注意它只能在下图这一步骤里复制,下图的弹框关闭了就没办法复制了,只能重新添加一个
LangChain官方文档:Tracing quickstart – Docs by LangChain
如下图红框LangChain官网中写了要配置三个环境变量
也不需要根据官网写,根据下图红框里的内容写就可以了,写好之后直接运行上一节中的代码就可以了,注意它需要科学上网

# 开启LangSmith上传
LANGSMITH_TRACING=true
# LangSmith的API Key
LANGSMITH_API_KEY = "lsv2_pt_xxxxxxxxx"
# 上传地址
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
# 项目名称,LangSmith上传时会根据这个名称选择上传位置
LANGSMITH_PROJECT=TestLangChainAgent
如下图红框,我们这样创建的agent它就会上传到LangSmith
效果图:会把执行过程都上传到LangSmith
然后点击下图红框
然后就可以看到执行过程了

网硕互联帮助中心



评论前必须登录!
注册