动态编排与显式编排
runTeam() 从目标生成任务 DAG,runTasks() 运行你定义的任务图,runAgent() 则覆盖单智能体场景。
两者都用 TypeScript 搭建多智能体系统。AgentKit 在 Inngest 之上,用确定性的状态路由来调度一张智能体网络;open-multi-agent 则在运行时把目标拆解成任务 DAG。
你想要能自己掌控、确定且可审视的路由,以及可持久、可重放的执行,并且乐意跑在 Inngest 上。
你想要计划在运行时自动生成、而非手写路由,不想引入 Inngest 依赖,还要一道硬性 token 预算。
| 维度 | open-multi-agent | Inngest AgentKit |
|---|---|---|
| 语言 / 运行时 | TypeScript 原生,可嵌入任意 Node.js 18+ 后端 | TypeScript 原生;pre-1.0(0.13) |
| 编排范式 | 三种模式:单智能体、显式任务 DAG,或由协调器在运行时拆解目标 | 带确定性状态路由的多智能体网络,由一个路由器(代码或模型)挑选下一个智能体 |
| 运行时依赖 | 3 个直接依赖(Anthropic SDK、OpenAI SDK、Zod),额外提供方与 MCP 为按需 peer 依赖 | 6 个直接依赖;跑在 Inngest 上以获得可持久、可重放的执行 |
| 模型混编 | 支持,同一个团队里的每个智能体都可使用各自的云端或本地模型 | 支持,通过 @inngest/ai 适配器按智能体设模型 |
| 运行预算控制 | 通过 maxTokenBudget 设置 token 上限,或通过 maxCostBudget 与应用自有的 estimateCost 价格表设置估算美元上限 | 无硬性 token 上限,maxIter 限制路由迭代次数 |
| 可观测性 | TraceRecord v2 + TraceStore、可选的一方 OTel 适配器,以及离线的运行后 Run Viewer | 通过其运行所依托的 Inngest 平台获取运行链路 |
OMA 不只是目标拆解与少量依赖。以下均为项目 README 已记录的当前框架能力。
runTeam() 从目标生成任务 DAG,runTasks() 运行你定义的任务图,runAgent() 则覆盖单智能体场景。
计划可检查、可审批,也可冻结为数据后重放。结果可用 Zod 校验,还支持按智能体流式输出、取消运行,以及提议者与裁判组成的共识校验。
调度器并行运行互不依赖的分支。任务重试与检查点让中断的运行恢复时不重复已完成任务。
通过轮次、token、估算成本、超时、上下文与循环控制限制工作量。工具默认拒绝授权,链路数据默认脱敏敏感信息。
运行在你自己的 Node.js 后端、本地、离线或气隙环境中。同一团队可混用云端与本地模型,并可接入 MCP 工具及 ACP 或进程后端的外部智能体。
稳定运行标识、TraceStore,以及离线 DAG 与 Waterfall Viewer 均不依赖托管服务。可选 OTel 适配器与 EvalSet 可把运行接入生产遥测和 CI 门禁。
AgentKit 把工作建模为一张共享状态的智能体网络,由一个路由器,你写的代码,或你委派的一个模型,决定下一个跑哪个智能体,并以 maxIter 封顶。它跑在 Inngest 上,所以执行可持久、可重放。open-multi-agent 不要求你编写路由:协调器在运行时把目标拆解成任务 DAG,并把相互独立的节点并行化。AgentKit 给你显式、确定的控制流(以及 Inngest 的持久性);OMA 给你一份按目标生成的计划,且无需运行一个编排服务。
当你想要自己编写的、确定且可审视的路由,以及底下 Inngest 那种可持久、可重放的执行时,选 AgentKit,当一次运行必须扛过重启、且每个路由决策都要显式可复现时,这很有价值。它还在 pre-1.0,要预期一些变动,并且默认你的技术栈里有 Inngest。
Inngest AgentKit 的 GitHub↗open-multi-agent 适合你更愿意描述目标、而非编写路由,并且想保持依赖轻量:协调器在运行时规划任务 DAG,无需另立一个编排服务,maxTokenBudget 给出一道硬性花费上限。检查点/恢复在任意 MemoryStore 上以任务粒度覆盖崩溃恢复,无需一个单独的持久化执行后端。
open-multi-agent 采用 MIT 许可、可自行免费运行。当你需要在期限内交付、集成,或获得支持时,元定义科技(YuanASI)提供商业交付与支持。