Back to discovery
Orchestration

Open Multi Agent

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

Worth exploring for

Reliable multi-step workflows

In our collection

1 release

Source

Official GitHub release feed

Follow the changes

The release trail

Atom feed

Original notes, ready to explore. Open a release to see what changed.

Open Multi Agentv1.19.0

From the release notes

Added Added an opt-in authoritative run store through OrchestratorConfig.runStore and RunTasksOptions.runStore; it gives a logical run a durable lifecycle record, an execution lease, and a monotonically increasing fencing token so one worker at a time advances the run and a worker that was taken over cannot write after the takeover. Added the RunStore interface, the MemoryStoreRunStore adapter over any MemoryStore with compare-and-set, and the RunLedger and RunLeaseHandle surface for reading, cancelling, and resuming a run from outside its worker. Changed TeamConfig.maxConcurrency now bounds the agent pool for that team's runs instead of being accepted and ignored. It intersects with OrchestratorConfig.maxConcurrency, and the smaller value wins, so a team can narrow its own pool but never widen it past the orchestrator ceiling. A team that set a cap below the orchestrator's was previously running at the orchestrator value and now runs at its own lower value; raise or remove the team cap to keep the previous throughput. A cap that is not an integer of at least 1 is reported as an INVALID_TEAM_MAX_CONCURRENCY warning on onProgress and the orchestrator value applies. With a run store configured, execution-ownership and run-lifecycle writes fail closed instead of following the best-effort semantics of checkpoint and telemetry writes: a fenced-out checkpoint write never reaches the store, a lost lease stops the run at the dispatch gate, and a worker that lost its lease reports the fence failure rather than success. Runs with no run store configured are unchanged. The oma CLI default model for provider: 'deepseek' is now deepseek-flash (DeepSeek-V4.1-Flash), replacing deepseek-v4-flash. The retired name still resolves, and library users that pass an explicit model are unaffected. Provider docs, adapter JSDoc, the scaffolder env template, and the DeepSeek examples moved to the same name. The DeepSeek adapter JSDoc no longer states that thinking runs at high effort. The adapter forwards whatever effort the caller passes and sets none itself; runtime behavior is unchanged. Corrected published JSDoc that misstated runtime behavior, including onAgentStream coverage in runTasks(), done stream-event payloads per layer, retryable-error classification, and the RedactingStore example constructor call. The delegate_to_agent error returned when the pool has no free slot now points at both ceilings: "Increase maxConcurrency on the orchestrator or the team" rather than the orchestrator alone. Callers that match on that string should update it. The @open-multi-agent/core package description on npm was rewritten to lead with running in your own environment, approval gates, and a verifiable record of every run. LICENSE now names Shenzhen YuanASI Technology Co., Ltd. alongside the open-multi-agent contributors, package READMEs close with a maintainer line, and the author field in the published package.json files points at YuanASI. The MIT terms are unchanged.

A collected snapshot, not the complete archive.

Keep connecting the dots

LangGraph

Build stateful agents with explicit control over every step. Keep humans in the loop and workflows on track.

Orchestration
Agno

Build agents, assemble teams, and orchestrate workflows with a toolkit designed to take them into production.

Orchestration
Semantic Kernel

Compose AI agents and model-powered workflows with Microsoft’s SDK for Python, .NET, and Java.

Orchestration