A protocol-first approach to LLM agents
ZipperGen is a Python DSL and runtime for structured multi-agent LLM systems. It is based on a simple idea: instead of wiring agents together locally and hoping the pieces interact correctly, write the global protocol first.
A protocol describes who talks to whom, which participant performs each action, and who owns each decision. ZipperGen projects this protocol to local agents and runs them concurrently.
Motivation
LLM-agent systems often combine tool calls, callbacks, queues, retries, and human approval steps. As these systems grow, the coordination logic can become difficult to inspect and easy to break.
ZipperGen makes the coordination explicit. The global workflow is the source of truth, and executions can be inspected as message sequence charts.
Design principles
- Coordination should be written globally.
- Local agent programs should be derived automatically.
- Human approval and side effects should be explicit.
- Executions should be inspectable.
- The coordination layer should be deadlock-free by construction.
Research and implementation
ZipperGen builds on ideas from Message Sequence Charts and choreographic programming. A workflow is written from a global point of view and then projected to local participants. ZipperGen adapts this idea to LLM agents, tool calls, human approval steps, and inspectable runtime traces.
The implementation is available as an open-source Python project on GitHub, together with examples, tests, and links to the Lean formalization. The goal is practical: make multi-agent LLM systems easier to program, run, inspect, and audit.