* docs(readme): retire 3-deps headline; sync zh Consensus - Drop "Three runtime dependencies" from tagline / badge / intro across 4 READMEs (mechanism + category kept, deps-count headline retired) - Remove runtime_deps-3 badge; refresh npm description - Add missing Consensus section + doc links to the zh READMEs * docs(readme): sharpen vs. Mastra comparison Recast on goal-driven vs. hand-wired orchestration: drop the "lightweight" framing (OMA edge is goal-driven auto-decomposition, not doing less) and fix the mislabel (Mastra is a full-stack platform, not a "Supervisor pattern"). Sync all 4 READMEs (en/zh root + core).
11 KiB
Open Multi-Agent
From a goal to a task DAG, automatically.
TypeScript-native multi-agent orchestration.
English · 中文
open-multi-agent is a multi-agent orchestration framework for TypeScript backends. Give it a goal; a coordinator agent decomposes it into a task DAG, parallelizes independents, and synthesizes the result. Drops into any Node.js backend.
Your engineers describe the goal, not the graph.
Graph-first frameworks make you enumerate every node and edge up front. open-multi-agent is goal-first: you describe the outcome and the coordinator builds the task DAG at runtime, so the orchestration adapts to the goal instead of being hand-wired for one.
Get started
The fastest way to see it run — one command scaffolds a project and starts a multi-agent DAG:
npm create oma-app@latest
Answer one prompt; the first run shows the coordinator turn one goal into a multi-agent DAG and opens a dashboard of the run (OpenAI or any OpenAI-compatible provider). To add the library to your own project:
npm install @open-multi-agent/core
The full quickstart, the three ways to run, provider setup, the production checklist, and the complete API reference live on the package page:
Prefer to run an example from the repo? Clone and run one:
git clone https://github.com/open-multi-agent/open-multi-agent && cd open-multi-agent
npm install
export OPENAI_API_KEY=sk-...
npx tsx packages/core/examples/basics/team-collaboration.ts
Three agents collaborate on a REST API while onProgress streams the coordinator's task DAG — independent tasks run in parallel, dependents unblock as their inputs land, and the coordinator synthesizes the final result. Local models via Ollama need no API key; see the providers guide.
Want a full application instead of a script? Two clone-and-run apps embed OMA in a real backend: an Express REST API and a Next.js app.
How is this different from X?
A quick router. Mechanism breakdown follows.
| If you need | Pick |
|---|---|
| Fixed production topology with mature checkpointing | LangGraph JS |
| Full-stack platform, workflows wired by hand | Mastra |
| Python stack with mature multi-agent ecosystem | CrewAI |
| AI app toolkit with broad model-provider support | Vercel AI SDK |
| TypeScript, goal to result with auto task decomposition | open-multi-agent |
vs. LangGraph JS. LangGraph compiles a declarative graph (nodes, edges, conditional routing) into an invokable. open-multi-agent runs a Coordinator that decomposes the goal into a task DAG at runtime, then auto-parallelizes independents. Same end (orchestrated execution), opposite directions: LangGraph is graph-first, OMA is goal-first.
vs. Mastra. Both are TypeScript-native; the difference is who drives the orchestration. With Mastra you wire the workflow by hand. OMA is goal-driven: give its Coordinator a goal and it builds the task DAG at runtime, adapting the plan to the goal instead of running a graph you wired step by step. runTeam(team, goal) in one call.
vs. CrewAI. CrewAI is the mature multi-agent option in Python. OMA targets TypeScript backends with three runtime dependencies and direct Node.js embedding. Roughly comparable orchestration surface; the choice is the language stack.
vs. Vercel AI SDK. AI SDK provides the LLM-call layer — provider abstraction, streaming, tool calls, and structured outputs. It does not orchestrate goal-driven multi-agent teams. The two are complementary: AI SDK for app surfaces and single-agent calls, OMA when you need a team.
Ecosystem
open-multi-agent launched 2026-04-01 under MIT. Known users and integrations to date:
Built with OMA
- temodar-agent (~60 stars). WordPress security analysis platform by Ali Sünbül. Uses our built-in tools (
bash,file_*,grep) directly inside a Docker runtime. Confirmed production use. - PR-Copilot. AI pull-request review assistant by kidoom. Runs an OMA review team (coordinator + scoped reviewer agents), defines repo-context tools with
defineTool, and adds a customContextStrategyfor token-aware PR-diff compression. Public code on@open-multi-agent/core.
Integrations
- Engram — "Git for AI memory." Syncs knowledge across agents instantly and flags conflicts. (repo)
- @agentsonar/oma — Sidecar detecting cross-run delegation cycles, repetition, and rate bursts.
Provider community offers — limited-time, not paid endorsements.
- MiniMax — Use MiniMax M3 in OMA's TypeScript multi-agent workflows. OMA users get 12% off the MiniMax Token Plan until 2026-06-30. See the MiniMax setup guide.
Using open-multi-agent in production or a side project? Open a discussion and we will list it here. For a deep integration, see the Featured partner program.
Repository
This is a monorepo. The published package is @open-multi-agent/core, and it lives in packages/core/ — the source of truth for the library, its tests, examples, and the npm package page.
open-multi-agent/
├── packages/
│ └── core/ # @open-multi-agent/core — the published library
│ ├── src/ # framework source
│ ├── tests/ # vitest suite
│ └── examples/ # runnable examples (npx tsx packages/core/examples/<path>.ts)
└── docs/ # subsystem documentation
Build, lint, and test orchestrate across the workspace from the repo root:
npm install # install all workspaces
npm run build # compile packages/core
npm run lint # type-check
npm test # run the test suite
Documentation
- Providers — env vars, model examples, local tool-calling, timeouts, troubleshooting.
- Tool configuration — tool presets, custom tools, the filesystem sandbox, and MCP.
- Observability —
onProgressevents,onTracespans, and the post-run dashboard. - Shared memory — the default store and custom
MemoryStorebackends. - Checkpoint & resume — opt-in per-run snapshot/resume over any
MemoryStore; survive crashes and restarts. - Context management — sliding window, summarization, compaction, and custom compressors.
- CLI — the JSON-first
omabinary for shell and CI. - Consensus — the
runConsensusproposer→judge primitive, the per-taskverifyhook, and the budget invariant. - Model routing — the opt-in
modelRoutingpolicy: match by phase / agent / role / priority / leaf, first match wins.
Contributing
Issues, feature requests, and PRs are welcome. Some areas where contributions would be especially valuable:
- Production examples. Real-world end-to-end workflows. See
packages/core/examples/production/README.mdfor the acceptance criteria and submission format. - Documentation. Guides, tutorials, and API docs.
- Translations. Help translate the docs into other languages. Open a PR.
Contributors
Full credits by area are on the package page.
License
MIT
