生活中我们常常需要同时处理多个任务,比如预订旅行时,既要订机票,又要订酒店。如果有一个智能助手能同时帮你搞定这些事情,那该有多方便啊!LangGraph的多智能体系统就能做到这一点。它就像一个超级助手团队,每个成员都有自己的专长,一起合作完成复杂的任务。接下来,我们就来看看这个神奇的多智能体系统是如何工作的。
在LangGraph中,有两种流行的多智能体架构:监督者(Supervisor)和群体(Swarm)。
监督者就像一个团队的领导,它控制所有的通信流程和任务委派,根据当前上下文和任务需求决定调用哪个智能体。
而群体则更像一个自由合作的团队,智能体根据自己的专业领域动态地将控制权交给彼此。
监督者架构
监督者架构中,有一个中央智能体负责协调所有的任务。像一个指挥官,根据任务的需求,将任务分配给不同的智能体。
比如,当你需要预订机票和酒店时,监督者会根据你的需求,将预订机票的任务分配给航班预订智能体,将预订酒店的任务分配给酒店预订智能体。
pip install langgraph-supervisor
# -*- coding: utf-8 -*-
from langgraph.prebuilt import create_react_agent
from langchain_community.chat_models.tongyi import ChatTongyi
# from langchain_community.llms.tongyi import Tongyi
from langgraph_supervisor import create_supervisor
# pip install langgraph-supervisor
#模型初始化
llm = ChatTongyi(
model="qwen-max-latest",#qwen-max-latest qwen-plus qwen-turbo
temperature=0,
verbose=True,
)
def book_hotel(hotel_name: str):
"""预订酒店"""
return f"已成功预订了酒店 {
hotel_name}."
def book_flight(from_airport: str, to_airport: str):
"""预订航班"""
return f"已成功预订了航班 从 {
from_airport} 到 {
to_airport}."
# Supervisor监督者 多智能体
#酒店智能体
hotel_assistant = create_react_agent(
model=llm,
tools=[book_hotel],
prompt="你是一位酒店预订助手。",
name="酒店预订助手"
)
#航班智能体
flight_assistant = create_react_agent(
model=llm,
tools=[book_flight],
prompt="你是一位航班预订助手。",
name="航班预订助手"
)
supervisor = create_supervisor(
agents=[flight_assistant,hotel_assistant,],
model=llm,
prompt=(
"你管理着一个酒店预订助手和一个航班预订助手,"
"给他们分配工作任务。完成任务就行"
)
).compile(<