项目简介
LangGraph[1] 是一个用于构建具有状态、多参与者应用程序的库,它使用大型语言模型(LLMs)来创建代理和多代理工作流程。

项目特点
主要特点
与其它LLM框架相比,LangGraph 提供了循环、可控性和持久性这三个核心优势。
LangGraph 允许定义涉及循环的流程,这对于大多数代理架构至关重要,这与基于有向无环图(DAG)的解决方案不同。
作为一个非常底层的框架,LangGraph 提供了对应用程序流程和状态的细粒度控制,这对于创建可靠的代理至关重要。
此外,LangGraph 还包括内置的持久性功能,支持高级的人工干预和记忆特性。
使用场景
LangGraph 可以用于创建需要复杂工作流程和状态管理的智能代理系统,例如:
-
客户服务聊天机器人,能够记住用户之前的查询并提供连贯的回答。 -
数据分析工具,可以执行复杂的查询并记住中间状态以供进一步分析。 -
多步骤决策支持系统,允许用户在决策过程中进行人工干预。
使用方法
安装使用
-
安装:首先,你需要通过 pip 安装 LangGraph:
pip install -U langgraph
-
初始化模型和工具:创建一个代理需要使用的工具和模型。例如,你可以使用
langchain-anthropic
包中的ChatAnthropic
模型,并设置一个搜索工具。 -
定义图节点:在 LangGraph 中,节点是执行特定任务的单元。你需要定义代理将要使用的节点,例如调用模型的节点和搜索工具的节点。
-
定义图的入口点和边:设置图的入口点,即首先被调用的节点。然后,定义节点之间的边,包括条件边和普通边,这些边决定了节点的执行顺序。
-
编译图:将定义好的图编译成一个可执行的 LangChain Runnable 对象。
-
执行图:使用编译后的 Runnable 对象来执行图,并传入初始状态和配置。
简单示例
以下是一个简单的示例代码,展示了如何使用 LangGraph 创建一个能够使用搜索工具的代理:
from langchain_core.tools import tool
from langchain_anthropic import ChatAnthropic
from langgraph.checkpoint import MemorySaver
from langgraph.graph import StateGraph, MessagesState
from langgraph.prebuilt import ToolNode
# 定义搜索工具
@tool
def search(query: str):
# 这里是占位符实现,实际使用时需替换为真实的搜索逻辑
if "sf" in query.lower() or "san francisco" in query.lower():
return ["It's 60 degrees and foggy."]
return ["It's 90 degrees and sunny."]
# 定义模型
model = ChatAnthropic(model="claude-3-5-sonnet-20240620", temperature=0)
# 创建图和节点
workflow = StateGraph(MessagesState)
tool_node = ToolNode()
workflow.add_node("agent", model.invoke)
workflow.add_node("tools", tool_node)
# 设置入口点和边
workflow.set_entry_point("agent")
# 定义条件边和普通边的逻辑
# 初始化内存以持久化状态
checkpointer = MemorySaver()
# 编译图
app = workflow.compile(checkpointer=checkpointer)
# 执行图
final_state = app.invoke(
{"messages": [HumanMessage(content="what is the weather in sf")]},
config={"configurable": {"thread_id": 42}}
)
print(final_state["messages"][-1].content)
-
这个示例展示了如何创建一个简单的代理,它可以接收关于天气的查询,并使用搜索工具返回结果。 -
然后,代理可以根据搜索结果调用模型生成回答。通过使用内存持久化功能,即使在多次调用之间,代理也能够记住之前的交互状态。
文档和资源
-
教程[2] -
操作指南[3] -
概念指南[4] -
API 参考[5] -
云服务(beta)[6]
注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。
欢迎关注&点赞&在看,感谢阅读~
Github 项目地址: https://github.com/langchain-ai/langgraph
[2]
教程: https://langchain-ai.github.io/langgraph/tutorials/
[3]
操作指南: https://langchain-ai.github.io/langgraph/how-tos/
[4]
概念指南: https://langchain-ai.github.io/langgraph/concepts/
[5]
API 参考: https://langchain-ai.github.io/langgraph/reference/graphs/
[6]
云服务(beta): https://langchain-ai.github.io/langgraph/cloud/
原文始发于微信公众号(AIGC创想者):4.3K+ Star!LangGraph:一个用于构建具有状态、多参与者应用程序的库,使用大型语言模型来创建代理和多代理工作流
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/315372.html