多智能体协作库langgraph-swarm-py
https://github.com/langchain-ai/langgraph-swarm-py多智能体协作库一、这玩意是干啥的想象你有一个客服团队Alice 是数学专家Bob 是个说话像海盗的逗比。用户来了先跟 Bob 聊天然后问57 等于几Bob 不会算就说这事儿得找 Alice然后把用户转给 Alice。Alice 算完答案对话结束。这个库就是帮你实现智能体之间自动转接的。GitHublangchain-ai/langgraph-swarm-py二、三个核心概念1. Swarm蜂群— 一群智能体的管理者就像蜂群里的蜂王它知道现在谁在干活active_agent该把活儿派给谁路由逻辑怎么让智能体们互相交接handoff 机制为什么需要它如果没有这个管理者你每次跟 AI 对话它都不知道上次是谁在回答你每次都从头开始像个金鱼记忆。2. Handoff交接— 智能体之间的传话筒每个智能体手里有个转接电话的工具。比如 Bob 会说我有个 transfer_to_alice 按钮按一下就把用户转给 Alice。交接的时候做了三件事发一条消息已成功转接给 Alice让用户知道发生了什么告诉系统下一个找 Alice 干活更新 active_agent把之前的聊天记录打包带过去这样 Alice 知道前面聊了啥为什么需要它就像医院分诊你不能让一个心脏科医生去拔牙。每个智能体有自己擅长的活遇到不擅长的就转给对的人。3. Active Agent活跃智能体— 记住上次是谁系统里有个小本本记着现在该谁干活。新消息来了先看小本本找到那个人让他继续处理。为什么需要它保证对话的连续性。你问57 等于几系统知道上次是 Alice 在干活就直接找 Alice不会又去问 Bob你要不要算一下三、代码怎么组织的langgraph_swarm/ ├── swarm.py ← 蜂群管理者怎么组队、怎么调度 ├── handoff.py ← 交接工具怎么转接、转给谁 └── __init__.py ← 对外暴露的接口三个模块各司其职模块核心功能关键函数swarm.py多智能体编排引擎create_swarm()、add_active_agent_router()handoff.py智能体间交接机制create_handoff_tool()、get_handoff_destinations()__init__.py公共 API 导出暴露 4 个符号四、一个完整的例子# 1. 创建两个智能体 alice 创建智能体(模型, 工具[加法器, 转接给Bob], 角色我是数学专家) bob 创建智能体(模型, 工具[转接给Alice], 角色我是海盗) # 2. 组建成蜂群 swarm create_swarm([alice, bob], 默认启动Alice) # 3. 用户第一句话我想跟 Bob 说话 # → 系统启动 AliceAlice 看到用户想找 Bob按转接按钮 # → 系统切到 BobBob 开始用海盗口吻聊天 # 4. 用户第二句话57 等于几 # → 系统记得上次是 Bob直接找 Bob # → Bob 不会算按转接按钮找 Alice # → Alice 算出 12返回答案五、为什么这个设计好特性说明不用手动写调度代码你只需要告诉每个智能体你能转给谁库自动处理所有路由有记忆通过 checkpointer 保存对话关了重开还能继续聊可扩展想加第三个智能体一行代码create_swarm([alice, bob, charlie])⚙️可定制不满意默认的转接方式自己写个 handoff 工具想传什么数据都行六、频繁交接问题会不会转错Q1很多智能体互相转换要维护复杂的 handoff 工具吗不需要。库自动搞定。create_swarm在添加每个智能体时会调用get_handoff_destinations()自动扫描这个智能体身上有哪些 handoff 工具自动识别路由目标。关键机制在get_handoff_destinations钻进智能体内部的图结构找到 tools 节点里的所有工具检查每个工具的 metadata 里有没有__handoff_destination标记把标记里的目标名字全部收集起来Q2会不会交接给错误的智能体有可能但责任在 LLM不在库。交接的决策者是 LLM库只负责执行。库做的防护工具描述create_handoff_tool的description参数告诉 LLM 这个工具是干啥的system_prompt 引导可以给每个智能体写清楚角色定位没有强制路由库不会替 LLM 做决定怎么降低风险给每个 handoff 工具写清晰的 description描述越具体LLM 越不容易选错。七、为什么要路由到上次干活的 Agent核心代码就一句话def route_to_active_agent(state: dict) - str: return state.get(active_agent, default_active_agent)每次新消息进来先看 state 里记的active_agent是谁就找谁。这个设计的巧妙之处特点说明保证对话连续性没有记忆的话每次都要重新判断该找谁对话会断⚡避免反复路由的性能浪费有记忆 直接跳过去省一次 LLM 调用符合人类对话直觉你跟一个人聊天不会每句话都重新自我介绍和 handoff 工具形成闭环handoff 更新 active_agent路由读取 active_agent写和读分离️支持默认值降级第一次对话时 active_agent 是空的走 default_active_agent一句话总结这个设计把谁在处理当前对话这个状态从每次都重新计算变成了记住就行。就像你在餐厅点了菜服务员不需要每上一道菜都问这桌是谁的因为订单上写着桌号。active_agent 就是那个桌号。八、从交接看执行全过程基于测试用例场景还原Turn 1用户说我想跟 Bob 说话步骤动作①系统启动active_agent 为空 → 走默认值 Alice②路由到 AliceAlice 调用 transfer_to_bob 工具③handoff 执行goto → Bob 节点update → 把 active_agent 改成 Bob④Bob 收到消息 完整历史开始用海盗口吻回复结束active_agent BobTurn 2用户说57 等于几步骤动作①路由函数读 state.get(active_agent) → Bob②直接路由到 BobBob 调用 transfer_to_alice③handoff 执行active_agent 被改成 Alice④Alice 调用 add(5, 7)返回 12结束active_agent Alice三个关键问题的答案问题答案Alice 交接给 Bob 后当前活跃的是谁Bob。handoff 在第 91 行立刻把 active_agent 改成了 Bob下次对话进来路由到谁Bob。路由函数读的是state.get(active_agent)上次结束时的值是 BobBob 知道前面聊了啥吗全知道。所有历史消息都打包传给了 Bob关键洞察active_agent 不是谁在处理而是处理完之后的最后一个人是谁。就像接力赛最后一棒是谁active_agent 就记谁。下次发令枪响直接找最后一棒的人。消息是全量传递的不是只传当前智能体的消息。所有智能体共享一个 messages 列表所以 Bob 能看到 Alice 说过什么Alice 也能看到 Bob 说过什么。九、每个智能体都充当路由器角色关键机制handoff 工具就是一个普通的 toolcreate_handoff_tool创建的本质上就是一个普通的 LangChain Tool跟add(a, b)这种计算工具没区别。它被塞进智能体的 tools 列表里LLM 看到它自己决定要不要调用。完整流程拆解场景用户说帮我算 57步骤动作①路由到 Bobactive_agent Bob②Bob 的 LLM 看到工具列表中有 transfer_to_alice③LLM 决定调用 transfer_to_alice④系统跳到 Alice 节点⑤Alice 的 LLM 看到工具列表中有 add(a, b)⑥LLM 调用 add(5, 7) → 返回 12⑦LLM 生成回复结果是 12三个关键点路由判断 LLM 的工具选择— 不是库写了 if 规则而是 LLM 自己推理每个智能体只需要知道我能转给谁— 不需要知道对方的能力没有中心调度器— 系统是去中心化的每个智能体自己决定要不要转、转给谁每个智能体都需要充当判断路由的作用——这个判断不是代码逻辑是 LLM 的工具调用决策。库只负责发按钮 → 按按钮后跳转 → 记住最后谁在干活。十、消息归属问题不是模糊记录每条 AI 消息都有name字段明确标记是谁说的。messages列表不是所有消息混在一起而是每条都有角色归属messages [ {role: user, content: 我想跟 Bob 说话}, # 用户说的 AIMessage(nameAlice, tool_calls[transfer_to_bob]), # Alice 说的 ToolMessage(content已转接给 Bob), # 系统说的handoff 工具生成 AIMessage(nameBob, contentAhoy, matey! ...), # Bob 说的 {role: user, content: 57 等于几}, # 用户说的 AIMessage(nameBob, tool_calls[transfer_to_alice]), # Bob 转接的 ToolMessage(contentadd(5,7)12), # 系统说的add 工具结果 AIMessage(nameAlice, content结果是12), # Alice 回答的 ]附代码模块详解swarm.py — 多智能体编排引擎组件说明SwarmState继承自 MessagesState核心字段是 active_agent记录当前活跃的智能体create_swarm()工厂函数接收多个智能体列表自动构建 StateGraph。验证非空、自动转换类型、添加节点、推断路由add_active_agent_router()底层路由函数在 START 处添加条件边根据 active_agent 状态字段决定路由handoff.py — 智能体间交接机制组件说明create_handoff_tool()创建标准交接工具工具名自动生成内部生成 ToolMessage 返回 Command(goto...)get_handoff_destinations()从已编译的智能体图中提取所有 handoff 目标公共 API__init__.py暴露 4 个公共符号SwarmState、add_active_agent_router、create_handoff_tool、create_swarm

