LangGraph:构建多代理动态工作流的开源框架,支持人工干预、循环、持久性等复杂工作流自动化

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: LangGraph 是一个基于图结构的开源框架,专为构建状态化、多代理系统设计,支持循环、持久性和人工干预,适用于复杂的工作流自动化。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能特点:支持循环、持久性和人工干预,适用于复杂的工作流自动化。
  2. 技术原理:基于图结构的状态管理,节点和边定义执行顺序,支持条件边和自定义函数。
  3. 应用场景:客户服务自动化、数据检索与分析、业务流程自动化等。

正文(附运行示例)

LangGraph 是什么

公众号: 蚝油菜花 - langgraph

LangGraph 是一个基于图结构的开源框架,专为构建状态化、多代理系统设计,特别是与大型语言模型(LLMs)一起使用时,用于创建代理和多代理工作流。作为 LangChain 生态系统的一部分,LangGraph 提供了循环、可控性和持久性等核心优势,支持定义涉及循环的流程,提供细粒度的流程和状态控制,并内置持久性功能,支持高级的人工干预和记忆功能。

LangGraph 平台是一个商业解决方案,用于将应用程序部署到生产环境。它支持复杂的代理架构,适用于各种自动化场景,如客户服务、数据检索和业务流程自动化。

LangGraph 的主要功能

  • 循环和分支:支持在应用程序中实现循环和条件逻辑,对于构建复杂的代理架构至关重要。
  • 持久性:在图的每一步之后自动保存状态,支持在任何点暂停和恢复图的执行,以支持错误恢复、人工干预工作流、时间旅行等功能。
  • 人工干预:LangGraph 能中断图的执行,以便人工批准或编辑代理计划的下一个行动。
  • 流式支持:支持按每个节点生成的顺序流式传输输出,包括令牌流。
  • 与 LangChain 集成:LangGraph 与 LangChain 和 LangSmith 无缝集成,但也能独立使用。

LangGraph 的技术原理

  • 状态管理:LangGraph 中的每个图执行都能创建一个状态,状态在图的节点之间传递,在每个节点执行后基于返回值更新内部状态。
  • 节点和边:LangGraph 用节点表示执行的步骤,边定义节点之间的执行顺序和条件。
  • 条件边:LangGraph 支持条件边,下一个节点的执行取决于图的状态。
  • 图类型:支持选择不同类型的图定义状态更新的方式,或用自定义函数定义。
  • 内存和持久性:基于内置的持久性功能,如 MemorySaver,保存状态,在不同的执行之间保持上下文。
  • 与 LLMs 的集成:与大型语言模型(LLMs)一起工作,支持模型调用定义的工具,根据模型的输出决定下一步的行动。

如何运行 LangGraph

以下是一个简单的 LangGraph 示例,展示了如何使用 LangGraph 构建一个基于搜索工具的代理。

pip install -U langgraph
pip install langchain-anthropic
export ANTHROPIC_API_KEY=sk-...
from typing import Annotated, Literal, TypedDict
from langchain_core.messages import HumanMessage
from langchain_anthropic import ChatAnthropic
from langchain_core.tools import tool
from langgraph.checkpoint.memory import MemorySaver
from langgraph.graph import END, START, StateGraph, MessagesState
from langgraph.prebuilt import ToolNode

@tool
def search(query: str):
    """Call to surf the web."""
    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."

tools = [search]
tool_node = ToolNode(tools)
model = ChatAnthropic(model="claude-3-5-sonnet-20240620", temperature=0).bind_tools(tools)

def should_continue(state: MessagesState) -> Literal["tools", END]:
    messages = state['messages']
    last_message = messages[-1]
    if last_message.tool_calls:
        return "tools"
    return END

def call_model(state: MessagesState):
    messages = state['messages']
    response = model.invoke(messages)
    return {
   "messages": [response]}

workflow = StateGraph(MessagesState)
workflow.add_node("agent", call_model)
workflow.add_node("tools", tool_node)
workflow.add_edge(START, "agent")
workflow.add_conditional_edges("agent", should_continue)
workflow.add_edge("tools", '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)

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
3月前
|
人工智能 JSON 自然语言处理
Function AI 工作流发布:以 AI 重塑企业流程自动化
本文介绍了基于函数计算 FC 打造的全新 Function AI 工作流服务,该服务结合 AI 技术与流程自动化,实现从传统流程自动化到智能流程自动化的跨越。文章通过内容营销素材生成、内容安全审核和泛企业 VOC 挖掘三个具体场景,展示了 Function AI 工作流的设计、配置及调试过程,并对比了其与传统流程的优势。Function AI 工作流具备可视化、智能性和可扩展性,成为企业智能化转型的重要基础设施,助力企业提升效率、降低成本并增强敏捷响应能力。
509 28
|
3月前
|
人工智能 缓存 搜索推荐
手把手基于ModelScope MCP协议实现AI短视频创作:零代码自动化工作流
本文介绍了基于ModelScope MCP协议的AI视频生成解决方案,涵盖核心机制解析、零代码工作流搭建、性能优化策略及全链路异常处理。通过统一上下文描述符抽象异构AI服务,实现图像生成、语音合成与视频剪辑的自动化编排。结合缓存优化与错误重试机制,大幅提升生成效率(如5分镜视频从91.7s降至22.4s)。最后展示《夏日海滩》生成案例,并探讨个性化风格迁移与商业场景集成等进阶方向,揭示零代码本质为服务、流程与资源的三层抽象。
430 18
|
5月前
|
人工智能 安全 虚拟化
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
Cua是一个结合高性能虚拟化与AI代理能力的开源框架,能在Apple Silicon上以接近原生性能运行虚拟机,并让AI直接操作系统应用。
483 17
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
|
5月前
|
人工智能 算法 物联网
5G赋能工业自动化:构建未来工厂的新引擎
5G赋能工业自动化:构建未来工厂的新引擎
145 10
|
6月前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
8月前
|
机器学习/深度学习 运维 Kubernetes
解锁工作流自动化的力量:Argo Workflows
在现代软件开发和数据处理环境中,高效的工作流编排和自动化已成为关键需求。Argo Workflows 是一个领先的 Kubernetes 原生工作流引擎,专为处理复杂工作流而设计。它帮助企业实现自动化、缩短交付周期,并显著提高生产效率。计算巢已提供Argo Workflows 社区版服务。
解锁工作流自动化的力量:Argo Workflows
|
9月前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
629 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
9月前
|
人工智能 监控 数据挖掘
工作流管理趋势:智能化、自动化与无限可能
本文深入探讨了工作流管理的定义、重要性、挑战及优化方法,强调其在提升企业效率、优化资源配置、提高透明度和促进协作等方面的作用。文章还介绍了构建高效工作流管理系统的步骤,包括流程梳理、设定KPIs、选择合适工具等,并分享了成功案例和未来趋势。
|
9月前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
186 3
|
9月前
|
缓存 监控 安全
公司电脑监控软件的 Gradle 构建自动化优势
在数字化办公环境中,公司电脑监控软件面临代码更新频繁、依赖管理和构建复杂等挑战。Gradle 构建自动化工具以其强大的依赖管理、灵活的构建脚本定制及高效的构建缓存与增量构建特性,显著提升了软件开发效率和质量,支持软件的持续更新与优化,满足企业对员工电脑使用情况的监控与管理需求。
129 3

热门文章

最新文章