Infrastructure

Multiple agents, one inbox, zero conflicts

Contact leases prevent double-sends. Consensus voting gates sensitive actions. Heartbeat monitoring tracks who is alive. Run SDR, retention, and support agents side by side without them stepping on each other.

Multiple agent icons connected to a central mailbox with policy enforcement and role-based coordination

How it works

1

Register each agent

POST to /v1/agent/register with a name and role. Each agent gets a unique ID (agent_<uuid>) used across all coordination endpoints.

2

Keep heartbeats going

POST to /v1/agent/coordination/heartbeat. Agents that go silent for 5 minutes are marked inactive and excluded from consensus votes. Think of it as a liveness check.

3

Lease contacts before emailing them

POST to /v1/agent/coordination/lease for exclusive access to a contact (default 30 minutes). Another agent tries to send to a leased contact? Blocked with reason lease_conflict.

4

Gate sensitive actions with consensus

POST to /v1/agent/coordination/consensus to request peer approval. Other agents vote approve or reject, and consensus resolves by majority of active agents.

5

Release leases (or let them expire)

DELETE /v1/agent/coordination/lease/:id releases early. Otherwise, leases expire at their configured duration. No cleanup code needed.

Acquire a contact lease

POST /v1/agent/coordination/lease

POST /v1/agent/coordination/lease
{
  "tenantId": "your-tenant-id",
  "agentId": "agent_abc123",
  "contactEmail": "alice@example.com",
  "intent": "outbound_sales",
  "durationMinutes": 30
}
// Conflict response (another agent holds the lease)
{
  "conflict": true,
  "leaseHolder": {
    "agentId": "agent_other",
    "agentName": "retention-agent",
    "expiresAt": "2026-02-25T15:45:00Z"
  }
}

Coordination primitives

Agent Registration

Name, role, unique ID. Re-registering the same agent upserts rather than creating a duplicate. Clean and idempotent.

Heartbeat Monitoring

5-minute liveness window. Miss it and your agent is excluded from consensus calculations. No heartbeat, no vote.

Contact Leases

Exclusive access to a contact for a time window. Two agents can't email the same person at the same time. Period.

Consensus Voting

Peer approval for sensitive actions. Configurable timeout. Majority-based resolution. Outcomes: approve, reject, or expired.

When one agent shouldn't decide alone

Custom pricing override? Sensitive outreach? Request consensus from peer agents. Approval requires a majority of active agents (the ones with recent heartbeats).

POST /v1/agent/coordination/consensus
{
  "tenantId": "your-tenant-id",
  "requestingAgentId": "agent_abc123",
  "action": "send_pricing_override",
  "contactEmail": "cto@bigcorp.com",
  "reason": "Contact requested custom pricing",
  "timeoutMinutes": 60
}

// Other agents vote
POST /v1/agent/coordination/consensus/:id/vote
{
  "agentId": "agent_reviewer",
  "vote": "approve",
  "reason": "Contact is qualified, pricing is within bounds"
}

Built for multi-agent setups

Leases, heartbeats, and consensus voting. The coordination primitives your agents need to share a tenant without causing chaos.