Skip to content

open-multi-agent/open-multi-agent

Repository files navigation


Open Multi-Agent


Open Multi-Agent

Describe the goal, not the graph.
Multi-agent orchestration that runs in your own environment.

npm version CI MIT License TypeScript codecov GitHub stars GitHub forks

OMA Run Viewer replaying a real multi-agent run: task DAG and span waterfall views with per-task status, assignee, tokens, and tool calls


Website · Docs · npm · Discussions

English · 中文


open-multi-agent is an AI agent orchestration framework for TypeScript backends that drops into any Node.js app. It runs dynamic workflows: a coordinator turns one goal into a task DAG at runtime, a deterministic scheduler executes it across the team, and the whole run stays data you can inspect, approve, and replay. The dashboard above is the built-in offline Run Viewer replaying a real run.

Why OMA

OMA combines dynamic orchestration with the control, evidence, and recovery paths needed to move multi-agent systems from prototype to production.

  • Dynamic orchestration. Describe the goal and let the coordinator build the task DAG, assign work, and synthesize the result at runtime. There is no hand-wired graph to maintain.

  • Controlled execution. Keep dynamic plans within explicit boundaries.

    • Approve: Preview and approve plans or individual dispatches, then freeze approved plans for replay.
    • Constrain: Declare required roles and order when topology cannot drift, and verify outputs with multi-agent consensus.
  • Production essentials. Run reliably, diagnose failures, and prevent quality regressions.

    • Reliability: Resume interrupted runs from checkpoints or opt into append-only plan repair at task outcome barriers. Retries, timeouts, loop detection, and token and cost budgets keep execution bounded.
    • Observability: Follow each run through stable identity, execution receipts, and traces; query them in TraceStore, replay the task DAG and span waterfall in the offline Run Viewer, or export through the optional OpenTelemetry adapter.
    • Evaluation: Use the same run records for versioned EvalSets, reference scorers, offline reports, CI gates, regression baselines, and production sampling.
    • Safety and privacy: Keep tools default-deny, gate individual calls, and apply explicit privacy controls to telemetry and persisted state.
  • Open runtime. Bring OMA into your stack without giving up control of agents, models, infrastructure, or credentials.

    • Agents: Process and ACP backends let Claude Code, Gemini CLI, and Codex join LLM agents on the same task DAG, shared memory, and budgets.
    • Models: Mix cloud and local models, natively integrated Chinese providers, OpenAI-compatible endpoints, and AI SDK providers. A fallback parser covers local models that emit tool calls as text.
    • Deployment: Run on your own infrastructure and credentials, locally, offline, or air-gapped. A minimal runtime footprint fits locked-down environments.

Get started

Scaffold a PR review agent, security analysis agent, or teaching DAG:

npm create oma-app@latest my-oma

In an interactive terminal, that one command selects a starter and runtime, installs dependencies, and runs a deterministic local demo. The demo needs no API key and makes no model request: scripted model responses drive the real OMA scheduler, result aggregation, and offline dashboard. Use --no-install to generate files only, or --no-run to install without starting the demo.

Or add OMA to an existing backend:

npm install @open-multi-agent/core
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)

runTeam() plans from a goal, runAgent() runs a single agent, and runTasks() executes an explicit pipeline. The Core package guide walks through all three modes, provider and credential setup, and the production checklist. The example index lists 50+ runnable examples across basics, cookbook workflows, patterns, providers, and integrations.

Built with OMA

open-multi-agent launched 2026-04-01 under MIT. Known users and integrations to date:

  • temodar-agent. 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.
  • Mark Galyan runs OMA fully offline on local quantized models, using the Coordinator and context compaction to keep autonomous agent loops alive under tight VRAM limits. Contributor since the framework's first month, across compaction, sampling, and tool-call parsing.
  • 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 custom ContextStrategy for token-aware PR-diff compression. Public code on @open-multi-agent/core.
  • StuFlow by znc15. Terminal AI coding assistant on OMA's orchestration core: builds a team and drives it through runAgent / runTasks / runTeam with a custom RunTeamOptions coordinator, paired with DeepSeek. Public code on @open-multi-agent/core.
  • Reports to Charts Studio. Turns documents and research tables into slide-ready charts. Uses OMA to run a five-role extraction council with structured outputs and deterministic validation. Public code on @open-multi-agent/core.

Integrations

  • Engram: "Git for AI memory." Syncs knowledge across agents instantly and flags conflicts. (repo, ~80 stars)
  • @agentsonar/oma: Sidecar detecting cross-run delegation cycles, repetition, and rate bursts.
  • CodingScaffold: Agentic-coding scaffold that lists OMA as an optional orchestration backend, with a runTeam workflow template.
  • Bilig WorkPaper: Formula-workbook MCP server with a reciprocal OMA integration for editing inputs, recalculating formulas, verifying readback, and persisting WorkPaper JSON.
  • baize-oma: HTTP adapter exposing OMA runAgent() and runTeam() as Baize slot capabilities.

Using open-multi-agent in production or a side project? Open a discussion and we will list it here. Built an integration? The integration guide covers how to get listed. For a deep integration, see the Featured partner program.

When OMA fits

OMA is designed for TypeScript teams that want the task graph to emerge from the goal at runtime.

Choose a graph-first framework when the workflow must be authored node by node. Use an LLM toolkit alone when one agent call is enough. OMA sits at the orchestration layer when several agents, dependencies, approvals, or recovery steps must work together.

For a named head-to-head against LangGraph, Mastra, CrewAI, the Vercel AI SDK, and others, see the comparison page.

Packages

  • @open-multi-agent/core: Orchestration runtime, tools, memory, checkpoints, traces, CLI, and offline Run Viewer.
  • @open-multi-agent/otel: Optional enterprise integration for production teams with a centralized OpenTelemetry stack.
  • create-oma-app: Scaffolder behind npm create oma-app; starter templates with a no-key local demo.

Core users can store traces locally and inspect them with the offline Run Viewer. Install the OTel package only when OMA traces should appear in the same monitoring system as the rest of your application.

Commercial support

Need to embed agent capabilities in an existing product or business system? Email [email protected] for discovery and delivery support.

Documentation

Goal Start here
Install and run Core package guide · Examples · CLI
Configure models and tools Providers · Tools and sandbox · External agents
Operate reliably Observability · Evaluation · Checkpoint and resume · Adaptive recovery · Context management
Control orchestration Consensus · Execution routing · Model routing · Task scheduling · Plan replay · Shared memory

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for workspace boundaries, validation, and submission guidance.

Contributor credits by area are on the Core package page.

License

MIT

About

TypeScript AI agent orchestration framework with dynamic workflows. Describe the goal, not the graph: a coordinator plans the task DAG at runtime and runs it on any LLM (Claude, ChatGPT, Gemini, DeepSeek, or local models).

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages