langgraph-swarm 去中心化架构:Agent 之间互相传递任务

langgraph-swarm 去中心化架构:Agent 之间互相传递任务
Supervisor 模式有一个中心调度器。但很多场景下没有调度器反而更好。就像蜂群——没有蜂王指挥每只蜜蜂做什么。每只蜜蜂根据局部信息自主决策整个蜂群却高效协作。langgraph-swarm 实现了这个模式。Agent 之间手递手传递任务每个 Agent 完成后主动把结果交给下一个最合适的 Agent没有中央调度器。代码实现import os import warnings from dotenv import load_dotenv from langgraph_swarm import create_swarm, create_handoff_tool from langgraph.prebuilt import create_react_agent from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage # 屏蔽LangGraph版本弃用警告 warnings.filterwarnings(ignore, categoryUserWarning) warnings.filterwarnings(ignore, categoryDeprecationWarning) load_dotenv() api_keysk-xxxxxxxxxxxxxxxxxxxxxxxxxx # DeepSeek LLM 初始化 def get_deepseek_llm(model_name: str deepseek-chat) - ChatOpenAI: return ChatOpenAI( modelmodel_name, api_keyapi_key, base_urlhttps://api.deepseek.com/v1, temperature0.1 ) # 1. 定义所有交接工具每个agent可调用其他agent transfer_to_tech create_handoff_tool(agent_nametech_agent) transfer_to_finance create_handoff_tool(agent_namefinance_agent) transfer_to_summary create_handoff_tool(agent_namesummary_agent) transfer_to_intake create_handoff_tool(agent_nameintake_agent) # 1. 接单分流Agentname必须指定用于swarm识别 intake_agent create_react_agent( modelget_deepseek_llm(), tools[transfer_to_tech, transfer_to_finance], nameintake_agent, # 关键给agent命名生成.name属性 prompt你是客服接单员。先判断用户问题类型 1. 账号登录、系统报错等技术问题 → 调用transfer_to_tech转交tech_agent 2. 发票、报销、扣费等财务问题 → 调用transfer_to_finance转交finance_agent 禁止直接回答必须调用对应工具转交对应专员处理。 ) # 2. 技术专员Agent tech_agent create_react_agent( modelget_deepseek_llm(), tools[transfer_to_summary], nametech_agent, prompt你是技术专员负责解决账号登录、系统故障类问题。 完成问题处理后调用transfer_to_summary工具转交summary_agent生成友好总结回复。 ) # 3. 财务专员Agent finance_agent create_react_agent( modelget_deepseek_llm(), tools[transfer_to_summary], namefinance_agent, prompt你是财务专员处理发票、报销、扣费相关咨询。 处理完成后调用transfer_to_summary工具转交summary_agent整理最终回答。 ) # 4. 总结输出Agent summary_agent create_react_agent( modelget_deepseek_llm(), tools[], namesummary_agent, prompt你是总结专员整合前面所有Agent的处理内容输出简洁友好、面向用户的完整答复流程到此结束无需转交其他Agent。 ) # 创建swarmagents直接放agent对象default_active_agent传name字符串 swarm create_swarm( agents[intake_agent, tech_agent, finance_agent, summary_agent], modelget_deepseek_llm(deepseek-v3), default_active_agentintake_agent # 和上面nameintake_agent严格一致 ) app swarm.compile() if __name__ __main__: # 测试技术问题 input_msg {messages: [HumanMessage(content我的账号无法登录应该怎么解决)]} result app.invoke(input_msg) print( 完整对话流转输出 ) for idx, msg in enumerate(result[messages]): print(f\n[{idx}] 角色:{msg.type}) print(f内容:\n{msg.content}\n)输出结果F:\pythonProject\AgetStudyProject\.venv\Scripts\python.exe F:\pythonProject\AgetStudyProject\agent07.py 完整对话流转输出 [0] 角色:human 内容: 我的账号无法登录应该怎么解决 [1] 角色:ai 内容: 您遇到了账号登录问题这属于技术问题我马上为您转接技术专员处理。 [2] 角色:tool 内容: Successfully transferred to tech_agent [3] 角色:ai 内容: 您好我是技术专员很高兴为您服务。关于账号无法登录的问题我来帮您排查一下。 首先请问您遇到了哪种情况呢 1. **忘记密码** - 无法输入正确密码 2. **账号被锁定** - 多次输入错误密码后被锁定 3. **提示账号不存在** - 输入账号后显示未注册 4. **验证码收不到** - 手机或邮箱收不到验证码 5. **其他错误提示** - 请描述具体提示内容 另外请提供以下信息以便我更快帮您解决 - 您的账号是什么用户名/手机号/邮箱 - 登录时出现了什么具体的错误提示 - 您最近一次成功登录是什么时候 Process finished with exit code 0pip install langgraph langgraph-swarm langchain langchain-openai python-dotenvSwarm 模式适合流程可变的场景——Agent 之间自主协商谁处理下一环节系统更加灵活。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】