7-多智能体架构
2026/6/30 23:41:00 网站建设 项目流程

文章目录

  • 协议的本质区别:工具VS代理
  • 多智能体架构
  • A2A案例

协议的本质区别:工具VS代理

在AI技术快速发展的今天,两个关键协议正在重塑我们构建智能系统的方式,这两个协议代表了AI架构发展的不同维度,但它们共同指向一个未来:我们正从确定性编程转向自主协作系统。

  • Agent-to-Agent协议(A2A)
  • Model Context Protocol(MCP)

MCP:本质上是关于工具访问的协议。它定义了大语言模型如何与各种工具、数据和资源交互的标准方式,简单来说**,MCP让AI能够使用各种功能,就像程序员调用函数一样。**

A2A:则专注于代理协作。它建立了智能代理之间相互发现、交流和合作的方式,使得不同的Al系统能够像人类团队一样协同工作。

多智能体架构

LangChain体系中,

  • LangChain主要集成了和大语言模型的交互能力。
  • LangGraph主要实现复杂的流程调度。

将这两个能力结合起来,就可以实现一个多智能体架构(Multi-Agent Architecture),它不是让一个大模型“无所不能”,而是通过多个专精的Agent协作来完成更复杂的任务。

单智能体:

结构:

一个LLM+工具集合

LLM决定是否调用工具,自己完成所有逻辑

使用场景:

简单对话助手

单一领域(天气查询、SQL问答、知识库QA)

例子:

“查询北京天气” -> LLM调用get_weather()

“翻译一句话” -> LLM 调用translator()

案例:

from langchain.agentsimportcreate_agentfrom langchain.chat_modelsimportinit_chat_modelfrom langchain_core.messagesimportHumanMessagefrom lang_chain.configimportOPENAI_API_KEY# 单智能体 # 定义工具 defget_weather(city:str)->str:"""查询指定城市的天气情况。"""returnf'今天{city}的天气是晴天' # 定义大模型 llm=init_chat_model(model="deepseek-chat",model_provider="deepseek",api_key=OPENAI_API_KEY,base_url="https://api.deepseek.com")# 使用LangGraph创建Agentagent=create_agent(model=llm,# 添加模型 tools=[get_weather],# 添加工具)human_message=HumanMessage(content="今天北京的天气如何?")response=agent.invoke({"messages":[human_message]})print(response["messages"][-1].content)

多智能体:

在LangGraph里,Agent就是一个可调用的节点,通常封装了一个LLM+工具调用逻辑。

多智能体架构 = 多个Agent节点组成一个图(Graph),它们通过消息传递、条件跳转(command/send)和记忆(Memory)协作。


对比:

  • 单智能体:一个大模型,负责所有决策
  • 多智能体:多个小模型/角色,分工明确,互相调用

好处:

  • 解耦复杂任务:每个Agent只解决自己领域的问题。
  • 可扩展:可以动态增加新Agent。
  • 更可控:通过人类干预闭环(HITL)、时间回溯(Time Travel)管理执行流程。

六大典型架构:

  • Network(网络):每个智能体都可以与其他任何智能体进行通信。任何智能体都可以决定下一步调用哪个其他智能体,类似“去中心化网络”

应用场景:

- 多视角协作 - 并行搜索信息 - 研究讨论类场景
  • Supervisor(主管):包含一个主管智能体,每个智能体都与一个主管智能体进行通信。主管智能体决定下一步应该调用哪个智能体。【为主】

应用场景:

- 企业助手(IT、HR、财务等不同领域) - 智能客服(分配给不同领域专家)
  • Supervisoras tools(主管as工具调用):主管架构的一种特殊情况。单个智能体可以被表示为工具。主管智能体使用一个支持工具调用的LLM来决定调用哪个智能体工具,以及传递给这些智能体的参数。

应用场景:

- 当一LLM核心,但可以调用领域专家 - 类似插件系统(copilot + 插件)
  • Hierarchical(层级式):包含多层的Supervisor架构,每一层都有自己的主管,类似于公司的组织架构(GM-总监-组长-员工)

应用场景:

- 大型任务拆解(项目管理、复杂管道任务) - AI公司/部门结构模拟
  • Custom(自定义):使用LangGraph提供的灵活的图结构和条件边,可以自定义各种执行流,比较灵活,使用的也最多。

应用场景:

- 高度定制的企业级AI应用 - 多步骤、多部门、多数据源场景

A2A案例

案例1:supervisor(主管)

from langchain.agentsimportcreate_agentfrom langchain.chat_modelsimportinit_chat_modelfrom langchain_core.messagesimportAIMessage,HumanMessagefrom langgraph_supervisorimportcreate_supervisorfrom lang_chain.configimportOPENAI_API_KEY#1.初始化大语言模型 llm=init_chat_model(model="deepseek-chat",model_provider="deepseek",api_key=OPENAI_API_KEY,base_url="https://api.deepseek.com",)#2.定义工具 defbook_flight(from_airport:str,to_airport:str):"""预订从出发地到目的地的航班。""" return f'成功预定从{from_airport}到{to_airport}的航班' def book_hotel(hotel_name: str): """预订指定名称的酒店。"""returnf'成功预定{hotel_name}的住宿' #3.创建子agent flight_assistant=create_agent(model=llm,tools=[book_flight],name="flight_assistant")hotel_assistant=create_agent(model=llm,tools=[book_hotel],name="hotel_assistant",)#4.主agent:调度主管 supervisor=create_supervisor(agents=[flight_assistant,hotel_assistant],model=llm,prompt=("你是一个智能任务调度主管,负责调度多个智能助手完成用户请求。\n""工作流程:\n""1.分析用户需求提取任务\n""2.先调用工具flight_assistant完成航班预订任务\n""3.再调用工具hotel_assistant完成酒店预订任务\n""4.返回结果,向用户汇报结果\n""注意:""每个助手只能调用1次,不要重复内容""只能使用中文,不要输出任何原文"),).compile()if__name__=="__main__":print("智能旅行调度系统")# mock输入数据 input_data={"messages":[HumanMessage(content="我想从北京去上海出差,在希尔顿酒店预定一间标准间,价格不要超过500元")]}forchunk in supervisor.stream(input_data):foragent_name,output in chunk.items():ifoutput isNone:continueformsg in output.get("messages",[]):ifisinstance(msg,AIMessage)and msg.content:print(f"[{agent_name}]: {msg.content}")print("-"*50)

案例2:handoff(交接)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询