GenSwarms

AI 员工的操作系统。

在整个组织中部署、协调和控制数千个 AI 智能体。

开源,MIT 许可。版本 0.2.0。

模型提示词工具 模型提示词工具

智能体要的不止模型和提示词。

一个智能体好办。多个智能体协同工作,就需要运行的地方、谁和谁通信的规则,以及其中一个出故障时的恢复办法。

把它想象成操作系统。

操作系统运行的程序,并不是它自己写的。GenSwarms 为智能体做的,正是这件事:启动、隔离、路由消息,出故障时重启。

组织GenSwarms各个智能体操作系统 组织GenSwarms各个智能体操作系统

每一个智能体,都是一个进程。

每个智能体都在自己的沙箱中运行,由自己的监督者监控。某个智能体崩溃后会重启,其余的照常工作。角色、模型和运行位置,都可以分别设置。

组织GenSwarms监督者每个智能体以进程运行它的边界:能访问什么崩溃后已重启 组织GenSwarms监督者每个智能体作为进程,运行在自己的边界内崩溃后已重启

智能体相互通信,只走声明的路径。

图由你来画。每条消息都按图检查,不在图上的一律丢弃。

接下来的示意图围绕同一个智能体集群:在 Telegram 上答复客户的客服团队。

已丢弃telegram事件(示意)message_routed telegram → triagemessage_routed triage → researchinvalid_route research → telegrammessage_routed research → answermessage_routed answer → telegramtriageanswerresearch 已丢弃telegram事件(示意)message_routed telegram → triagemessage_routed triage → researchinvalid_route research → telegrammessage_routed research → answermessage_routed answer → telegramtriageanswerresearch
示意图

并非一切都需要模型。

对象是同一张图上的普通代码:Telegram 网关、调度器、模型开销预算。它们每次都做同样的事。

模型调用telegramcronbudgetbrowser智能体,使用模型对象,普通代码triageanswerresearch telegramcronbudgetbrowser智能体,使用模型对象,普通代码triageanswerresearch
示意图

智能体缺什么,就给它装什么。

Telegram、WhatsApp 和电子邮件连接器,还有浏览器、调度器:都是来自 swarmidx 索引的签名软件包,加载前先经过验证。

模型调用telegramcronbudgetbrowserswarmidx 索引已验证genlayerlabs/genswarms-telegram@0.6.6 sha256:9f2c…genlayerlabs/cron@0.2.8 sha256:4be1…genlayerlabs/genswarms-llm-proxy@0.4.2 sha256:c07a…genlayerlabs/browser@0.2.4 sha256:51d3…triageanswerresearch telegramcronbudgetbrowserswarmidx 索引已验证genlayerlabs/genswarms-telegram@0.6.6 sha256:9f2c…genlayerlabs/cron@0.2.8 sha256:4be1…genlayerlabs/genswarms-llm-proxy@0.4.2 sha256:c07a…genlayerlabs/browser@0.2.4 sha256:51d3…triageanswerresearch
示意图

集群即文档。

它的定义就是数据,每次变更都有记录。错误的变更在运行前就会被拒绝;停止运行的集群可以从自己的数据库中恢复。

swarm.state初始定义agents triage, answerobjects telegram, cron, budget, browseredges telegram → triage, triage → answer, …swarm.overlay变更日志1 add_agent research2 scale_agent_group answer 3scale_agent_group answer 150已拒绝:超过 100 个智能体上限恢复:初始定义 + 2 项变更 swarm.state初始定义agents triage, answerobjects telegram, cron, budget, browseredges telegram → triage, triage → answer, …swarm.overlay变更日志1 add_agent research2 scale_agent_group answer 3scale_agent_group answer 150已拒绝:超过 100 个智能体上限恢复:初始定义 + 2 项变更
示意图

整个 AI 组织,一个控制层。

每条消息、每次崩溃和重启,都能实时看到。可以通过 API 或 CLI 操控,也可以交给你的编程智能体。

