Skip to main content

Python DSL and runtime for structured multi-agent coordination

Project description

ZipperGen

Zip (our mascot) keeps your agents in line — literally. ZipperGen is a Python DSL and runtime for structured multi-agent LLM coordination, grounded in the theory of Message Sequence Charts. You write a single global protocol; ZipperGen projects it onto each agent and runs them concurrently, with deadlock-freedom guaranteed by construction.

No orchestrator polling. No spaghetti callbacks. Just Zip, zipping things together.

Quick start

git clone https://github.com/zippergen-io/zippergen.git
cd zippergen
pip install -e .

Python 3.11 or later required.

See it in action

The diagnosis example runs two LLMs through a medical consensus protocol until they agree. It opens a live diagram in your browser:

python examples/diagnosis.py

Then visit http://localhost:8765 — ZipperChat will show the agents exchanging messages in real time as a message sequence chart. The example uses a mock LLM backend by default (no API key needed), with simulated latency so you can watch Zip do its thing.

Wiring a real LLM

Pass any callable as llm_backend to run():

from zippergen.runtime import run

def my_backend(action, inputs):
    # call OpenAI / Anthropic / etc.
    return {"verdict": True, "reason": "..."}

run(proc, lifelines, initial_envs, llm_backend=my_backend)

How it works

ZipperGen programs are global coordination protocols — you describe what messages flow between which agents and who owns each decision. ZipperGen automatically projects the global protocol onto per-agent local programs and executes them in parallel threads with FIFO message queues.

The formal foundation is in the paper "Provable Coordination for LLM Agents via Message Sequence Charts".

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zippergen-0.1.0a1.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zippergen-0.1.0a1-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file zippergen-0.1.0a1.tar.gz.

File metadata

  • Download URL: zippergen-0.1.0a1.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zippergen-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 0614e129bfa7ac847b7e48924eb735f032431108df1a4f96e3915e028eae5bd6
MD5 4b04043392b25eb7566558e5158d555c
BLAKE2b-256 ced9de7a1cbaa143d866c4c20879fe6f290887966ffc6f4c33558094c6a7955c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zippergen-0.1.0a1.tar.gz:

Publisher: publish.yml on zippergen-io/zippergen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zippergen-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: zippergen-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zippergen-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 e108bd0321804238e836005f64eb6c157be8727be9750542dae3f572c00858b0
MD5 77f5eab947f4d2c565d9b4d01a0f59c8
BLAKE2b-256 33abdc3c3958c60686f690b4fb9a909dd48b05bc341e9ef165adf6eb5ea6e083

See more details on using hashes here.

Provenance

The following attestation bundles were made for zippergen-0.1.0a1-py3-none-any.whl:

Publisher: publish.yml on zippergen-io/zippergen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page