MCPcopy Index your code
hub / github.com/open-multi-agent/open-multi-agent

github.com/open-multi-agent/open-multi-agent @v1.9.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.9.0 ↗
1,171 symbols 3,458 edges 207 files 295 documented · 25%
README
<img alt="Open Multi-Agent" src="https://raw.githubusercontent.com/open-multi-agent/open-multi-agent/main/.github/brand/logo-mark-light.svg" width="96">

Open Multi-Agent

给一个目标,自动得到任务 DAG。

原生 TypeScript 多智能体编排。

npm version CI MIT License TypeScript codecov GitHub stars GitHub forks

Post-run dashboard replaying a completed team run: task DAG with per-node assignee, status, token breakdown, and agent output log

English · 中文

open-multi-agent 是面向 TypeScript 后端的多智能体编排框架。给定一个目标,协调者 agent 会将其拆解为任务 DAG,并行执行独立任务,合成最终结果。可直接嵌入任意现有 Node.js 后端。

工程师只描述目标,不画任务图。

图优先的框架要求预先列出每个节点与每条边;OMA 是动态工作流(dynamic workflow):任务 DAG 在运行时生成,随目标自适应,而非针对单一流程预先固化。协调者将该计划以数据形式交给确定性调度器执行,因此该计划可审查、可回放。

@open-multi-agent/core 坚持轻量内核:编排引擎加上主流模型 provider(Anthropic、OpenAI 及任意 OpenAI 兼容端点)开箱即用;额外的 provider(Gemini、Bedrock)、MCP、Vercel AI SDK bridge 均为可选 peer 依赖,按需安装。

快速开始

一条命令即可初始化项目并启动多 agent DAG:

npm create oma-app@latest

回答一个提示,首次运行便会展示协调者将目标拆解为多 agent DAG,并打开本次运行的 dashboard(OpenAI 或任意 OpenAI 兼容 provider)。若要将库集成到现有项目:

npm install @open-multi-agent/core

完整的 quickstart、三种运行模式、provider 接入、生产级检查清单与完整 API 参考详见包页:

packages/core/README_zh.md

其他运行方式:克隆仓库,以 npx tsx packages/core/examples/basics/team-collaboration.ts 运行任意示例;或借助 ExpressNext.js 应用将 OMA 嵌入真实后端。如需免去本地搭建,Next.js 部署模板可一键部署至 Vercel;通过 Ollama 运行本地模型则无需 API key。

与其他框架对比

大多数 TypeScript 团队在选择多智能体编排层时,实际是在 OMA、LangGraph JS、Mastra 之间取舍。差异在于机制。

对比 LangGraph JS。 LangGraph 需先设计好声明式图(节点、边、条件路由),再编译为可调用对象;OMA 的 Coordinator 则在运行时将目标拆解为任务 DAG,并自动并行其中的无依赖项。两者均支持 checkpoint 与 resume,只是 LangGraph 的持久化生态更为完善。若需让编排随目标自适应、而非预先固定图结构,OMA 更为合适。

对比 Mastra。 两者均为原生 TypeScript,差异在于由谁驱动编排。Mastra 需手工连接工作流;OMA 则是目标驱动:将目标交给 Coordinator,即可在运行时自动构建任务 DAG。runTeam(team, goal) 一行调用即可。

对比 CrewAI。 CrewAI 是 Python 生态中成熟的多智能体方案。OMA 将目标驱动的任务拆解引入 TypeScript 后端,运行时精简(三个核心依赖,外加按需安装的可选 peer),直接嵌入 Node.js,无需在既有技术栈之外另行部署独立的 Python 服务。

对比 Vercel AI SDK。 AI SDK 是 LLM 调用层(provider 抽象、流式、tool call、结构化输出),而非多智能体编排器。单 agent 调用单独用它即可;一旦需要协同的团队,则选用 OMA。OMA 亦提供可选的 AI SDK bridge。

生态

open-multi-agent 2026-04-01 发布,MIT 协议。当前公开在用与集成的项目:

基于 OMA 构建

  • temodar-agent(约 60 stars)。WordPress 安全分析平台,作者 Ali Sünbül。在 Docker runtime 里直接用我们的内置工具(bashfile_*grep)。已确认生产环境使用。
  • Mark Galyan 在本地量化模型上完全离线运行 OMA,借助 coordinator 与上下文压缩,在显存受限的条件下维持自治 agent 循环持续运行。自框架发布首月起持续贡献,涵盖上下文压缩、采样与工具调用解析。
  • PR-Copilot。AI pull request 审查助手,作者 kidoom。运行一个 OMA 审查 team(coordinator + 限定范围的 reviewer agent),用 defineTool 定义仓库上下文工具,并加入自定义 ContextStrategy 做 token-aware 的 PR diff 压缩。公开代码,基于 @open-multi-agent/core
  • StuFlow。终端 AI 编码助手,作者 znc15。以 OMA 为编排内核:构建 team 并通过 runAgent / runTasks / runTeam 驱动,配自定义 RunTeamOptions coordinator,搭配 DeepSeek。公开代码,基于 @open-multi-agent/core

集成

  • Engram — "AI 记忆的 Git"。在 agent 之间即时同步知识并标记冲突。(repo)
  • @agentsonar/oma — Sidecar,检测跨运行的委派环、重复和速率突增。
  • CodingScaffold — agentic-coding 脚手架,把 OMA 列为可选编排后端,附带 runTeam 工作流模板。

