资讯动态

AI Agent白手起家60: 多智能体架构解析与 LangGraph 入门

发布时间:2026/8/12 16:46:03 来源:尧图企业网站定制
纲要单智能体的局限与多智能体的兴起多智能体架构类型网状结构监管者模式智能体作为工具分级架构自定义混合模式多智能体的优势与挑战LangGraph简介多智能体开发的新范式实战用LangGraph构建监管者多智能体系统项目结构工具定义工人智能体监管者智能体工作流图构建完整可运行代码总结与相关度说明从单兵作战到群体智慧在之前的单智能体实战中我们构建了一个挂载多个工具、具备记忆和情感的钉钉助手。这种“一个大脑一堆工具”的模式虽然能解决许多任务但当场景变得复杂时——例如需要并行处理、多领域协作、相互校验——单智能体的局限性就暴露出来了。多智能体系统通过引入多个专业化的智能体让它们各司其职、相互通信从而实现更强的鲁棒性、可扩展性和输出质量。这就像从“单兵王”升级为“特种小队”。多智能体架构一览多智能体并不是简单的“多个单智能体堆叠”它们的组织方式直接影响系统能力和复杂度。常见的架构有以下几种架构类型特点典型场景网状结构智能体之间双向通信所有节点平等决策分布式协商、去中心化协作监管者模式一个管理者负责拆分任务、分派给工人并汇总结果客服系统、复杂工作流智能体作为工具将多个智能体封装为工具由主模型调用过渡方案简单扩展分级架构多层管理上级监管下级模拟公司组织大型项目、多阶段任务自定义混合部分节点有决策权部分只执行需要灵活控制的场景以监管者模式为例它类似于一个团队一个监管者接收用户需求拆分后发送给不同的工人智能体工人完成任务返回结果监管者再整合输出。这种模式结构清晰非常适合初次尝试多智能体开发的场景。搜索结果初稿通过不通过用户输入监管者智能体工人A: 搜索专家工人B: 写作专家评估智能体最终输出LangGraph多智能体的官方首选框架LangChain 在 0.2 版本后将多智能体开发的核心迁移到了LangGraph。它用“图”来建模工作流每个节点可以是一个智能体、一个工具或一段处理逻辑边定义了数据流转方向包括条件边。通过组合节点和边你可以快速构建出上述任意一种多智能体架构。实战用 LangGraph 构建监管者多智能体下面我们实现一个简单的监管者系统监管者分析用户问题决定调用“搜索工人”还是“写作工人”最后整合输出。项目结构multi_agent_demo/ ├── main.py ├── .env └── requirements.txt依赖安装pipinstalllanggraph langchain-openai langchain-community python-dotenv完整代码main.pyimportosfromtypingimportTypedDict,Annotated,Sequenceimportoperatorfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.messagesimportBaseMessage,HumanMessage,AIMessagefromlanggraph.graphimportStateGraph,END# 加载环境变量load_dotenv()# 初始化模型llmChatOpenAI(modelgpt-3.5-turbo,temperature0)# 定义状态整个工作流共享的消息列表classAgentState(TypedDict):messages:Annotated[Sequence[BaseMessage],operator.add]next_worker:str# 下一个要调用的工人# 工人A搜索专家模拟defsearch_worker(state:AgentState)-AgentState:模拟搜索实际可接入 SerpAPIquerystate[messages][-1].content# 模拟搜索响应resultf搜索结果关于「{query}」的最新信息显示多智能体架构正成为AI应用主流。return{messages:[AIMessage(contentresult)],next_worker:supervisor}# 工人B写作专家模拟defwriter_worker(state:AgentState)-AgentState:根据素材生成最终回答contextstate[messages][-1].content# 假设包含搜索结果responsellm.invoke(f根据以下素材写一段专业总结\n{context})return{messages:[response],next_worker:end}# 监管者决定下一步该调用哪个工人defsupervisor(state:AgentState)-AgentState:分析用户意图决定下一个工人user_msgstate[messages][-1].content# 简单规则包含“搜索”或“最新”则调用搜索工人否则直接写作if搜索inuser_msgor最新inuser_msg:next_workersearchelse:next_workerwriterreturn{messages:[],next_worker:next_worker}# 条件边根据 next_worker 字段路由defroute(state:AgentState)-str:returnstate[next_worker]# 构建图workflowStateGraph(AgentState)workflow.add_node(supervisor,supervisor)workflow.add_node(search,search_worker)workflow.add_node(writer,writer_worker)workflow.set_entry_point(supervisor)# 添加边workflow.add_conditional_edges(supervisor,route,{search:search,writer:writer,})workflow.add_edge(search,writer)# 搜索完成后交给写作工人workflow.add_edge(writer,END)# 编译appworkflow.compile()# 运行if__name____main__:# 测试任务1需要搜索inputs{messages:[HumanMessage(content搜索最新的多智能体发展趋势)],next_worker:supervisor}foroutputinapp.stream(inputs):forkey,valueinoutput.items():ifmessagesinvalueandvalue[messages]:last_msgvalue[messages][-1]print(f节点 {key}:{last_msg.content})print(\n---\n)# 测试任务2无需搜索直接写作inputs2{messages:[HumanMessage(content写一段关于人工智能的介绍)],next_worker:supervisor}foroutputinapp.stream(inputs2):forkey,valueinoutput.items():ifmessagesinvalueandvalue[messages]:last_msgvalue[messages][-1]print(f节点 {key}:{last_msg.content})运行说明执行前确保.env中配置了OPENAI_API_KEY。运行python main.py观察控制台输出监管者会根据输入内容自动决定是先去搜索还是直接写作搜索的结果会传递给写作工人最终生成回答。总结多智能体架构为复杂 AI 应用提供了强大的组织能力LangGraph则是实现这些架构的利器。本文介绍了常见的多智能体模式并通过一个监管者系统的完整代码展示了如何用图结构编排多个智能体协作。掌握这些基础后你可以轻松扩展到分级架构、评估-修正循环等更高级的设计。本文概括了单智能体与多智能体的对比、五种常见架构的特点并用 LangGraph 实现了监管者模式的代码示例。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价