模型提供智能。 智能体执行工作。 组织交给 GenSwarms。

GenSwarms控制层集群模型 GenSwarms控制层集群模型
GenSwarms控制层集群模型swarm.state初始定义agents triage, answerobjects telegram, cron, budget, browseredges telegram → triage, triage → answer, …swarm.overlay变更日志1 add_agent research2 scale_agent_group answer 3scale_agent_group answer 150已拒绝:超过 100 个智能体上限恢复:初始定义 + 2 项变更组织GenSwarms各个智能体操作系统监督者每个智能体以进程运行它的边界:能访问什么崩溃后已重启模型提示词工具模型调用已丢弃telegramcronbudgetbrowser事件(示意)message_routed telegram → triagemessage_routed triage → researchinvalid_route research → telegrammessage_routed research → answermessage_routed answer → telegram智能体,使用模型对象,普通代码swarmidx 索引已验证genlayerlabs/genswarms-telegram@0.6.6 sha256:9f2c…genlayerlabs/cron@0.2.8 sha256:4be1…genlayerlabs/genswarms-llm-proxy@0.4.2 sha256:c07a…genlayerlabs/browser@0.2.4 sha256:51d3…triageanswerresearch
示意图示意图示意图示意图

工作原理。

进程
每个智能体都是受监督的 OTP 进程:角色、模型和后端分别设置
隔离
每个智能体单独使用 bwrap、Docker 或 Apple container
网络
隔离的智能体只能访问自己的模型端点
消息
只沿声明的路径传递,每一跳都检查
服务
对象:同一张图上的确定性代码
驱动
Local, Tmux, Docker, Apple container, SSH, Bwrap, Mock
软件包
gsp 与 swarmidx:签名、内容寻址,在你的机器上验证
状态
初始定义加变更日志;错误的变更会被拒绝;可从数据库恢复
控制
REST、WebSocket、CLI,以及供编程智能体使用的技能文件
事件
每条消息、每次崩溃和重启,实时呈现

它和 LangGraph、CrewAI、AutoGen 有什么不同?

GenSwarms 与 LangGraph、CrewAI 和 AutoGen 的对比
问题GenSwarmsLangGraphCrewAIAutoGen
是什么运行时:每个智能体都是一个受监督的进程面向有状态智能体的编排框架和运行时;由 LangSmith Deployment 托管面向智能体团队(crew)和流程(flow)的开源框架;由 AMP 部署多智能体框架,现处于维护模式;由 Microsoft Agent Framework 接替
智能体在哪里运行各自在受监督的进程中:本地、沙箱、容器或 SSH在你的 Python 或 JS 进程中,或在 LangSmith Deployment 服务器上在你的 Python 进程中,或在 CrewAI AMP 托管的基础设施上在你的进程中,或经由实验性的分布式运行时分散到多个工作进程
崩溃影响什么崩溃的那个智能体。由它的监督者重启整次运行;可借助检查点恢复,节点也可以重试整次运行;智能体会在出错时重试,流程可以持久化并恢复由你的代码处理;团队状态可以保存并重新加载

哪些已能保证,哪些还不能。

保证

  • 一次崩溃只重启一个智能体,而不是整个集群
  • 消息只沿声明的路径传递
  • 错误的配置和变更在运行前就会被拒绝
  • 软件包对照签名日志验证

尚未做到

  • 只有一个操作员令牌,没有按用户划分的角色
  • 至少一次投递,而非恰好一次
  • 开销预算以软件包形式提供,未内置于核心
  • 更新软件包会重启智能体;暂不支持热替换
  • 默认每个集群最多 100 个智能体(可配置)

从一个团队开始。扩至数千智能体。

目前已用于聊天助手、编程智能体、交易模拟,以及监控其他集群的集群。

或者交给你的智能体:

阅读 https://genswarms.com/skill.md 并搭建一个集群。