AI创想
标题:
LangGraph——Multi-agent
[打印本页]
作者:
米落枫
时间:
5 天前
标题:
LangGraph——Multi-agent
作者:CSDN博客
Multi-agent架构
Multi-agent架构分类
Network:
每个agent都可以与其他每个agent进行通信。任何agent都可以决定接下来呼叫哪个其他的agent。
Supervisor:
每个agent与Supervisor agent进行通信。Supervisor agent决定接下来应该调用哪个agent
Supervisor (tool-calling):
这是 Supervisor 架构的特例。单个agent可以表示为工具。在这种情况下,Supervisor agent使用工具调用 LLM 来决定要调用哪些agent工具,以及要传递给这些agent的参数。
Hierarchical:
您可以定义一个多agent系统,其中包含一个supervisor of supervisors。这是管理程序架构的推广,允许更复杂的控制流。
Custom multi-agent workflow:
每个agent仅与agent子集通信。流的某些部分是确定性的,只有某些agent可以决定接下来要呼叫哪些其他的agent。
(, 下载次数: 0)
上传
点击文件名下载附件
Handoffs(交接)
在Multi-agent架构中,agent可以表示为图节点。每个agent节点执行其步骤并决定是完成执行还是路由到另一个agent,包括可能路由到自身(例如,在循环中运行)。Multi-agent交互中的一种常见模式是
交接
,即一个agent将控制权
移交
给另一个agent。切换允许您指定:
destination:
要导航到的目标agent(例如,要转到的节点的名称)
payload:
要传递给agent的信息(例如,状态更新)
要在 LangGraph 中实现切换,agent节点可以返回 Command 对象,该对象允许您结合控制流和状态更新:
def agent(state) -> Command[Literal["agent", "another_agent"]]:
# the condition for routing/halting can be anything, e.g. LLM tool call / structured output, etc.
goto = get_next_agent(...) # 'agent' / 'another_agent'
return Command(
# Specify which agent to call next
goto=goto,
# Update the graph state
update={"my_state_key": "my_state_value"}
)
复制代码
在更复杂的场景中,每个agent节点本身都是一个图(即子图 ),其中一个agent子图中的节点可能希望导航到不同的agent。例如,如果您有两个agent,alice 和 bob(父图中的子图节点),并且 alice 需要导航到 bob,则可以在 Command 对象中设置 graph=Command.PARENT:
def some_node_inside_alice(state):
return Command(
goto="bob",
update={"my_state_key": "my_state_value"},
# specify which graph to navigate to (defaults to the current graph)
复制代码
原文地址:https://blog.csdn.net/qq_50863584/article/details/151263069
欢迎光临 AI创想 (http://llms-ai.com/)
Powered by Discuz! X3.4