Dynamic and explicit orchestration
runTeam() builds a task DAG from a goal. runTasks() runs a graph you define, and runAgent() covers the single-agent case.
Semantic Kernel is Microsoft’s enterprise LLM SDK for .NET, Python, and Java; open-multi-agent is a TypeScript-native task-DAG runtime. Microsoft is now converging its agent work into the Microsoft Agent Framework.
You’re in the Microsoft / .NET / Azure ecosystem and want a first-party SDK; plugins, functions, agents; with a supported path forward via the Microsoft Agent Framework.
You’re in Node/TypeScript and want a lean, provider-neutral, goal-driven runtime with three dependencies and a hard token budget; no .NET, no Azure assumption.
| Dimension | open-multi-agent | Semantic Kernel |
|---|---|---|
| Language / runtime | TypeScript-native; embeds in any Node.js 18+ backend | .NET / C#-first; first-party Python and Java; no TypeScript |
| Orchestration model | Three modes: one agent, an explicit task DAG, or a goal decomposed by the coordinator at runtime | Plugins / functions plus agents; multi-agent orchestration is moving to the Microsoft Agent Framework |
| Runtime dependencies | 3 direct (Anthropic SDK, OpenAI SDK, Zod); extra providers and MCP are opt-in peers | ~22 direct in the Python package; the newer Agent Framework core is much leaner (~4) |
| Mixed-model teams | Yes; each agent can use its own cloud or local model in one team | Yes; per-agent model / service |
| Run-budget control | Token and estimated-USD ceilings through maxTokenBudget, or maxCostBudget with your estimateCost price table | No hard token cap |
| Observability | TraceRecord v2 + TraceStore, an optional first-party OTel adapter, and an offline post-run Run Viewer | Native OpenTelemetry |
OMA is more than goal decomposition and a small dependency count. These are current framework capabilities documented in the project README.
runTeam() builds a task DAG from a goal. runTasks() runs a graph you define, and runAgent() covers the single-agent case.
Inspect and approve plans, freeze and replay them as data, validate outputs with Zod, stream per agent, cancel runs, or add a proposer and judge consensus loop.
The scheduler runs independent branches in parallel. Retries and checkpoints let an interrupted run resume without repeating completed tasks.
Bound work with turn, token, estimated-cost, timeout, context, and loop controls. Tools are default-deny, and trace payloads redact secrets by default.
Run in your Node.js backend, locally, offline, or air-gapped. Mix cloud and local models, connect MCP tools, and bring external agents through ACP or process backends.
Stable run identity, TraceStore, and the offline DAG and Waterfall Viewer work without a hosted service. An optional OTel adapter and EvalSets connect runs to production telemetry and CI gates.
Semantic Kernel provides plugins, functions, planners, and agents. It is built C#-first with first-party Python and Java support, and integrates with Microsoft and Azure services. Its multi-agent direction is the Microsoft Agent Framework, which unifies SK and AutoGen. open-multi-agent is a TypeScript-native runtime that decomposes a goal into a task DAG at runtime, assumes no particular cloud, and carries three direct dependencies.
Semantic Kernel or the Microsoft Agent Framework fits .NET and Azure projects that require Microsoft-supported SDKs, Azure integrations, and native OpenTelemetry.
Semantic Kernel on GitHub↗open-multi-agent fits when your stack is Node/TypeScript and you want to stay there: a lean, provider-neutral, goal-driven runtime with three dependencies and a hard maxTokenBudget, with no .NET runtime or Azure assumption. The coordinator plans the task DAG from a goal instead of you assembling plugins and planners.
open-multi-agent is MIT-licensed and free to run yourself. When you need it delivered, integrated, or supported on a deadline, 元定义科技 (YuanASI) offers commercial delivery and support.