Provider 社区优惠 — 限时,不代表付费背书。

  • MiniMax — 在 OMA 的 TypeScript 多智能体工作流中使用 MiniMax M3。OMA 用户可在 2026-06-30 前享 MiniMax Token Plan 专属 88 折优惠。见 MiniMax 接入指南

在生产或 side project 中使用了 open-multi-agent请开个 Discussion,我们会将其列在这里。深度集成的产品见 Featured partner 计划

仓库结构

这是一个 monorepo。发布的包为 @open-multi-agent/core,位于 packages/core/,即库本体、测试、示例与 npm 包页的单一事实源。

open-multi-agent/
├── packages/
│   └── core/          # @open-multi-agent/core(发布的库)
│       ├── src/       # 框架源码
│       ├── tests/     # vitest 测试套件
│       └── examples/  # 可直接运行的示例(npx tsx packages/core/examples/<path>.ts)
└── docs/              # 子系统文档

build / lint / test 都从仓库根目录跨 workspace 编排:

npm install            # 安装所有 workspace
npm run build          # 编译 packages/core
npm run lint           # 类型检查
npm test               # 运行测试套件

文档

  • Provider — 环境变量、模型示例、本地模型工具调用、超时、常见问题。
  • 工具配置 — 工具预设、自定义工具、文件系统沙箱、MCP。
  • 可观测性onProgress 事件、onTrace span、运行后 dashboard。
  • 共享记忆 — 默认存储与自定义 MemoryStore 后端。
  • Checkpoint & resume — 可选的按运行快照/恢复,跑在任意 MemoryStore 上;崩溃、重启后可续跑。
  • 上下文管理 — 滑动窗口、摘要、压缩、自定义压缩器。
  • CLI — 面向 shell 和 CI 的 JSON-first oma 命令行。
  • ConsensusrunConsensus proposer→judge 原语、按任务的 verify 钩子,以及预算不变量。
  • 模型路由 — 可选的 modelRouting 策略:按 phase / agent / role / priority / leaf 匹配,first match wins。
  • 计划预览与回放 — 用 planOnly 预览协调者拆解的任务 DAG,createPlanArtifact 将其固化,之后 runFromPlan 不再调用协调者即可回放同一张图。

参与贡献

Issue、feature request、PR 都欢迎。特别欢迎以下方面的贡献:

贡献者

按领域展开的完整致谢见包页

许可证

MIT

Extension points exported contracts — how you extend this code

MemoryStore (Interface)
(no doc) [11 implementers]
packages/core/src/types.ts
ScaffoldOptions (Interface)
(no doc)
packages/create-oma-app/src/scaffold.ts
LLMAdapter (Interface)
(no doc) [14 implementers]
packages/core/src/types.ts
StoredEntry (Interface)
* A single MemoryEntry as stored on disk. JSON has no `Date`, so * `createdAt` is persisted as an ISO string an
packages/core/src/memory/file-store.ts
StoreFile (Interface)
The whole file: a version tag plus every entry, in insertion order.
packages/core/src/memory/file-store.ts
Turn (Interface)
* Boundaries (`startIndex` inclusive, `endIndex` exclusive) of a single * atomic conversation turn within a flat messag
packages/core/src/agent/runner.ts

Core symbols most depended-on inside this repo

push
called by 284
packages/core/src/agent/loop-detector.ts
get
called by 260
packages/core/src/types.ts
chatOpts
called by 212
packages/core/tests/helpers/llm-fixtures.ts
textMsg
called by 182
packages/core/tests/helpers/llm-fixtures.ts
chat
called by 172
packages/core/src/types.ts
set
called by 144
packages/core/src/types.ts
run
called by 138
packages/core/src/agent/agent.ts
add
called by 131
packages/core/src/task/queue.ts

Shape

Function 591
Method 337
Interface 154
Class 88
Enum 1

Languages

TypeScript100%

Modules by API surface

packages/core/examples/cookbook/paper-replication-triage.ts95 symbols
packages/core/src/types.ts78 symbols
packages/core/src/orchestrator/orchestrator.ts72 symbols
packages/core/src/tool/framework.ts36 symbols
packages/core/src/task/queue.ts30 symbols
packages/core/src/memory/shared.ts28 symbols
packages/core/src/agent/runner.ts25 symbols
packages/core/src/agent/agent.ts25 symbols
packages/core/examples/integrations/with-tencentdb-memory/tdam-store.ts25 symbols
packages/core/tests/checkpoint.test.ts24 symbols
packages/core/src/team/team.ts21 symbols
packages/core/src/cli/oma.ts21 symbols

Dependencies from manifests, versioned

@ai-sdk/openai4.0.0 · 1×
@ai-sdk/openai-compatible3.0.0 · 1×
@ai-sdk/provider4.0.0 · 1×
@ai-sdk/react4.0.0 · 1×
@anthropic-ai/sdk0.52.0 · 1×
@aws-sdk/client-bedrock-runtime3.1040.0 · 1×
@google/genai1.48.0 · 1×
@modelcontextprotocol/sdk1.18.0 · 1×
@open-multi-agent/corefile:../../.. · 1×
@types/express4.17.0 · 1×
@types/node22.0.0 · 1×
@types/react19.0.0 · 1×

For agents

$ claude mcp add open-multi-agent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact