开发与工程 multi-agent-systemsagent-handoffslanggraphpythonconversation-memoryhuman-in-the-loopstreaming

LangGraph Multi-Agent Swarm

用动态交接和会话记忆组织多个专业智能体。

FollowAgents 评估 · FARS-2.1
不推荐
51/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全11 / 29 · 1.9/5

工作流将 GitHub Actions 权限限制为只读,并明确说明默认交接会传递完整消息历史,也指出可通过自定义状态隔离代理内部记录;许可证、包作者和项目归属提供了基本来源标注。扣分原因是运行时最小权限没有系统性设计,人工确认仅作为上游 LangGraph 能力被提及而无本仓库的具体控制,敏感数据缺少脱敏、保留和密钥处理规范,依赖没有审计或漏洞缓解证据,任意代理工具的外部副作用没有确认或限制机制,检查点虽能保存状态但未说明回滚流程。发布者身份未知本身未被当作风险或额外扣分依据。

2可靠稳定6 / 14 · 2.1/5

README 的交接、活动代理记忆和多轮行为与测试中的断言基本一致;Python 版本、依赖范围、安装命令和 CI 安装步骤也较明确。扣分原因是给定材料未包含核心实现,证据覆盖仍不完整;空的导入测试价值有限,且没有面向无效代理名、错误状态模式、模型失败或工具失败的诊断消息及失败路径说明。

3适用触发12 / 18 · 3.3/5

材料覆盖基础多代理交接、短期与长期记忆、自定义交接工具、自定义状态模式和代理包装器,并说明默认共享消息与活动代理路由的边界;工具名称和描述可用于提高交接触发精度。扣分原因是场景主要集中在单一示例,未给出复杂路由、冲突交接或不应交接条件的策略,环境说明主要限于 Python、LangGraph 和 OpenAI 快速入门,部署及其他模型提供商适配没有展开。

4规范维护10 / 18 · 2.8/5

README 结构清楚,包含安装、快速入门、记忆与两类定制说明;公开名称在包元数据、导入和示例中一致,重要限制以提示形式说明。MIT 正文与元数据一致,因此许可证得满分。扣分原因是没有 FAQ、迁移指南、版本历史或变更日志;维护责任仅能从单一作者字段和版权主体推断,未说明支持渠道、维护者角色或更新政策。

5有效结果7 / 13 · 2.7/5

示例产生可直接消费的图状态和消息列表,活动代理字段、持久化以及可定制交接相对手工编排提供了明确增量价值。扣分原因是效用只由一个小型算术/角色交接场景支持,未展示生产规模收益;没有讨论模型调用次数、延迟、令牌消耗、存储成本或多代理编排开销,因此成本收益证据偏薄。

6证据核验5 / 8 · 3.1/5

主要功能主张可对应到 README 示例、包元数据、CI 配置及确定性的伪模型测试,测试对消息数量、交接文本、计算结果和活动代理进行了具体断言;不同文件对包名、依赖和工作流行为基本互相印证。扣分原因是核心源代码、发布记录和更广泛测试未提供,部分上游能力仅通过外部文档链接宣称;文档虽通常区分默认行为与可选定制,但没有正式的声明—证据映射或明确标注所有推断。

证据充分度: 评估于 2026年8月14日 审查版本 749d4450f248
源码中未见的安全控制:外部影响披露
使用前请注意
  • 默认交接会把完整消息历史传给下一个代理;其中可能包含敏感内容,生产使用前应设计最小化、脱敏和代理间隔离策略。
  • 框架允许代理调用自定义工具,但材料未显示对外部副作用的审批、权限收敛或补偿机制;有写入能力的工具应在宿主应用中增加确认与幂等保护。
  • 不要把检查点等同于回滚:文档说明了状态持久化,却没有恢复、撤销或清理流程。
  • 依赖仅采用较宽的主版本范围,给定证据没有锁文件、安全扫描结果或漏洞响应政策;部署方应自行锁定并审计依赖。
  • 此次结论仅基于所给静态文件,未执行代码或测试,且核心实现未包含在证据中。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

LangGraph Multi-Agent Swarm 是一个用于构建群体式多智能体系统的 Python 库。它通过 `create_swarm` 将多个专业智能体组合成 `StateGraph`,并允许智能体借助 `create_handoff_tool` 动态移交控制权和上下文。路由器记录最后活跃的智能体,因此在配置检查点后,后续对话可以从该智能体继续。工作流需调用 `.compile()` 后才能运行,并可接入 checkpointer、store、流式输出和人工介入等 LangGraph 能力。它提供的是应用内编排组件,而非独立托管服务;模型调用、智能体实现、状态持久化和部署均由采用者配置。

开发者先使用 langchain.agents.create_agent 或自定义 StateGraph 创建各个智能体,再为它们配置工具和系统提示。create_handoff_tool 生成交接工具;默认交接会把完整消息历史和一条表示交接成功的 ToolMessage 传给下一个智能体。create_swarm([alice, bob], default_active_agent="Alice") 构建父级 StateGraph,其中 active_agent 用于追踪当前控制者。调用 workflow.compile(checkpointer=..., store=...) 可加入短期和长期记忆,编译后的应用通过 app.invoke({"messages": [...]}, config) 接收消息并返回工作流状态。需要更细粒度隔离时,可以为子智能体定义独立状态键、编写父子状态转换包装器,并用 add_active_agent_router 手动组装路由。

  1. 正在开发客服应用的 Python 团队,可让账单、技术支持等专业智能体按请求内容互相交接,并在多轮对话中保留当前负责人。
  2. 需要按技能分工的应用开发者,可为数学、语言或其他领域智能体配置不同工具与系统提示,再由模型选择交接目标。
  3. 不希望所有子智能体共享内部消息历史的团队,可使用自定义状态模式和包装器,为每个智能体维护独立消息键。
  4. 需要可恢复会话的 LangGraph 用户,可用 checkpointer 保存短期状态,并用 store 增加跨线程长期记忆。
  5. 需要定制任务委派协议的工程师,可扩展交接工具参数,将任务描述等结构化上下文传给下一智能体。

这个 Agent 有哪些优点和局限?

优点
  • 内置 create_handoff_toolcreate_swarm,直接覆盖智能体交接、上下文传递和活跃智能体路由。
  • 编译后的工作流可沿用 LangGraph 的流式输出、短期与长期记忆以及人工介入能力。
  • 交接工具可定制名称、描述、模型填写的参数以及传给下一智能体的状态数据。
  • 支持自定义智能体状态和父子图状态转换,可避免所有智能体被迫共享同一消息列表。
局限
  • 多轮对话必须配置 checkpointer;否则系统会忘记最后活跃的智能体并丢失对话历史。
  • 默认交接会传递完整消息历史,可能不适合需要隔离智能体内部上下文的应用,采用者需自行改造状态模式。
  • 自定义返回 Command 的交接工具要求智能体工具节点能处理 Command,且父图与目标子图必须包含待更新的状态键。
  • 文档中的可运行示例依赖 langchain-openai、OpenAI API 密钥和网络访问;未展示其他模型提供商的即用配置。
  • 仓库提供的是 Python 编排库,没有给出独立服务、容器镜像或托管部署流程。

如何安装或部署这个 Agent?

需要 Python 环境。安装基础库:

pip install langgraph-swarm

若要运行文档中的 OpenAI 示例,请安装适配器并设置 API 密钥:

pip install langgraph-swarm langchain-openai
export OPENAI_API_KEY=<your_api_key>

如何使用这个 Agent?

创建 ChatOpenAI(model="gpt-4o"),然后用 create_agent 定义具名智能体,并在各自的 tools 中加入指向其他智能体的 create_handoff_tool。调用 create_swarm([alice, bob], default_active_agent="Alice") 创建工作流。多轮会话应使用 InMemorySaver 或其他 checkpointer 编译:app = workflow.compile(checkpointer=checkpointer)。最后以固定线程配置调用,例如 config = {"configurable": {"thread_id": "1"}},再执行 app.invoke({"messages": [{"role": "user", "content": "i'd like to speak to Bob"}]}, config);后续请求复用同一 thread_id

这个 Agent 与同类方案有什么区别?

与手动构建 LangGraph StateGraph 相比,create_swarmcreate_handoff_tool 提供了预构建的活跃智能体路由与交接机制;需要独立消息状态或特殊转换时,仍可回到 add_active_agent_router 和自定义节点手动组图。

常见问题

多轮会话一定需要持久化组件吗?
需要。文档明确指出,应通过 workflow.compile(checkpointer=checkpointer) 配置 checkpointer,否则群体会忘记最后活跃的智能体并失去历史消息。
智能体交接时会传递哪些内容?
默认 create_handoff_tool 会传递截至交接时的完整消息历史,并附加一条表示交接成功的工具消息。可通过自定义交接工具改变这些数据。
所有智能体必须共享同一消息历史吗?
默认使用共享的 messages 键,但并非强制。可以为子智能体定义独立消息键,并编写父图与子图之间的输入、输出转换包装器。
使用它会产生哪些服务费用?
仓库未说明库本身的收费。示例调用 OpenAI 模型,因此实际运行可能产生模型 API 费用;具体价格未在所给材料中说明。
它能直接部署成服务吗?
材料只说明 Python 库的安装、工作流编译和进程内调用,没有提供独立服务器、容器或托管部署说明。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents