Reliably hand off tasks between AI agents.
No lost tasks, no rate-limit blowouts, no policy bypass, full traceability.
When agents hand off work directly, every failure mode below becomes an outage. Janus sits in the middle and removes them.
Tasks vanish when agents go offline
Who called whom and with what data?
Downstream agents get overwhelmed
No rules on who can call whom
Which team exceeded token budget?
Every framework has a different interface
Six pillars that turn fragile agent-to-agent calls into a governed, observable, durable mesh.
progress("Analyzing...", 60)One command to start the broker, a few lines of SDK to publish and complete your first durable task.
$ docker compose up -d
from janus_broker import JanusClient
client = JanusClient("http://localhost:8080", tenant_id="acme")
client.publish_task({
"id": "task-001",
"source_agent": "product",
"target_type": "mailbox",
"target_value": "review-mb",
"envelope": { ... }
})
result = client.pull_task("review-mb", "reviewer")
client.start_task(result.task.id, result.lease.lease_id)
# Process task...
client.ack_task(result.task.id, {
"lease_id": result.lease.lease_id,
"result_ref": "s3://result.json"
})
Any pipeline that chains agents becomes reliable the moment it runs through Janus mailboxes.
Product → Review → Code → Test → Deploy
PR triggers review agent, code agent fixes issues, test agent validates, deploy agent ships
Failure → Diagnose → Fix → Verify → Merge
CI failure auto-dispatches to diagnosis agent, generates fix, validates and merges
Commit → Dependency Scan → Credential Check → Approve
Auto-scan for vulnerabilities and leaked credentials, high-risk changes require approval
Bring your existing stack — Janus bridges them all through one durable backbone.
Reliable, governed, auditable, and recoverable — from the first task to the millionth.