open-multi-agent/open-multi-agent

Self-hosted TypeScript agent runtime with durable approvals and verifiable run records. Own it, approve it, audit it.

Open Multi‑Agent (OMA)

What it is – A self‑hosted TypeScript runtime that lets you build, run, and audit collections of LLM‑powered agents. It focuses on ownership, auditability, and human‑in‑the‑loop control: no telemetry, no hosted control plane, and you provide your own API keys and models (OpenAI, Anthropic, local Ollama, etc.).


Core ideas

Feature What it does
Team orchestration runTeam() takes a high‑level goal, the built‑in coordinator splits it into a task graph, assigns agents, and executes the plan.
Single‑agent & pipeline modes runAgent() runs one agent; runTasks() runs an explicit sequence you define.
Durable approvals Execution can pause before a plan, task, or tool call, waiting for a human‑provided approval that survives restarts.
Verifiable run journal All model inputs, tool calls, and outputs are recorded; verifyRun() can check consistency offline.
Governance floor Declare required roles and order; after a run you can inspect whether the governance rules were satisfied.
Egress policy Choose offline or an allow‑list; the runtime enforces the policy before any external model call.
Self‑hosting Pure library – you run it inside your own service, container, or serverless function.
Observability Optional OpenTelemetry adapter; built‑in offline Run Viewer shows task DAGs, token usage, and tool calls.

Getting started (from the README)

  1. Prerequisite – Node.js 20+ (LTS recommended).
  2. Create a starter app
    npm create oma-app@latest my-oma
    
    The command walks you through selecting a template, installs dependencies, and launches a deterministic demo that uses scripted model responses (no API key needed).
  3. Add OMA to an existing project
    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)
    
    Set OPENAI_API_KEY (or another provider key) to hit a real model.

Notable integrations & users

  • PR‑Copilot – AI pull‑request reviewer built on OMA.
  • StuFlow – Terminal coding assistant that drives OMA workflows.
  • Engram – “Git for AI memory” that syncs knowledge across agents.
  • OrchestrAI – Visual workspace that stores checkpoints in PostgreSQL.
  • Various Chinese model adapters – DeepSeek, Doubao, Hunyuan, etc.

Packages

  • @open-multi-agent/core – The main runtime, tools, memory, approvals, journal, CLI, and offline Run Viewer.
  • @open-multi-agent/otel – Optional OpenTelemetry exporter.
  • create-oma-app – Scaffolding CLI used by npm create oma-app.

Documentation & resources

  • Website & docs – https://open-multi-agent.com
  • Examples – packages/core/examples/
  • Full docs index – docs/README.md
  • Production checklist, run‑viewer, governance, egress‑policy, etc., are all covered in the repo’s docs/ folder.

License & sponsorship

  • License – MIT.
  • Maintainer – YuanASI (Shenzhen YuanASI Technology Co., Ltd.).
  • Sponsors – Atlas Cloud provides credits; sponsorship does not influence technical decisions.

Bottom line – OMA is a fully open‑source, self‑hosted framework for orchestrating LLM agents with strong audit, approval, and governance features, suitable for enterprises that need control over keys, models, and data.

Related

  • Project
  • Project
  • Project
  • Project
  • Project