langgraph-swarm-py
langgraph-swarm-py 是一个基于 LangGraph 框架的 Python 库,旨在简化多智能体协作系统的构建。它采用“蜂群”架构,允许你创建多个拥有不同专长的智能体,让它们根据任务需求动态交接控制权。这种设计有效解决了单一模型在处理复杂、多步骤任务时能力受限或上下文丢失的问题,确保对话能在不同角色间无缝流转。
对于开发者而言,langgraph-swarm-py 提供了开箱即用的智能体交接工具,无需从零编写通信逻辑。它深度集成了 LangGraph 的核心优势,支持流式输出、短期与长期记忆管理,以及人工介入机制。你只需定义好每个智能体的提示词和可用工具,即可快速搭建出能自主协作的智能体网络。无论是进行 AI 应用原型开发,还是构建复杂的自动化工作流,langgraph-swarm-py 都能帮助技术人员高效实现多角色协同,有效降低多智能体架构的开发门槛。
使用场景
某电商公司的技术团队正在开发新一代智能售后助手,旨在高效解决用户复杂的订单查询与故障排查需求。
没有 langgraph-swarm-py 时
- 单一 LLM 模型难以兼顾财务对账逻辑与代码级故障分析,专业度不足且易产生幻觉。
- 用户从“查订单”转到“修 Bug"时,上下文经常中断,需反复确认身份与历史细节。
- 硬编码的 if-else 路由逻辑臃肿,新增业务角色需重构整个流程,维护成本极高。
- 缺乏会话状态持久化,长对话中容易遗忘之前的关键信息,导致服务体验严重割裂。
使用 langgraph-swarm-py 后
- 构建了“财务专员”与“技术极客”两个独立 Agent,通过专业化分工显著提升回答准确率。
- 内置手递手(Handoff)工具让 Agent 间自动传递控制权,用户完全感知不到后台切换过程。
- 结合 Checkpointer 实现短期记忆,确保跨 Agent 协作时上下文不丢失,对话连贯自然流畅。
- 动态路由机制简化了调度逻辑,新增角色只需注册即可接入工作流,系统扩展性大幅提升。
langgraph-swarm-py 通过解耦 Agent 职责与自动化状态管理,显著降低了多智能体系统的开发复杂度并优化了最终用户体验。
运行环境要求
- 未说明
未说明
未说明

快速开始
🤖 LangGraph Multi-Agent Swarm
一个使用 LangGraph 创建蜂群式多智能体 (multi-agent) 系统的 Python 库。蜂群是一种 多智能体 架构类型,其中智能体根据其专长动态地将控制权移交给彼此。系统会记住最后活跃的智能体是谁,确保在后续交互中,对话能与该智能体继续。

