genswarms

AI 智能体的操作系统。

为整个组织部署、协调和管控数千个 AI 智能体。

许可证
开源,MIT
版本
0.2.0
运行时
Elixir / OTP

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

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

一个智能体:模型、提示词和一些工具。

模型
决定下一步
提示词
说明任务是什么
工具
完成具体工作

十二个智能体,彼此之间靠手工连线。

谁和谁通信
写死在每个智能体里
各自在哪运行
在哪启动,就在哪运行
某个出故障时
不会被重启

把它想象成操作系统。

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

启动
每个智能体一个独立进程
隔离
每个都在自己的沙箱里
路由
消息只走声明的路径
重启
出故障的智能体,交给它的监督者

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

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

事件 (示意)

智能体 10
崩溃
智能体 10
已由其监督者重启
其余 11 个
运行中

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

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

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

事件 (示意)

message_routedtelegram → triage
message_routedtriage → research
invalid_routeresearch → telegram已丢弃
message_routedresearch → answer

不是所有事都要用模型。

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

对象是图上的普通代码。answer 和 research 的模型调用都经过 budget。

智能体
triage, research, answer:用模型
对象
telegram, cron, browser, budget:普通代码

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

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

软件包 · swarmidx (示意)

genlayerlabs/genswarms-telegram@0.6.6sha256:9f2c…已验证
genlayerlabs/cron@0.2.8sha256:4be1…已验证
genlayerlabs/browser@0.2.4sha256:51d3…已验证
genlayerlabs/genswarms-llm-proxy@0.4.2sha256:c07a…已验证

集群即文档。

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

被拒绝的变更不会记入日志。已停止的集群从数据库恢复:先恢复初始定义,再按顺序应用已记录的变更。

恢复
初始定义,然后是变更 1、2、3

所有智能体,一个控制层。

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

模型提供智能。 智能体完成工作。 组织交给 GenSwarms。

统一事件流 (示意)

supportmessage_routedtriage → answer
observermessage_routedwatch → report
trading simrestart智能体 3
codingoutput智能体 2

工作原理。

操作系统的各个部分,逐一对应 GenSwarms 的做法。

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

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

框架在你的代码里组织智能体。GenSwarms 则把每个智能体作为独立、受监督的进程运行。

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

信息来自各项目自己的文档,截至 2026 年 9 月。

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

0.2.0 版现在提供什么,还有哪些已知限制。

保证

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

尚未做到

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

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

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

或者,让你的智能体来搭建:

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