相关新闻

Box64:突破性ARM架构x86_64模拟器深度解析

Box64:突破性ARM架构x86_64模拟器深度解析

Box64:突破性ARM架构x86_64模拟器深度解析 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 还在为ARM设备无法运行…

2026/8/1 11:14:00 阅读更多 →
计算机毕业设计之宠物商场APP的设计与实现

计算机毕业设计之宠物商场APP的设计与实现

由于移动应用技术的持续性的快速发展,现实生活中人们大多数都是通过移动手机、电脑等智能设备来完成生活中的事务。因此,许多的人工传统行业也开始与互联网结合,不再一味的依靠人工手动,努力打造半自动数字化甚至是全自动数字化模…

2026/8/1 11:14:00 阅读更多 →
深入解析Tkinter pack布局:从核心算法到复杂界面实战

深入解析Tkinter pack布局:从核心算法到复杂界面实战

1. 为什么说pack是Tkinter布局的“懒人神器”?如果你刚开始用Python的Tkinter做图形界面,面对一堆按钮、标签、文本框,第一个头疼的问题肯定是:怎么把它们摆到窗口里?Tkinter给了你三个选择:pack、grid和pl…

2026/8/1 11:14:00 阅读更多 →

最新新闻

3个步骤永久保存微信聊天记录:WeChatMsg开源工具完全指南

