
Open Multi Agent Orchestration
Stand up an in-process TypeScript multi-agent team with DAG task scheduling, shared memory, and mixed Claude/GPT models using open-multi-agent.
Overview
Open Multi-Agent Orchestration is an agent skill most often used in Build (also Ship) that guides TypeScript setup of open-multi-agent teams with DAG scheduling, parallel tasks, and cross-model agent collaboration.
Install
npx skills add https://github.com/aradotso/trending-skills --skill open-multi-agent-orchestrationWhat is this skill?
- `OpenMultiAgent` orchestrator with named `Team` groups sharing message bus, task queue, and options
- DAG-style task dependencies with parallel execution and no subprocess overhead (in-process)
- Mix Anthropic and OpenAI models in one workflow via environment API keys
- npm/pnpm install path: `@jackchen_me/open-multi-agent` with documented trigger phrases for scheduling and custom tools
Adoption & trust: 612 installs on skills.sh; 31 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need several specialized agents to share tasks and dependencies, but one-shot chat sessions cannot schedule parallel work or mix models reliably.
Who is it for?
TypeScript indie builders orchestrating Claude and optional GPT agents with explicit task graphs and custom tools in one repo.
Skip if: No-code operators or teams that only need a single model with no dependency graph or npm-based agent runtime.
When should I use this skill?
Triggers include set up a multi-agent AI team, orchestrate multiple AI agents, create a task pipeline with dependencies, run agents in parallel with task scheduling, or use open-multi-agent framework.
What do I get? / Deliverables
You configure an in-process OpenMultiAgent team with resolved dependency graphs, shared bus memory, and custom tools so complex goals decompose into scheduled, parallel agent work.
- Configured OpenMultiAgent team with agents, tools, and dependency graph
- Runnable in-process multi-agent workflow mixing models as needed
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Build is the canonical shelf because installation, team design, tools, and orchestrator APIs are implemented in your codebase before launch concerns. Agent-tooling subphase reflects framework-level orchestration—teams, buses, queues—not generic backend CRUD or frontend polish.
Where it fits
Spike a three-role agent team on a thin vertical slice to see if DAG scheduling beats sequential chat for your use case.
Install `@jackchen_me/open-multi-agent` and wire OpenMultiAgent teams with custom tools and shared memory.
Connect agent tools to internal APIs while the orchestrator resolves dependent tasks in parallel.
Harden env-based API keys and failure handling before exposing the orchestrator to production traffic.
How it compares
In-process TypeScript orchestration library guidance—not an MCP server catalog entry or a managed cloud agent farm.
Common Questions / FAQ
Who is open-multi-agent orchestration for?
Developers shipping agent features in Node/TypeScript who want teams, DAG scheduling, and mixed-model workflows without external orchestration services.
When should I use open-multi-agent orchestration?
During Build when implementing agent-tooling; during Ship when hardening parallel task pipelines before production; during Validate prototype spikes that need multi-role agent collaboration.
Is open-multi-agent orchestration safe to install?
Use the Security Audits panel on this page; the framework uses API keys and network calls to model providers—scope secrets and tool permissions you attach to each agent.
SKILL.md
READMESKILL.md - Open Multi Agent Orchestration
# Open Multi-Agent Orchestration > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. `open-multi-agent` is a TypeScript framework for building AI agent teams where agents with different roles, models, and tools collaborate on complex goals. The framework handles task dependency resolution (DAG scheduling), parallel execution, shared memory, and inter-agent communication — all in-process with no subprocess overhead. ## Installation ```bash npm install @jackchen_me/open-multi-agent # or pnpm add @jackchen_me/open-multi-agent ``` Set environment variables: ```bash export ANTHROPIC_API_KEY=your_key_here export OPENAI_API_KEY=your_key_here # optional, only if using OpenAI models ``` ## Core Concepts | Concept | Description | |---------|-------------| | `OpenMultiAgent` | Top-level orchestrator — entry point for all operations | | `Team` | A named group of agents sharing a message bus, task queue, and optional shared memory | | `AgentConfig` | Defines an agent's name, model, provider, system prompt, and allowed tools | | `Task` | A unit of work with a title, description, assignee, and optional `dependsOn` list | | `LLMAdapter` | Pluggable interface — built-in adapters for Anthropic and OpenAI | | `ToolRegistry` | Registry of available tools; built-ins + custom tools via `defineTool()` | ## Quick Start — Single Agent ```typescript import { OpenMultiAgent } from '@jackchen_me/open-multi-agent' const orchestrator = new OpenMultiAgent({ defaultModel: 'claude-sonnet-4-6' }) const result = await orchestrator.runAgent( { name: 'coder', model: 'claude-sonnet-4-6', tools: ['bash', 'file_write'], }, 'Write a TypeScript function that reverses a string, save it to /tmp/reverse.ts, and run it.', ) console.log(result.output) ``` ## Multi-Agent Team ```typescript import { OpenMultiAgent } from '@jackchen_me/open-multi-agent' import type { AgentConfig } from '@jackchen_me/open-multi-agent' const architect: AgentConfig = { name: 'architect', model: 'claude-sonnet-4-6', systemPrompt: 'You design clean API contracts and file structures.', tools: ['file_write'], } const developer: AgentConfig = { name: 'developer', model: 'claude-sonnet-4-6', systemPrompt: 'You implement what the architect designs.', tools: ['bash', 'file_read', 'file_write', 'file_edit'], } const reviewer: AgentConfig = { name: 'reviewer', model: 'claude-sonnet-4-6', systemPrompt: 'You review code for correctness and clarity.', tools: ['file_read', 'grep'], } const orchestrator = new OpenMultiAgent({ defaultModel: 'claude-sonnet-4-6', onProgress: (event) => console.log(event.type, event.agent ?? event.task ?? ''), }) const team = orchestrator.createTeam('api-team', { name: 'api-team', agents: [architect, developer, reviewer], sharedMemory: true, }) const result = await orchestrator.runTeam( team, 'Create a REST API for a todo list in /tmp/todo-api/', ) console.log(`Success: ${result.success}`) console.log(`Output tokens: ${result.totalTokenUsage.output_tokens}`) ``` ## Task Pipeline — Explicit DAG Control Use `runTasks()` when you need precise control over task ordering, assignments, and parallelism: ```typescript const result = await orchestrator.runTasks(team, [ { title: 'Design the data model', description: 'Write a TypeScript interface spec to /tmp/spec.md', assignee: 'architect', }, { title: 'Implement the module