所有这些信息意味着什么?以下示例可以让我们更清楚地了解 LangGraph:将这些基于图形的架构视为强大的可配置地图,即“超级地图”。用户可以将 AI 工作流想象成这个“超级地图”的“导航员”。最后,在该示例中,用户是“制图师”。从这个意义上说,导航员在“超级地图”上绘制出各点之间的最佳路线,而所有这些路线都是由“制图师”绘制的。
简而言之,通过使用 AI 工作流(“导航员”),在基于图形的架构 (“超级地图”)中绘制和探索最佳路线。这个比喻是理解 LangGraph 的绝佳起点,如果您也喜欢地图,还能额外收获一个惊喜:顺便看到有人用上“制图师”这个词。
LangGraph 阐明了 AI 工作流中的过程,使智能体的状态完全透明。在 LangGraph 中,“状态”功能就像一个记忆库,记录和跟踪 AI 系统处理的所有有价值的信息。它类似于数字笔记本,当数据在工作流或图表分析的各个阶段移动时,系统会捕捉并更新数据。
例如,如果您运行智能体来监控天气,此功能可以跟踪下雪的次数并根据不断变化的降雪趋势提出建议。这种对系统如何完成复杂任务的可观测性,有助于初学者进一步了解状态管理。状态管理有助于调试,因为它可以集中管理应用进程的状态,从而缩短整个调试过程。
这种方法可以实现更有效的决策、提高可扩展性和增强整体性能。这种方法还能让更多人参与进来,因为他们可能是新手,或者更希望更清楚地了解幕后的情况。
让我们首先了解构成 LangGraph 的关键组件。框架围绕几个关键组件构建,这些组件协同工作,使用户能够创建和管理复杂的 AI 工作流。这些组件包括:
状态图:图中的每个节点代表计算中的一个步骤的概念,本质上是设计一个状态图。这种有状态的方法允许图形保留有关之前步骤的信息,从而在计算展开时能够对信息进行连续的上下文处理。用户可以使用其 API 管理 LangGraph 的所有状态图。
循环图:循环图是指包含至少一个循环的图,对于智能体运行时至关重要。这意味着存在一条起点和终点都在同一节点的路径,从而在图中形成一个循环。复杂的工作流往往涉及循环依赖关系,其中一个步骤的结果取决于循环中的前几个步骤。
节点 :在 LangGraph 中,节点代表 AI 工作流中的各个组件或智能体。节点可以被认为是以特定方式相互交互的“参与者”。例如, 要添加用于工具调用的节点,可以使用 ToolNode。另一个例子是“下一个节点”,指的是当前节点之后要执行的节点。
边缘:边缘是 Python 中的一种函数,用于根据当前状态确定接下来要执行的节点。边缘可以是条件分支或固定转换。
RAG:检索增强生成 (RAG) 通过检索相关文档,将 LLM 的强大功能与外部来源的上下文信息相结合,然后将这些文档用作答案生成的输入。
工作流:工作流是定义 AI 工作流的节点交互序列。通过将节点排列到工作流中,用户可以利用各个组件的优势创建更复杂、更动态的工作流。
API:LangGraph 提供了一组 API ,使用户能够以编程方式与其组件进行交互。用户可以使用 API 密钥,添加新节点,修改现有的工作流,以及从 AI 工作流中检索数据。
LangSmith:LangSmith 是一种专门用于在 LangGraph 中构建和管理 LLM 的 API。它提供了用于初始化 LLM、添加条件边缘和优化性能的工具。通过以创新的方式组合这些组件,用户可以利用各个组件的优势,构建更复杂的 AI 工作流。
LangGraph 通过使用基于图形的架构,使用户能够扩展 AI 工作流,而不会减慢或牺牲效率。LangGraph 通过对节点之间的复杂关系建模来实现增强决策,这意味着它使用 AI 智能体来分析节点过去的行为和反馈。在 LLM 的世界中,这个过程被称为反思。
增强决策 :通过对节点之间的复杂关系进行建模,LangGraph 为构建更有效的决策系统提供了一个框架。
提高灵活性:开源特性和模块化设计,方便开发人员集成新组件并调整现有工作流。
多智能体工作流:复杂的任务可以通过多智能体工作流来解决。这种方法涉及为特定任务或领域创建专用 LangChain 智能体。将任务路由到适当的 LangChain 智能体,可以实现并行执行并高效处理多样化的工作负载。这种多智能体网络架构体现了智能体自动的去中心化 协调。
Joao Moura 创建的一个典型示例是将 CrewAI 与 LangChain 和 LangGraph 结合使用。通过 CrewAI 编排自主 AI 智能体,检查电子邮件和创建草稿的工作已经自动化,使他们能够高效地协作和执行复杂的任务。
聊天机器人:用户可以构建一个用于假期规划的应用程序,该应用程序采用基于节点的工作流和有向无环图(DAG)结构。聊天机器人学习对用户的最低输入做出反应,并为用户量身定制建议。目前,Google 的 Duplex 等服务正在以类似的方式使用 LangGraph 来模仿人类对话。
智能体系统:LangGraph 提供了一个用于构建基于智能体的系统的框架,而这些系统可用于机器人、自动驾驶汽车或视频游戏等应用程序。
LLM 应用程序:通过使用 LangGraph 的功能,开发人员可以构建更复杂的 AI 模型,并随着时间的推移不断学习和改进。挪威邮轮公司使用 LangGraph 来编译、构建和完善面向游客的 AI 解决方案。这种能力允许改善和个性化的游客体验。
LangGraph 的智能体基于 OpenAI 的一系列 GPT(生成式预训练转换器)模型 GPT-3.5 和 GPT-4。不过,LangGraph 及其开源社区已推动接入了多款可通过 LLM API 配置初始化的其他模型,包括 Anthropic 和 AzureChatOpenAI 等模型。这个相对较小的循环类似于 Auto-GPT 等项目。
LangGraph 提供了一个 YouTube 教程,方便用户在其 GitHub 文档网站上探索如何与开源 LLM 集成。集成 LLM 的第一步是设置一个推理存储库,例如 LLaMA-Factory、FastChat 和 Ollama。通过该资源库,可以部署通过其 API 凭据配置的相应 LLM 模型。
CrewAI、MetaGPT 和 AutoGen 只是众多能够处理复杂工作流的多智能体框架中的几个代表。通过这种操作,可以采用更灵活、更细致的方法来应对各种计算挑战。通过提供全面的调试功能, 这些框架使开发人员能够快速识别并解决问题,从而实现更高效的开发和优化流程。
LangGraph 还推出了 LangGraph Studio,这是用于工作流开发的可视化界面。借助 LangGraph Studio,用户可以使用图形界面设计和构建工作流,而无需编写代码。LangGraph Studio 可下载的桌面应用程序更适合初学者。LangGraph Studio 还提供了以下附加功能:
平缓的学习曲线:访问 LangGraph 不需要 LangGraph Studio。不过,通过使用 LangGraph Studio 的可视化界面,用户可以专注于设计工作流程,而不必被代码所困扰。
改进协作:LangGraph Studio 支持与他人(无论是开发团队还是客户)共享工作流。
调试:这些功能不仅限于构建图表,还包括调试功能,以确保图表准确可靠。LangGraph Studio凭借其先进的集成开发环境 (IDE),有助于可视化和调试 LangGraph 应用程序。
增强自然语言处理 (NLP):LangGraph 将拥有更先进的 NLP 功能,使其能够更好地理解自然语言并提供更准确的响应。
改进的机器学习:LangGraph 将具备更强的机器学习能力,能够随着时间的推移不断学习和改进。
支持新平台:LangGraph 将支持移动设备和边缘计算等新平台,使其技术更易于使用。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。