3个步骤永久保存微信聊天记录:WeChatMsg开源工具完全指南

3个步骤永久保存微信聊天记录:WeChatMsg开源工具完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/We…

2026/8/1 11:51:10 阅读更多 →
Android状态栏适配:从SystemUiVisibility到WindowInsetsControllerCompat的兼容性实践

Android状态栏适配:从SystemUiVisibility到WindowInsetsControllerCompat的兼容性实践

1. 从“黑底白字”到“白底黑字”:一个困扰开发者的经典问题 如果你做过Android应用开发,尤其是涉及沉浸式体验或者需要自定义主题的应用,那你一定遇到过这个场景:应用主界面是浅色背景,但顶部的状态栏(Sta…

2026/8/1 11:51:10 阅读更多 →
装备制造数字化转型避坑指南:4 个致命误区 + 实测解决方案

装备制造数字化转型避坑指南:4 个致命误区 + 实测解决方案

作为工业互联网落地的核心赛道,装备制造数字化转型已成为企业降本增效的必选项,但据《2024 智能制造白皮书》统计,国内装备制造企业数字化转型成功率不足 35%。很多企业投入几十万甚至上百万,最终却陷入 “系统闲置、数据孤岛、效…

2026/8/1 11:51:10 阅读更多 →
MOS管工作原理与电路设计实战:从核心参数到栅极驱动优化

MOS管工作原理与电路设计实战:从核心参数到栅极驱动优化

1. 从“开关”到“大脑”:为什么MOS管是现代电子的基石 如果你拆开任何一个现代电子设备,从手机、电脑到电动汽车的控制器,里面密密麻麻的芯片和电路板上,有一个元件几乎无处不在,它就是MOS管。对于很多刚入行的电子工…

2026/8/1 11:51:10 阅读更多 →
Unity DoTween性能优化与进阶应用:从GC优化到对象池实战

Unity DoTween性能优化与进阶应用:从GC优化到对象池实战

1. 项目概述:为什么DoTween值得深挖? 在Unity3D项目里做动画,你肯定绕不开DoTween。它几乎是每个Unity开发者工具箱里的标配,一句 transform.DOMove 就能让物体平滑移动,简单到让人上瘾。但如果你只停留在“能用”的…

2026/8/1 11:51:10 阅读更多 →
3步搞定视频水印:基于LAMA模型的AI视频修复完整指南

3步搞定视频水印:基于LAMA模型的AI视频修复完整指南

3步搞定视频水印:基于LAMA模型的AI视频修复完整指南 【免费下载链接】WatermarkRemover 批量去除视频中位置固定的水印 项目地址: https://gitcode.com/gh_mirrors/wa/WatermarkRemover 还在为视频中的水印烦恼吗?无论是下载的教学视频、素材片段…

2026/8/1 11:50:10 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →