Command: A new tool for building multi-agent architectures in LangGraph

Command:LangGraph 中构建多智能体架构的新工具

了解 Command,LangGraph 中的一个新工具,它有助于促进多智能体通信。

2 分钟阅读

Agent 和多智能体系统都关于系统不同组件之间如何相互通信。我们花费大量时间思考促进此类通信的最佳基础设施和开发者体验。今天,我们很高兴宣布 Commandlanggraph 中的一个新工具,可以更轻松地促进多参与者(或多智能体)通信。

技术背景

我们的 智能体框架 langgraph 由事件驱动系统驱动。我们公开了一种基于图的开发者体验,深受 NetworkX 的影响,我们发现它很好地映射到开发者对智能体的思维模型。鉴于底层的事件驱动架构,我们可以轻松添加此基于图的 devX 的变体。

langgraph 图传统上表示为节点和边。这种声明式架构有助于将智能体的路径映射到可视化表示。另一方面,要求边连接节点有时会使表达更动态的逻辑变得更困难或不直观。在这些情况下,您会希望节点能够动态指定接下来要转到哪个节点。

Command:无边图

考虑到这一点,我们很高兴在 LangGraph 中发布 Command。这是一种特殊类型,当从节点返回时,它不仅指定状态的更新(像往常一样),还指定接下来要转到哪个节点。这允许节点更直接地控制事后执行哪些节点。

用法看起来像这样(Python)

# With type hints, you can specify the possible nodes this can go to.
def agent(state: MessagesState) -> Command[Literal[..., END]]:
    ...
    return Command(
	    goto=...,  # The next node(s) to go to
	    update={"messages": [response]}  # The update to apply to the state
	  )

这可以由任何节点返回。节点上的类型提示可以让图知道哪些节点可能接下来被执行。(这允许您仍然可视化图。)

阅读这些更技术性的指南以了解更多信息

对多智能体流程的影响

其中一个主要动机是更轻松地实现动态多智能体架构。

多智能体架构的一个新兴组件是“handoff”(移交)。handoff 涉及一个智能体将控制权移交给另一个智能体(无论是否添加任何初始响应)。OpenAI 的 swarm 框架实际上在这方面做得很好。

Command 类型使我们能够轻松执行 handoff。我们可以轻松指定图中要跳转到的任何其他节点。作为其中的一部分,我们还可以指定图中的节点以跳转到。这允许在分层智能体架构中实现更好的通信和 handoff。

有关此的更多信息,请参阅 我们关于多智能体架构的概念指南,我们已对其进行更新以反映我们关于 handoff 的最新想法。您还可以查看我们的 关于使用 Command 构建多智能体系统的多个教程

结论

构建智能体和多智能体系统完全关乎通信。因此,我们的目标是使 langgraph 成为智能体框架,让您可以最大程度地控制这些智能体如何通信。我们相信,这个新的 Command 类型是朝着这个方向的改进。

有关此的视频指南,请参阅 我们在 YouTube 上的演练