Open Multi-Agent
把目标动态规划为可控、可恢复的多智能体任务 DAG。
按维度查看评分与理由
证据显示工具默认拒绝、逐次调用门控、审批和暂停机制,以及隐私控制,但敏感数据处理细节不足,依赖安全未充分展示,发布者身份未验证。
代码和测试显示重试、超时、循环检测、预算限制,以及清晰的失败消息,但依赖可用性未充分验证。
文档明确目标受众和场景,能力边界清晰,触发精确,环境适配良好。
信息架构清晰,安装说明详细,示例丰富,但已知限制和版本变更记录不足,维护责任不明确。
输出可用性高,边际价值明显,但成本效益分析不足。
声明有部分证据支持,但缺乏独立来源验证,事实与推断区分不明确。
- 发布者身份未验证,需谨慎评估供应链风险。
- 敏感数据处理细节不足,需进一步审查。
- 依赖安全未充分展示,建议检查依赖清单。
这个 Agent 能做什么,适合哪些场景?
Open Multi-Agent(OMA)是面向 TypeScript 后端和 Node.js 应用的多智能体编排框架。它由协调器在运行时把一个目标规划成任务 DAG,再由确定性调度器在团队成员间执行任务并汇总结果。核心包提供编排运行时、工具、共享记忆、检查点、追踪、CLI 及离线 Run Viewer;可选的 @open-multi-agent/otel 用于接入集中式 OpenTelemetry 监控。运行记录可用于审查、批准、重放、评估集和 CI 回归门禁,且支持从检查点恢复或在结果屏障处修复计划。它适合希望任务拓扑随目标生成、同时仍需预算、审批、可观测性和自托管控制权的 TypeScript 团队。
开发者通过 new OpenMultiAgent() 创建运行时,再用 createTeam() 定义团队、角色提示词和 sharedMemory。runTeam(team, goal) 让协调器从目标生成并分派任务 DAG;runAgent() 执行单个智能体,runTasks() 执行显式流水线。调度器执行任务并处理重试、超时、循环检测、令牌与成本预算;运行产生执行回执和追踪,可在 TraceStore 查询、在离线 Run Viewer 重放任务 DAG 与 span 瀑布图,或经 @open-multi-agent/otel 导出。框架还可让 Claude Code、Gemini CLI 和 Codex 等进程或 ACP 后端与 LLM 智能体共享任务 DAG、记忆和预算。
- TypeScript 后端团队需要将一次“比较方案并给出建议”的研究任务动态拆分给研究员和分析员。
- 需要人工先查看并批准计划或单次分派,再冻结已批准计划以便后续重放的业务系统。
- 运行可能中断的长任务,并希望从检查点恢复或在任务结果屏障处追加式修复计划的工程团队。
- 需要在离线 Run Viewer 中审查任务 DAG、状态、令牌、工具调用和 span 瀑布图的内部平台团队。
- 要把 Claude Code、Gemini CLI 或 Codex 与模型驱动智能体放在同一任务 DAG 中协作的开发者。
这个 Agent 有哪些优点和局限?
- 协调器在运行时从目标生成任务 DAG,无需手工维护固定图。
- 计划审批、单次分派审批和冻结后重放为动态编排提供显式控制边界。
- 检查点恢复、追加式计划修复、重试、超时、循环检测及令牌/成本预算覆盖了长任务运行控制。
- 离线 Run Viewer、TraceStore 和可选 OpenTelemetry 导出提供本地审查与集中式观测两条路径。
- 运行时要求 Node.js 20 或更高版本,现有非 Node.js 服务需额外集成层。
- 示例使用 OpenAI provider;云端模型运行还需按 provider 配置凭据,但所给材料未列出具体配置方式。
- 动态任务拓扑不适合必须逐节点预先编写和固定工作流的场景。
- Claude Code、Gemini CLI、Codex 等外部智能体接入依赖进程或 ACP 后端,部署复杂度可能高于纯 API 调用。
如何安装或部署这个 Agent?
需要 Node.js 20 或更高版本;生产环境建议使用仍受维护的 Node.js LTS。向现有后端安装:
npm install @open-multi-agent/core或创建项目并运行本地确定性演示:
npm create oma-app@latest my-oma脚手架演示无需 API 密钥,也不会发起模型请求。接入云端模型时,仓库说明需要按所选 provider 配置凭据,但给出的材料未提供具体凭据变量或配置命令。
如何使用这个 Agent?
安装后可执行:
import { OpenMultiAgent } from '@open-multi-agent/core'const oma = new OpenMultiAgent({ defaultProvider: 'openai', defaultModel: 'gpt-5.4' })
const team = oma.createTeam('research-team', {name: 'research-team',
agents: [{ name: 'researcher', systemPrompt: 'Find the relevant facts.' },
{ name: 'analyst', systemPrompt: 'Compare evidence and identify tradeoffs.' },
],
sharedMemory: true,
})
const result = await oma.runTeam(team, 'Compare three approaches and recommend one.')
console.log(result.agentResults.get('coordinator')?.output)此调用会按目标规划并运行团队;若只需单个智能体或预定义流程,则使用 runAgent() 或 runTasks()。
这个 Agent 与同类方案有什么区别?
OMA 将自己定位在动态编排层:当工作流必须逐节点预先编写时,更适合图优先框架;当一个智能体调用已足够时,单独使用 LLM 工具包更合适。仓库点名比较 LangGraph、Mastra、CrewAI 和 Vercel AI SDK,但所给材料未提供可核验的逐项功能对照。