动态、显式与路由编排
runTeam() 从目标生成任务 DAG,runTasks() 运行你定义的任务图,runAgent() 覆盖单智能体场景。显式 mode、治理声明或自定义 ExecutionRouter 选择 Single 或 Team 执行并暴露 routingDecision。可选开启的 hybrid 路由,只在确定性结果本会是 Single 的位置补一次语义评估——做决定的仍是确定性策略。计划仍可作为数据预览、审阅和重放。
AutoGen 在 Python 运行时中把多智能体工作建模为对话;open-multi-agent 则在 TypeScript 运行时中使用任务 DAG。
你在 Python 里,偏好对话式或 actor 模型的思维方式,想要原生 OpenTelemetry,并且已把 AutoGen 的维护状态纳入考量。
你想要一个仍在积极开发、TypeScript 原生、目标驱动拆解、带 token + 估算成本上限和可选一方 OTel 适配器的运行时。
| 维度 | open-multi-agent | AutoGen |
|---|---|---|
| 语言 / 运行时 | TypeScript 原生,可嵌入任意 Node.js 20+ 后端 | Python(autogen-core / autogen-agentchat);.NET 尚在 preview;无 TypeScript |
| 编排范式 | 单智能体、显式任务 DAG,或由协调器在运行时拆解目标;显式 mode、治理策略或 ExecutionRouter 选择执行拓扑,运行过程中还可以修订尚未执行的任务 | 对话 / group-chat(v0.2),底层是事件驱动的 actor 运行时(v0.4) |
| 运行时依赖 | 3 个直接依赖(Anthropic SDK、OpenAI SDK、Zod),额外提供方与 MCP 为按需 peer 依赖 | 6 个直接依赖(autogen-core) |
| 模型混编 | 支持,同一团队里每个智能体都可用各自的云端或本地模型;模型路由还能把规划交给旗舰模型、把叶子任务交给廉价模型 | 支持,通过 autogen-ext 按智能体设 model_client |
| 运行预算控制 | 运行级 token 与估算美元上限——maxTokenBudget,或配合应用自有 estimateCost 价格表的 maxCostBudget——在模型调用与任务派发边界检查;一个已在途的模型回合可能越过上限 | 无硬上限,软性的、依赖自报用量的 TokenUsageTermination,在轮次之间生效 |
| 可观测性 | TraceRecord v2 + TraceStore、稳定运行标识、可选的一方 OTel 适配器,以及离线的运行后 Run Viewer——无需任何托管服务 | 原生 OpenTelemetry,运行时自动发出 span |
OMA 不只是目标拆解与少量依赖。以下均为项目 README 已记录的当前框架能力。
runTeam() 从目标生成任务 DAG,runTasks() 运行你定义的任务图,runAgent() 覆盖单智能体场景。显式 mode、治理声明或自定义 ExecutionRouter 选择 Single 或 Team 执行并暴露 routingDecision。可选开启的 hybrid 路由,只在确定性结果本会是 Single 的位置补一次语义评估——做决定的仍是确定性策略。计划仍可作为数据预览、审阅和重放。
声明必需或偏好的角色、有序审阅路径与预算感知降级。分别用 onPlanReady 审批计划、onTaskDispatch 审批一个就绪任务、onToolCall 审批一次高影响工具调用、onPlanPatch 审批运行中的每次计划修订,再检查 governanceConclusion。
依赖完成后,就绪的下游任务立即启动。硬性任务要求在每种指派策略下都会强制执行,无法满足的任务会被拒绝,而不是派发给不合格的智能体;taskResults 保留未经合并的任务输出,结构化依赖载荷携带受限的来源信息。重试与检查点从已完成任务边界恢复;可选开启的 repairable 恢复,还能在任务结果屏障处、于任何原有下游任务启动之前追加替代工作。
用轮次、token、估算成本、超时、上下文与循环上限约束每次运行。maxTokenBudget 与 maxCostBudget 在边界检查后停止后续调用;一个已在途的模型回合可能越过上限。模型路由支持有序 fallback。内置工具默认拒绝授权,链路数据以尽力而为方式脱敏检测到的敏感信息。
运行在你自己的 Node.js 后端——本地、离线或气隙环境,用你自己的凭证,无需任何托管服务。同一团队可混用云端与本地模型,接入 MCP 工具,并通过 ACP 或进程后端引入外部智能体。
稳定运行标识、路由决策、保护隐私的 execution receipt、TraceStore 与离线 Run Viewer 均无需托管服务。用版本化的 EvalSet 与 GateVerdict 评估质量,包括路由稳定性闸门,再通过可选 OTel 适配器把运行接入生产遥测。
AutoGen 把多智能体工作建模为一场对话:智能体在 group chat 里交换消息,协作从这场对话中涌现(它的 v0.4 内核在底层加了一个事件驱动的 actor 模型运行时)。open-multi-agent 则目标驱动:你把一个结果交给协调器,它拆解成一张带显式依赖的任务 DAG,并行运行相互独立的部分。两者现在都有一方 OpenTelemetry 路径。AutoGen 自动发出 OTel span;OMA 不把 OTel 拉进只有三个依赖的 core,而是通过可选的 @open-multi-agent/otel 适配器,把 TraceRecord v2 映射到由应用持有的 provider,另有 TraceStore 与离线 Run Viewer。
当 Python 系统采用对话式或 actor 模型协作并需要原生 OpenTelemetry 时,AutoGen 合适。微软目前把新的多智能体工作导向 Agent Framework,因此 AutoGen 主要适用于已经采用它的既有系统。
AutoGen 的 GitHub↗open-multi-agent 适合你想要一个 TypeScript 原生、仍在积极开发的运行时,想要目标优先的模型、而不是一场需要你去引导的对话,并通过 maxTokenBudget 或 maxCostBudget + estimateCost 给整次运行设上限的场景。可选 OTel 适配器让 core 保持精简,离线 Run Viewer 则给每次已完成运行一条本地检查路径。若从零起步于 Node.js,OMA 既省去 Python 依赖,也避开一个正在过渡期的框架。
open-multi-agent 采用 MIT 许可、可自行免费运行。当你需要在期限内交付、集成,或获得支持时,元定义科技(YuanASI)提供商业交付与支持。