Agents that coordinate themselves.
Most multi-agent systems hardcode who does what. Ziggy puts the coordination in a graph instead: it reads an incoming request, scores the agents that could handle it, assigns the right tools, and learns from how it went — so routing gets smarter instead of more brittle.
The problem
The moment you have more than one agent, something has to decide who handles what. Hardcode that routing and it ossifies — every new agent, tool, or edge case is more branching logic, and the system gets more brittle the more it grows.
The solution
Ziggy encodes coordination in a graph, not in if-statements. Agents register their tools through an SDK; when a request arrives, Ziggy matches it to a task pattern, scores agents by specialization and track record, assigns the tools that fit, and records the outcome so the next decision is better.
How it works
Coordination as a graph.
External agents connect through the SDK and declare their tools and capabilities — no central rewrite to add one.
An incoming request is classified, matched to a pattern, and scored against the agents that could handle it. Best fit gets the work.
Every outcome updates the scores, so routing improves from use instead of drifting out of date.
The build story
"Hardcoded agent routing falls apart the moment the system grows. So we stopped hardcoding it."
Ziggy is the orchestration layer we kept needing and didn't want to rebuild every time. It proves tenets 04 and 02 at once: put the structure in a graph and let the relationships carry the logic, shipped as a real product before it became a framework. It's how a fleet of agents stays maintainable — and the production system Mentat was later extracted from.