• Stable

    dean released this 2026-07-11 01:46:24 -05:00 | 246 commits to main since this release

    📅 Originally published on GitHub: Sat, 11 Jul 2026 06:59:10 GMT
    🏷️ Git tag created: Sat, 11 Jul 2026 06:46:24 GMT

    Features

    • External coding agents over ACP (#360 by @JackChen-me). OMA can now orchestrate an external coding agent over the Agent Client Protocol as a first-class team member, alongside LLM agents in the same task DAG. Declare an agent with backend: { kind: 'acp', ... } and it runs a local coding CLI (for example Claude Code via the official @agentclientprotocol/claude-agent-acp adapter) instead of an LLM, sharing the same shared memory, cascade-on-failure, and token budget as any other agent. See docs/external-agents.md.

    • Orchestrator cost budget (#358 by @LambIessz). New maxCostBudget and estimateCost on orchestrator config let you set a user-defined spend cap. The estimator receives the effective model, provider, phase, and task id so you can price per model, and the cap is enforced across runAgent, runTasks, runTeam, consensus, and synthesis, mirroring the existing token-budget boundaries.

    • Per-agent scoped tool credentials (#362 by @JackChen-me). New AgentConfig.credentials is a per-agent secret bag threaded into ToolUseContext.credentials. Tool code reads context.credentials?.SEARCH_API_KEY instead of closing a single shared secret over every tool, so each agent holds only the credentials it was assigned. A compromised or misbehaving subagent no longer inherits the coordinator's full access.

    • Secret redaction on the persistence path (#359 by @JackChen-me). Redaction previously stopped at the observability layer, so a secret an agent emitted into its answer was scrubbed in traces but written in the clear to shared memory and any on-disk checkpoint. The new RedactingStore, a MemoryStore decorator, redacts values at the single choke point every shared-memory and checkpoint write passes through, and is structure-aware for JSON so checkpoint snapshots stay valid with only secrets masked. Closes #339.

    • MessageBus persisted in checkpoints (#363 by @LambIessz). Checkpoint and restore now carry MessageBus state (messages and per-agent read position), so a resumed run keeps its inter-agent message history. Live callback subscribers stay process-local and are not serialized. Closes #343.

    • Trace span parent linkage (#354 by @tlysanhuo). Every trace event now carries a spanId and optional parentId, with stable agent span ids so LLM and tool spans point to their owning agent span, worker agents link under their task span, and plan_ready links under the coordinator decomposition. A team run is now reconstructable as a proper span tree. Closes #340.

    Fixes

    • Windows: kill the full process tree on bash timeout (#357 by @Bobuyoucrypto). A timed-out bash command on Windows now kills its full process tree with taskkill /T /F and returns promptly, instead of leaving background children alive and hanging until they exit on their own. Exit codes 124 (timeout) and 130 (abort) are reported authoritatively, and the suite now passes on Windows.

    Install

    npm install @open-multi-agent/core@1.10.0
    

    New project: npm create oma-app@latest (scaffold updated to create-oma-app@0.3.1, which pins core 1.10.0).

    Thanks to @LambIessz, @tlysanhuo, @Bobuyoucrypto, and @JackChen-me.

    Downloads
  • v1.9.0 fc36925dff

    Stable

    dean released this 2026-07-03 13:08:59 -05:00 | 260 commits to main since this release

    📅 Originally published on GitHub: Fri, 03 Jul 2026 18:11:55 GMT
    🏷️ Git tag created: Fri, 03 Jul 2026 18:08:59 GMT

    Features

    • Durable memory: FileStore (#347 by @JackChen-me). A zero-dependency, filesystem-backed MemoryStore, so checkpoint/resume survives a process restart out of the box. Writes are atomic (temp file, fsync, rename) and reads come from an in-memory mirror; a corrupt state file fails loud instead of silently. Until now the only bundled store was InMemoryStore, so durability meant writing your own.
    • Error-aware task retry (#346 by @JackChen-me). Retry (opt-in via maxRetries > 0) now classifies failures: isRetryableError() skips provably-terminal errors (most 4xx, token-budget, aborted calls) instead of burning attempts, while 429, 5xx, network blips, and per-call timeouts still retry. Adds equal jitter and honors abort signals, on both streaming and non-streaming paths.
    • Per-call LLM timeout (#344 by @JackChen-me). New opt-in AgentConfig.callTimeoutMs (and on CoordinatorConfig) bounds a single adapter.chat() call, so one stalled request no longer hangs the whole run. Uniform across every adapter and surfaced as LLMCallTimeoutError, distinct from a deliberate abort or a real API error. Unset preserves current behavior exactly.
    • Run-level metrics on TeamRunResult (#345 by @lesbass). TeamRunResult now carries a metrics rollup (total tokens, retries, error/failure/completed counts, and task-latency aggregates) computed from per-task data, and the dashboard renders a matching summary bar.
    • Vercel AI SDK 7 support (#348 by @JackChen-me). The optional ai peer range now spans ^5 || ^6 || ^7, so you can use the AI SDK bridge on the latest release without peer-dependency warnings. No adapter code changes. The AI SDK 7 bridge needs Node >= 22 (core stays >= 18).

    Docs

    • Plan preview and replay guide, surfaced from both READMEs (#349 by @JackChen-me).

    Install

    npm install @open-multi-agent/core@1.9.0
    

    New project: npm create oma-app@latest

    Thanks to @lesbass and @JackChen-me.

    Downloads
  • v1.8.1 fdcdd0c656

    Stable

    dean released this 2026-06-26 22:44:39 -05:00 | 267 commits to main since this release

    📅 Originally published on GitHub: Sat, 27 Jun 2026 03:46:41 GMT
    🏷️ Git tag created: Sat, 27 Jun 2026 03:44:39 GMT

    Patch release with two install/runtime fixes.

    Fixes

    • defaultModel now reaches every agent, not just the coordinator. Previously OrchestratorConfig.defaultModel only applied to the coordinator pass. Workers, runAgent, delegated, and consensus agents never inherited it, so it was effectively dead for executing agents. They now inherit defaultModel the same way they already inherited defaultProvider, defaultBaseURL, and defaultApiKey. AgentConfig.model becomes optional in an orchestrated run; a standalone new Agent() still requires an explicit model and throws a clear error if it is missing. (#323)
    • Vercel AI SDK v6 is now supported. The optional ai peer range widened from ^5.0.0 to ^5.0.0 || ^6.0.0, so installs that pair the framework with AI SDK v6 (for example via @ai-sdk/react@3, which pulls ai@6) no longer fail with ERESOLVE. The adapter works against both majors. (#324)

    Docs

    README and examples cleanups: clearer out-of-the-box vs peer-install provider guidance, a one-click Vercel deploy starter link, corrected example run paths after the reorg, and Ecosystem additions. (#320–#322, #325–#331)


    Also republishes create-oma-app@0.2.1 (template pin bumped to core 1.8.1).

    Downloads
  • v1.8.0 10ace99f31

    Stable

    dean released this 2026-06-19 13:31:19 -05:00 | 280 commits to main since this release

    📅 Originally published on GitHub: Fri, 19 Jun 2026 18:47:06 GMT
    🏷️ Git tag created: Fri, 19 Jun 2026 18:31:19 GMT

    Features

    • Checkpoint and resume (#294 by @mvanhorn, #314 by @JackChen-me). A long run can now survive a crash or restart. Persist progress to any MemoryStore with checkpoint: true on runTeam / runTasks / runFromPlan, then resume with orchestrator.restore(...). On resume, runTeam re-runs coordinator synthesis so you still get a final answer, and checkpointing into the team's own shared-memory store no longer re-serializes the whole store per task.
    • Consensus verification reaches runTeam (#301 by @nuthalapativarun). The per-task judge loop from 1.7.0 now applies to coordinator-generated tasks. Pass the judges with RunTeamOptions.verifyJudges, and the coordinator opts a task in with verify: true or a partial config.
    • Native reasoning round-trip on Bedrock (#302 by @nuthalapativarun). Extended-thinking blocks round-trip through Bedrock's signature protocol with full fidelity, moving echoesReasoning from never to own-issued.

    Fixes

    • Dashboard: the run details panel is back to a right-hand sidebar on desktop instead of stacking under the canvas (#308 by @JackChen-me).

    Onboarding and examples

    • npm create oma-app scaffolds a runnable multi-agent demo in one command (#305, #306 by @JackChen-me).
    • The full-app examples run end to end on a single DeepSeek key (#311 by @JackChen-me).
    • New consensus pattern example (#297 by @nuthalapativarun).

    Install

    npm install @open-multi-agent/core@1.8.0

    New project: npm create oma-app@latest

    Thanks to @mvanhorn, @nuthalapativarun, and @JackChen-me.

    Downloads
  • v1.7.0 d08c335a85

    Stable

    dean released this 2026-06-14 22:08:24 -05:00 | 299 commits to main since this release

    📅 Originally published on GitHub: Mon, 15 Jun 2026 03:18:35 GMT
    🏷️ Git tag created: Mon, 15 Jun 2026 03:08:24 GMT

    ⚠️ Breaking: built-in tools are now opt-in / default-deny (#289 by @JackChen-me)

    A no-tools agent used to receive every built-in implicitly, including an
    unsandboxed bash. Tool output flows back to the model, so under prompt
    injection that was a remotely triggerable exec + exfiltration path. Built-in
    tools (bash, file_*, grep, glob, delegate_to_agent) now need a
    positive grant: with neither tools nor toolPreset set, an agent resolves to
    zero.

    Migrating:

    • One-line restore of the old allow-all: defaultToolPreset: 'full' on OrchestratorConfig.
    • Or grant per agent via tools / toolPreset.
    • Custom tools (customTools / addTool) are unaffected: registration is the grant, and disallowedTools is still honored.

    Features

    • Consensus / adversarial verification (#280 by @CodingBangboo). runConsensus() runs proposers against judges, plus an optional per-task verify hook that puts a task's own result through the same judge loop.
    • Deterministic model routing (#286 by @cat0825). Opt-in modelRouting sends different orchestration calls (coordinator, synthesis, workers, delegated) to different models by match rules, without mutating your team config. Also fixes routing being bypassed on pooled agents.
    • MiniMax-M3 is the new default (#292 by @octo-patch). Up to a 1M-token context (512K guaranteed) with image input. M2.7 and MiniMax-M2.7-highspeed stay available if you pin them explicitly.

    Docs

    • Model routing guide: docs/model-routing.md, linked from both READMEs (#293 by @JackChen-me).
    • TencentDB-Agent-Memory integration cookbook under examples/ (#295 by @JackChen-me).
    • LiteLLM added to the OpenAI-compatible providers table (#283 by @RheagalFire).

    Install

    npm install @open-multi-agent/core@1.7.0

    Thanks to @CodingBangboo, @cat0825, @octo-patch, and @RheagalFire. Extra thanks to @CodingBangboo, who landed the consensus primitive (#280) and has been a steady reviewer this cycle.

    Downloads
  • v1.6.0 b82eca24e3

    Stable

    dean released this 2026-06-06 12:20:40 -05:00 | 307 commits to main since this release

    📅 Originally published on GitHub: Sat, 06 Jun 2026 17:25:44 GMT
    🏷️ Git tag created: Sat, 06 Jun 2026 17:20:40 GMT

    Features

    • Replay persisted team plans, so a previously decomposed plan can be re-run without a new coordinator pass (#285 by @cat0825)
    • Add a Tencent Hunyuan provider adapter (#281 by @KaitlynFeng)
    • Add a robust regex fallback for malformed single-string JSON tool calls from local models (#269 by @apollo-mg)

    Fixes

    • Validate message content at every adapter entry, surfacing a clear InvalidMessageError instead of a deep content.some is not a function crash (#288 by @JackChen-me, implementing the fail-fast approach @apollo-mg diagnosed in #268)
    • Preserve memoryScope and retry config when a plan is replayed (#287 by @JackChen-me)
    • Support structured shared-memory handoff between agents (#284 by @cat0825)

    Internal

    • Extract a shared repairToolArgs helper across the OpenAI-compatible adapters (#282 by @JackChen-me)
    • Add unit tests for the error types (#290 by @Oxygen56)

    Docs

    • Move the Ecosystem section above Examples in the README (#277 by @JackChen-me)

    Install

    npm install @open-multi-agent/core@1.6.0

    Thanks to @KaitlynFeng, @apollo-mg, @cat0825, and @Oxygen56.

    Downloads
  • v1.5.0 995ce60f62

    Stable

    dean released this 2026-05-29 22:44:26 -05:00 | 317 commits to main since this release

    📅 Originally published on GitHub: Sat, 30 May 2026 03:54:54 GMT
    🏷️ Git tag created: Sat, 30 May 2026 03:44:26 GMT

    open-multi-agent v1.5.0

    Features

    • Per-agent filesystem sandbox (#264 by @JackChen-me). file_read/file_write/file_edit/grep/glob
      now resolve every path, symlinks included, inside each agent's cwd, defaulting to
      <cwd>/.agent-workspace. bash stays unsandboxed. Behavior change below.
    • Cross-provider reasoning text fallback (#260 by @MyPrototypeWhat). preserveReasoningAsText
      carries reasoning across providers that can't echo native reasoning blocks, as inline
      <thinking> text instead of dropping it. Phase 2 of #223.
    • MiMo provider (#265 by @kidoom).
    • Doubao (Volcengine) provider shortcut (#261 by @kidoom, #236 by @janelawrence). Target
      Doubao models without custom baseURL wiring.
    • DeepSeek V4 default model names (#250 by @JackChen-me). Behavior change below.

    Fixes

    • Secrets redacted from traces, bash output, and dashboard payloads (#263 by @JackChen-me).
      API keys and tokens no longer leak into observability surfaces.
    • MCP: dedupe normalized tool names, clean up client/transport on connect failure
      (#256 by @JackChen-me).
    • Orchestrator honors abortSignal before synthesis and rejects ambiguous task deps
      (#255 by @JackChen-me).
    • Loop detector replays history and warns on text-only loops (#254 by @JackChen-me).
    • DeepSeek echoes reasoning_content on V4 tool-calling (#251 by @JackChen-me).

    Behavior changes

    • Filesystem tools sandbox to <cwd>/.agent-workspace by default (#264). Agents that read or
      wrote outside process.cwd(), or used relative paths, now get a sandbox error. Set
      OrchestratorConfig.defaultCwd (or AgentConfig.cwd) to your root, process.cwd() for the old
      wide default, or null to disable. bash is not sandboxed.
    • DeepSeek CLI default is now deepseek-v4-flash (#250). Affects the oma CLI run without
      --model; library users are unaffected (no hardcoded default in the adapter). deepseek-chat
      and deepseek-reasoner keep routing until DeepSeek retires them on 2026-07-24.

    Package metadata

    • docs/ no longer ships in the npm tarball. README links now point to the GitHub copy, so
      they always track the latest version. If you read docs from
      node_modules/@open-multi-agent/core/docs/ (uncommon), switch to the GitHub URLs.

    Examples and docs

    • Provider examples: Moonshot (#259), Qwen (#257), and an index of existing ones (#258), all by
      @goodneamtakenbydogs.
    • Bilig WorkPaper MCP integration example (#247 by @gregkonush).
    • README restructured with built-in capabilities surfaced and zh synced (#273 by @JackChen-me),
      CLAUDE.md slimmed to a code map (#274 by @JackChen-me), integrations governance README replacing
      the stale DECISIONS.md (#248 by @JackChen-me).
    • Tests and CI: DeepSeek tool-calling via chat() and stream() (#252 by @btroops), OpenAI
      adapter fallback assertions (#253), CI on npm ci (#262), and a CI check asserting the npm
      tarball ships only dist/ plus metadata.

    Install

    npm install @open-multi-agent/core@1.5.0
    

    Thanks to @kidoom, @janelawrence, @MyPrototypeWhat, @goodneamtakenbydogs, @btroops, and @gregkonush.

    Downloads
  • v1.4.2 fac1114bdb

    Stable

    dean released this 2026-05-23 23:27:55 -05:00 | 339 commits to main since this release

    📅 Originally published on GitHub: Sun, 24 May 2026 04:43:08 GMT
    🏷️ Git tag created: Sun, 24 May 2026 04:27:55 GMT

    v1.4.2

    Drop-in safe patch: three opt-in additions and three new examples. All new APIs default to off.

    New (opt-in)

    • RunTeamOptions.revealCoordinator (#245 by @JackChen-me). When true, prepends a team-context block (goal, full roster, this worker's assignee identity) to every worker prompt under runTeam. Default false keeps existing prompts byte-identical. runTasks and the short-circuit single-agent path ignore it. Closes #244.
    • enableReasoningTextReplay (#234 by @matthewYang08). Opt-in replay of framework reasoning blocks as inline <thinking> text on OpenAI-family requests, capped by maxReasoningReplayChars (default 1200). Also closes a latent 400 against OpenAI when a reasoning-only assistant message emitted {content: null} with no tool_calls. Refs #223.
    • ReasoningBlock.provenance + LLMAdapter.capabilities (#243 by @MyPrototypeWhat). Phase 1 of #223: additive IR fields, per-adapter echoesReasoning: 'never' | 'own-issued' declarations, and a shared reasoningBlockToInlineText helper. No behavior change yet; Phase 2 wires capabilities into the outbound fallback.

    Examples

    • Doubao (ByteDance) provider example via Volcengine Ark (#232 by @nuthalapativarun).
    • Zhipu GLM provider example (#231 by @nuthalapativarun).
    • Narrative puzzle hint arbitration cookbook: 5-agent multi-source conflict resolution with external safety veto (#235 by @suans4746-del). Closes #212.

    Documentation

    • compressToolResults and maxToolOutputChars documented in the context management guide (#233 by @nuthalapativarun).

    Install

    npm install @open-multi-agent/core@1.4.2

    Thanks to @MyPrototypeWhat, @nuthalapativarun, @matthewYang08, and @suans4746-del.

    Full Changelog: https://github.com/open-multi-agent/open-multi-agent/compare/v1.4.1...v1.4.2

    Downloads
  • v1.4.1 4d5a42d83c

    Stable

    dean released this 2026-05-17 13:37:23 -05:00 | 349 commits to main since this release

    📅 Originally published on GitHub: Mon, 18 May 2026 10:35:27 GMT
    🏷️ Git tag created: Sun, 17 May 2026 18:37:23 GMT

    v1.4.1

    Patch release: two bug fixes for OpenAI-family adapters and the runner, plus Vercel AI SDK as an optional adapter. The previous npm package (@jackchen_me/open-multi-agent) is now formally deprecated.

    Bug fixes

    • OpenAI-family adapters: guard choices[0] with optional chaining (#220). Prevents crashes when providers return empty choices arrays. Thanks @dvirarad.
    • Runner: defer maxTokenBudget break until after tool_result is appended (#221). Fixes orphaned tool_use blocks when the token budget is hit mid-turn. Thanks @CodingBangboo.

    New (optional)

    • Vercel AI SDK adapter via the dedicated @open-multi-agent/core/ai-sdk subpath (#229). Bridges LLMAdapter to AI SDK's generateText / streamText. Optional peer dep ai; main import is unaffected if you don't use it. Thanks @ibrahimkzmv.

    Documentation

    • MiniMax provider community offer and setup guide (#219).
    • Label hero GIF as post-run replay (#222).

    Deprecation

    • The previous npm package, @jackchen_me/open-multi-agent, is now formally deprecated. Existing installs continue to work; new installs should use npm install @open-multi-agent/core. The npm CLI shows a deprecation message automatically.

    Full Changelog: https://github.com/open-multi-agent/open-multi-agent/compare/v1.4.0...v1.4.1

    Downloads
  • v1.4.0 8bf80f2b9a

    Stable

    dean released this 2026-05-09 02:40:10 -05:00 | 356 commits to main since this release

    📅 Originally published on GitHub: Sat, 09 May 2026 08:39:34 GMT
    🏷️ Git tag created: Sat, 09 May 2026 07:40:10 GMT

    Highlights

    Official org package

    Open Multi-Agent now has an official organization package:

    npm install @open-multi-agent/core
    

    New projects should use @open-multi-agent/core.

    Plan-only orchestration

    Adds PlanOnly mode so teams can inspect the coordinator's task DAG before running agent work. (#203 by @CodingBangboo)

    LLM adapter improvements

    • Preserve reasoning blocks across Anthropic and Gemini turns. (#205 by @MyPrototypeWhat)
    • Forward reasoning_effort and backfill sampling-parameter parity across OpenAI-compatible, Copilot, and Azure paths. (#209 by @MyPrototypeWhat)
    • Add a Mistral provider example and README entry. (#206 by @mvanhorn)

    Shared memory TTL

    SharedMemory entries can now expire by turn count. (#213 by @MyPrototypeWhat)

    Fixes

    • Keep text-tool extraction depth non-negative when a stray closing brace appears. (#217 by @voidborne-d)
    • Fix truncation behavior and tighten coordinator dependency guidance. (#215 by @CodingBangboo)

    Examples and Docs

    • Add paper replication triage cookbook example. (#202 by @DaiMao-UT)
    • Add rare disease information triage example. (#211 by @oooooowoooooo)
    • Refresh README, hero animation, badges, docs, and repository links for the new GitHub organization. (#214 and #218 by @JackChen-me)

    Compatibility

    No intentional runtime API breaks were introduced. The package identity changed to @open-multi-agent/core.

    The previous package path, @jackchen_me/open-multi-agent, remains supported during the migration window and is also published at 1.4.0.

    Install

    npm install @open-multi-agent/core@1.4.0
    

    Legacy path during the migration window:

    npm install @jackchen_me/open-multi-agent@1.4.0
    
    Downloads