智能体要的不止模型和提示词。
一个智能体好办。多个智能体协同工作,就需要运行的地方、谁和谁通信的规则,以及某个出故障时的恢复办法。
一个智能体:模型、提示词和一些工具。
- 模型
- 决定下一步
- 提示词
- 说明任务是什么
- 工具
- 完成具体工作
十二个智能体,彼此之间靠手工连线。
- 谁和谁通信
- 写死在每个智能体里
- 各自在哪运行
- 在哪启动,就在哪运行
- 某个出故障时
- 不会被重启
把它想象成操作系统。
操作系统运行的程序,并不是它自己写的。GenSwarms 为智能体做的,正是这件事:启动、隔离、路由消息,出故障时重启。
- 启动
- 每个智能体一个独立进程
- 隔离
- 每个都在自己的沙箱里
- 路由
- 消息只走声明的路径
- 重启
- 出故障的智能体,交给它的监督者
每一个智能体,都是一个进程。
每个智能体都在自己的沙箱中运行,由自己的监督者监控。某个智能体崩溃后会重启,其余的照常工作。角色、模型和运行位置,都可以分别设置。
事件 (示意)
- 智能体 10
- 崩溃
- 智能体 10
- 已由其监督者重启
- 其余 11 个
- 运行中
智能体相互通信,只走声明的路径。
图由你来画。每条消息都按图检查,不在图上的一律丢弃。
接下来的示意图围绕同一个智能体集群:在 Telegram 上答复客户的客服团队。
事件 (示意)
不是所有事都要用模型。
对象是同一张图上的普通代码:Telegram 网关、调度器、模型开销预算。它们每次都做同样的事。
对象是图上的普通代码。answer 和 research 的模型调用都经过 budget。
- 智能体
- triage, research, answer:用模型
- 对象
- telegram, cron, browser, budget:普通代码
智能体缺什么,就给它装什么。
Telegram、WhatsApp 和电子邮件连接器,还有浏览器、调度器:都是来自 swarmidx 索引的签名软件包,加载前先经过验证。
软件包 · swarmidx (示意)
集群即文档。
定义即数据,每次变更都记录在案。错误的变更在运行前就会被拒绝;停止运行的集群,可以从自己的数据库恢复。
被拒绝的变更不会记入日志。已停止的集群从数据库恢复:先恢复初始定义,再按顺序应用已记录的变更。
- 恢复
- 初始定义,然后是变更 1、2、3
所有智能体,一个控制层。
每条消息、每次崩溃和重启,都能实时看到。可以用 API 或 CLI 操控,也可以让你的编程智能体代劳。
模型提供智能。 智能体完成工作。 组织交给 GenSwarms。
统一事件流 (示意)