动态编排与显式编排
runTeam() 从目标生成任务 DAG,runTasks() 运行你定义的任务图,runAgent() 则覆盖单智能体场景。
LlamaIndex 起步于数据 / RAG 框架,后来在其上长出智能体 workflow;open-multi-agent 则从编排出发。如果你的问题是「在自己的数据上做检索」,两者从相反的一端切入。
你的核心问题是在自己的数据上做 RAG,索引、检索、查询引擎,并且想要在其之上构建的智能体,用 Python。
你的核心问题是在 TypeScript 中协调多个智能体、依赖、审批与恢复步骤,并接入你已经采用的检索层。
| 维度 | open-multi-agent | LlamaIndex |
|---|---|---|
| 语言 / 运行时 | TypeScript 原生,可嵌入任意 Node.js 18+ 后端 | Python;也有 TypeScript 移植(LlamaIndex.TS) |
| 编排范式 | 三种模式:单智能体、显式任务 DAG,或由协调器在运行时拆解目标 | 数据 / RAG 优先(索引、检索、查询引擎),加上智能体 workflow(AgentWorkflow、FunctionAgent) |
| 运行时依赖 | 3 个直接依赖(Anthropic SDK、OpenAI SDK、Zod),额外提供方与 MCP 为按需 peer 依赖 | llama-index-core 约 29 个直接依赖(面向 RAG:numpy、nltk、tiktoken、networkx…) |
| 模型混编 | 支持,同一个团队里的每个智能体都可使用各自的云端或本地模型 | 支持,按智能体设模型 |
| 运行预算控制 | 通过 maxTokenBudget 设置 token 上限,或通过 maxCostBudget 与应用自有的 estimateCost 价格表设置估算美元上限 | 无硬性 token 上限 |
| 可观测性 | TraceRecord v2 + TraceStore、可选的一方 OTel 适配器,以及离线的运行后 Run Viewer | 一个 instrumentation 模块,加上集成(Arize、Langfuse 等) |
OMA 不只是目标拆解与少量依赖。以下均为项目 README 已记录的当前框架能力。
runTeam() 从目标生成任务 DAG,runTasks() 运行你定义的任务图,runAgent() 则覆盖单智能体场景。
计划可检查、可审批,也可冻结为数据后重放。结果可用 Zod 校验,还支持按智能体流式输出、取消运行,以及提议者与裁判组成的共识校验。
调度器并行运行互不依赖的分支。任务重试与检查点让中断的运行恢复时不重复已完成任务。
通过轮次、token、估算成本、超时、上下文与循环控制限制工作量。工具默认拒绝授权,链路数据默认脱敏敏感信息。
运行在你自己的 Node.js 后端、本地、离线或气隙环境中。同一团队可混用云端与本地模型,并可接入 MCP 工具及 ACP 或进程后端的外部智能体。
稳定运行标识、TraceStore,以及离线 DAG 与 Waterfall Viewer 均不依赖托管服务。可选 OTel 适配器与 EvalSet 可把运行接入生产遥测和 CI 门禁。
LlamaIndex 是检索优先的:它的重心在于把你的数据建索引并查询,智能体 workflow 叠在上面。open-multi-agent 是编排优先的:它把目标拆解成任务 DAG 并协调智能体,检索交给你。两者只在边缘重叠,RAG 重的应用偏向 LlamaIndex;多智能体协调问题偏向 OMA。LlamaIndex 为那套数据工具带着约 29 个内核依赖;OMA 是三个。
当核心问题是在自己的数据上做检索,并希望加载器、索引、检索器、查询引擎与智能体 workflow 位于同一技术栈中时,LlamaIndex 合适。
LlamaIndex 的 GitHub↗open-multi-agent 适合编排是问题核心的场景:一个把目标拆成并行任务 DAG 的协调器、TypeScript 原生、三个依赖、一道硬性 maxTokenBudget。它不自带检索,RAG 或工具你随意带,这让内核保持小、编排保持通用。
open-multi-agent 采用 MIT 许可、可自行免费运行。当你需要在期限内交付、集成,或获得支持时,元定义科技(YuanASI)提供商业交付与支持。