The event lattice
Every other agentic framework puts a scheduler at the center: “now run agent B.” Axocoatl puts a coordination fabric at the center, and lets the agents decide for themselves when they’re ready.
That fabric is the event lattice.
How it works
Section titled “How it works”The lattice is a shared bulletin board for events. Agents publish events when they finish work (or fail, or get interrupted). Every other agent watches for events it cares about. When an agent’s threshold is crossed — usually one event from each dependency — it wakes up and runs.
There’s no orchestrator deciding the order. The order is whatever the dependency graph implies. The lattice is what makes the ordering happen.
A two-agent example
Section titled “A two-agent example”agents: - id: researcher provider: ollama model: llama3.2 depends_on: [] - id: summarizer provider: ollama model: llama3.2 depends_on: [researcher]- You fire the workflow. The lattice publishes a
WorkflowStartedevent tagged with the workflow id. researcherhas no dependencies, so its threshold (zero events needed) is already met. It activates immediately.- When
researcherfinishes, the actor publishes aTaskCompletedevent withagent_id: researcher. summarizer’s threshold is “oneTaskCompletedfromresearcher.” That’s now met. The lattice activatessummarizer. Its input is the outputresearcherpublished.summarizerruns, publishes its ownTaskCompleted, and the workflow ends.
No scheduler. No central state machine. Just events on a shared lattice.
Why this matters
Section titled “Why this matters”The lattice also unlocks:
- Multi-agent for the same skill. If two agents both hold a Skill
that reacts to
BugReportFiled, the lattice runs an auction and picks the best fit. You don’t pre-assign. - Proactive agents. An agent can declare it reacts to a system event
(
EveryMorningAt8am,NewSupportEmail). The lattice activates it without you doing anything. - Skills routing. A Skill declares the events it emits and reacts to; the lattice wires it to whichever agent holds it. Move the Skill to a different agent, and the lattice routes there instead.
- Interrupts. An agent can pause itself, publish an
Interruptedevent, and wait for human input. The lattice picks it back up onResumed.
Watch it happen
Section titled “Watch it happen”In the dashboard, open Studio. The whole lattice is the canvas; every agent is a node. When an event fires that activates an agent, the node pulses. Drag the canvas around, click nodes to inspect, and use the left rail to filter by team or jump to a specific agent.
Every pulse you see is a real lattice event. Studio is a window onto the actual coordination layer — not a rendering layer that lies for the demo.