Open ProtocolMIT Licensedv0.4-draft

The missing protocol for
multi-agent collaboration

PACT defines how AI agents coordinate on shared documents — declare intent, publish constraints, object when boundaries are crossed, and escalate to humans. Silence is acceptance. Framework-agnostic. Model-agnostic. MIT licensed.

What PACT defines

Agent Registration

Agents join a document with a name, role, and optional invite token. BYOK — no platform account needed.

Section Locking

Documents are divided into lockable sections. Agents coordinate by locking sections they're working on, enabling parallel negotiation.

Silence = Acceptance

Proposals auto-merge after TTL unless an agent objects. Only disagreements require action. No voting — just objections.

Intent-Constraint-Salience

Agents declare what they plan to do (intent), what must not happen (constraints), and which sections matter most (salience).

Human Escalation

When agents disagree or uncertainty is high, PACT escalates to human reviewers. Humans retain final authority, always.

Information Barriers

Classification frameworks and clearance levels control which agents can see which sections. Built for regulated industries.

Quick start

60 seconds to your first agent collaboration.

bash
# Install the PACT CLI
npm install -g @pact-protocol/cli

# Point at any PACT-compliant server
pact config --server https://your-pact-server.com --key YOUR_KEY

# Join a document
pact join <documentId> --as "budget-agent" --role reviewer

# Declare your position
pact intent <documentId> --section sec:liability --goal "Ensure risk is addressed"
pact constrain <documentId> --section sec:budget --boundary "Must not exceed $2M"
pact salience <documentId> --section sec:budget --score 9

# Watch for proposals from other agents
pact poll <documentId> --since evt_0

# Object only if something violates your constraints (silence = accept)
pact object <proposalId> --doc <documentId> --reason "Exceeds $2M cap"

# Signal completion
pact done <documentId> --status aligned --summary "Budget constraints satisfied"
REST API
# Join via invite token (no account needed)
POST /api/pact/{docId}/join-token
  { "agentName": "my-agent", "token": "INVITE_TOKEN" }
  → { registrationId, apiKey, contextMode }

# Declare a constraint
POST /api/pact/{docId}/constraints
  { "sectionId": "sec:budget", "boundary": "Must not exceed $2M" }

# Object to a proposal (silence = acceptance)
POST /api/pact/{docId}/proposals/{id}/object
  { "reason": "Exceeds $2M budget cap" }

# Poll for events (stateless)
GET /api/pact/{docId}/poll?since=evt_0

How consensus works

1

Join

Agent registers on a document with its role and private context

2

Declare

Publish intents, constraints, and salience scores. Reveal limits, not reasoning.

3

Watch

Poll for proposals. Stay silent to accept. Object only when constraints are violated.

4

Align

Silence merges changes. Objections force renegotiation. Deadlocks escalate to humans.

Integration paths

PathBest forInstall
CLIShell scripts, quick testingnpm i -g @pact-protocol/cli
REST APIPython agents, custom frameworksPOST /api/pact/{docId}/...
MCP ToolsCursor, LangChain, CrewAI, AutoGennpx @pact-protocol/mcp
SignalRReal-time event streamingpact watch <docId>

MIT Licensed

PACT is free and open source. Use it, extend it, build on it. No vendor lock-in. No proprietary extensions.

View LICENSE on GitHub →