Features
- 🤖 多智能体协作 - 启用专用智能体协同工作并相互传递上下文
- 🛠️ 可自定义的交接工具 - 内置用于智能体间通信的工具
本库基于 LangGraph 构建,这是一个用于构建智能体应用的强大框架,并开箱即用地支持 流式传输 (streaming)、短期和长期记忆 (memory) 以及 人机回环 (human-in-the-loop)
Installation
pip install langgraph-swarm
Quickstart
pip install langgraph-swarm langchain-openai
export OPENAI_API_KEY=<your_api_key>
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver
from langchain.agents import create_agent
from langgraph_swarm import create_handoff_tool, create_swarm
model = ChatOpenAI(model="gpt-4o")
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
alice = create_agent(
model,
tools=[
add,
create_handoff_tool(
agent_name="Bob",
description="Transfer to Bob",
),
],
system_prompt="You are Alice, an addition expert.",
name="Alice",
)
bob = create_agent(
model,
tools=[
create_handoff_tool(
agent_name="Alice",
description="Transfer to Alice, she can help with math",
),
],
system_prompt="You are Bob, you speak like a pirate.",
name="Bob",
)
checkpointer = InMemorySaver()
workflow = create_swarm(
[alice, bob],
default_active_agent="Alice"
)
app = workflow.compile(checkpointer=checkpointer)
config = {"configurable": {"thread_id": "1"}}
turn_1 = app.invoke(
{"messages": [{"role": "user", "content": "i'd like to speak to Bob"}]},
config,
)
print(turn_1)
turn_2 = app.invoke(
{"messages": [{"role": "user", "content": "what's 5 + 7?"}]},
config,
)
print(turn_2)
[!TIP] 对于开发、调试和部署 AI 智能体和 大语言模型 (LLM) 应用,请参阅 LangSmith。
Memory
您可以为您的蜂群多智能体系统添加 短期 (short-term) 和 长期 (long-term) 记忆 (memory)。由于 create_swarm() 返回一个需要在编译后才能使用的 状态图 (StateGraph) 实例,您可以直接将 检查点保存器 (checkpointer) 或 存储 (store) 实例传递给 .compile() 方法:
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.store.memory import InMemoryStore
# short-term memory
checkpointer = InMemorySaver()
# long-term memory
store = InMemoryStore()
model = ...
alice = ...
bob = ...
workflow = create_swarm(
[alice, bob],
default_active_agent="Alice"
)
# Compile with checkpointer/store
app = workflow.compile(
checkpointer=checkpointer,
store=store
)
[!IMPORTANT] 添加 短期记忆 (short-term memory) 对于跨多次交互维持对话状态至关重要。如果没有它,蜂群将“忘记”最后活跃的智能体是谁并丢失对话历史。如果您计划在多轮对话中使用它,请确保始终使用检查点保存器编译蜂群;例如,
workflow.compile(checkpointer=checkpointer)。
How to customize
您可以通过更改 交接工具 (handoff tools) 实现或 智能体 (agent) 实现来自定义多智能体蜂群。
自定义交接工具
默认情况下,群集(swarm)中的代理(agents)假定使用通过预构建的 create_handoff_tool 创建的交接工具(handoff tools)。你也可以创建自己的自定义交接工具。以下是一些关于如何修改默认实现的想法:
- 更改工具名称和/或描述
- 添加供大语言模型(LLM)填充的工具调用参数,例如下一个代理的任务描述
- 更改作为交接一部分传递给下一个代理的数据:默认情况下,
create_handoff_tool传递完整的消息历史(直到当前点群集中生成的所有消息),以及一个指示交接成功的工具消息。
以下是自定义交接工具可能的外观示例:
from typing import Annotated
from langchain.tools import tool, BaseTool, InjectedToolCallId
from langchain.messages import ToolMessage
from langgraph.types import Command
from langgraph.prebuilt import InjectedState
def create_custom_handoff_tool(*, agent_name: str, name: str | None, description: str | None) -> BaseTool:
@tool(name, description=description)
def handoff_to_agent(
# you can add additional tool call arguments for the LLM to populate
# for example, you can ask the LLM to populate a task description for the next agent
task_description: Annotated[str, "Detailed description of what the next agent should do, including all of the relevant context."],
# you can inject the state of the agent that is calling the tool
state: Annotated[dict, InjectedState],
tool_call_id: Annotated[str, InjectedToolCallId],
):
tool_message = ToolMessage(
content=f"Successfully transferred to {agent_name}",
name=name,
tool_call_id=tool_call_id,
)
# you can use a different messages state key here, if your agent uses a different schema
# e.g., "alice_messages" instead of "messages"
messages = state["messages"]
return Command(
goto=agent_name,
graph=Command.PARENT,
# NOTE: this is a state update that will be applied to the swarm multi-agent graph (i.e., the PARENT graph)
update={
"messages": messages + [tool_message],
"active_agent": agent_name,
# optionally pass the task description to the next agent
"task_description": task_description,
},
)
return handoff_to_agent
[!IMPORTANT] 如果你正在实现返回
Command的自定义交接工具,你需要确保:
(1) 你的代理拥有一个可以处理返回Command的工具的调用节点(例如 LangGraph 预构建的ToolNode)
(2) 群集图和下一个代理图都拥有包含你希望在Command.update中更新的键的 状态架构
自定义代理实现
默认情况下,各个代理预期通过一个由所有代理和整体多代理群集图共享的单一 messages 键进行通信。这意味着来自所有代理的消息将被合并到一个单一的共享消息列表中。如果你不希望暴露代理的内部消息历史,这可能不是理想的方案。要更改这一点,你可以通过以下步骤自定义代理:
from typing_extensions import TypedDict, Annotated
from langchain.messages import AnyMessage
from langgraph.graph import StateGraph, add_messages
from langgraph_swarm import SwarmState
class AliceState(TypedDict):
alice_messages: Annotated[list[AnyMessage], add_messages]
# see this guide to learn how you can implement a custom tool-calling agent
# https://langchain-ai.github.io/langgraph/how-tos/react-agent-from-scratch/
alice = (
StateGraph(AliceState)
.add_node("model", ...)
.add_node("tools", ...)
.add_edge(...)
...
.compile()
)
# wrapper calling the agent
def call_alice(state: SwarmState):
# you can put any input transformation from parent state -> agent state
# for example, you can invoke "alice" with "task_description" populated by the LLM
response = alice.invoke({"alice_messages": state["messages"]})
# you can put any output transformation from agent state -> parent state
return {"messages": response["alice_messages"]}
def call_bob(state: SwarmState):
...
然后,你可以按以下方式手动创建群集:
from langgraph_swarm import add_active_agent_router
workflow = (
StateGraph(SwarmState)
.add_node("Alice", call_alice, destinations=("Bob",))
.add_node("Bob", call_bob, destinations=("Alice",))
)
# this is the router that enables us to keep track of the last active agent
workflow = add_active_agent_router(
builder=workflow,
route_to=["Alice", "Bob"],
default_active_agent="Alice",
)
# compile the workflow
app = workflow.compile()
版本历史
langgraph-swarm==0.1.02025/12/04langgraph-swarm==0.0.152025/11/07langgraph-swarm==0.0.142025/07/28langgraph-swarm==0.0.132025/07/16langgraph-swarm==0.0.122025/07/09langgraph-swarm==0.0.112025/04/30langgraph-swarm==0.0.102025/04/11langgraph-swarm==0.0.92025/04/02langgraph-swarm==0.0.82025/03/31langgraph-swarm==0.0.72025/03/19langgraph-swarm==0.0.62025/03/17langgraph-swarm==0.0.52025/03/05langgraph-swarm==0.0.42025/03/01langgraph-swarm==0.0.32025/02/27langgraph-swarm==0.0.22025/02/26langgraph-swarm==0.0.12025/02/25常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。