Most multi-agent systems assume developers must define the workflow before execution starts: which agent runs first, who receives its output, when handoffs happen, and what comes next. That works on the happy path.
It breaks when an agent fails, produces something unexpected, needs information nobody anticipated, or discovers another agent is better suited to continue. Recovery means adding branches, retries, and fallback nodes — and the graph keeps growing as the system gets more capable.
Parallel agents do not fix this. Subagents may run at the same time, but they are usually unaware of each other and of what is happening elsewhere. The main agent sends work, waits, and decides what happens next. That is parallel execution inside a sequential coordination model — still isolated, still unable to ask for help, delegate, or react when the environment changes.
We built Mozaik as an event-driven multi-agent runtime. Instead of moving agents through predefined nodes, participants publish events into a shared environment. Others receive those events and decide how to react.
The runtime delivers information. Each participant interprets it and chooses what to do — update context, call a tool, delegate, or publish a new event that triggers further collaboration. The workflow is not fully designed upfront; it emerges during execution.
Event-driven delivery is the foundation. The next step we are developing is intelligent communication through tool calling.
Each agent sees the other participants in the environment and the capabilities they expose through their public manifest — what they can do, not how they are implemented internally. Communication between agents becomes a tool the model can invoke, alongside any other tool in its toolkit.
When an agent calls a communication tool, it decides:
For example, a research agent may discover that part of its task requires legal interpretation. Instead of following a predefined handoff wired into a workflow graph, it looks at the available participants, finds one whose manifest describes legal analysis, and delegates that slice of work during execution.
The developer still defines the agents, their capabilities, and the safety boundaries. But the developer does not need to model every possible interaction between them. Agents decide when to communicate and with whom based on the current task and the state of the environment.
That is the shift we are aiming for: from orchestration graphs that predict every path, to agents that coordinate through tools when the situation demands it.
Star Mozaik on GitHub:
github.com/jigjoy-ai/mozaikWith tools and technology we already have, we can build much more valuable systems than most projects today. We can write software that is a pleasure to use and a pleasure to work on; software that doesn't box us in as it grows, but creates new opportunities and continues to add value for its owners.
Newsletter
For developers who want to learn how to build self-organizing agents.
We're organizing a hackathon
We're organizing a hackathon — compete using the Mozaik framework.