adp-manifest
A Python reference implementation of the Agent Deliberation Protocol (ADP) specification — the consensus protocol that multi-agent systems use to reach calibrated, falsifiable decisions together. ADP defines proposals, weights, tallies, falsification, termination, and reversibility tiers.
This library is one of several reference implementations (TypeScript) of the same spec. The spec itself is at adp-manifest.dev and is the source of truth; this library implements what the spec says.
Zero runtime dependencies. Requires Python 3.10+.
Looking for a runnable agent? This library is the protocol core — data types, weighting math, and an in-memory orchestrator. For a full federation-ready agent runtime with HTTP endpoints, journal persistence, Ed25519 signing, signed calibration snapshots, ACB pricing, and MCP integration, install
@ai-manifests/adp-agent(TypeScript/Node).
Install
pip install adp-manifest
Or from source:
git clone https://github.com/ai-manifests/adp-ref-lib-py.git
cd adp-ref-lib-py
pip install -e .
Quick example
from adp_manifest import (
DeliberationOrchestrator,
DeliberationConfig,
Proposal,
Stake,
Justification,
Vote,
StakeMagnitude,
CalibrationScore,
compute_weight,
)
proposal = Proposal(
agent_id="did:adp:test-runner-v1",
domain="code.correctness",
vote=Vote.APPROVE,
confidence=0.82,
stake=Stake(magnitude=StakeMagnitude.MEDIUM, domain="code.correctness"),
justification=Justification(rationale="all tests pass", evidence_refs=[]),
dissent_conditions=[],
)
calibration = CalibrationScore(value=0.78, sample_size=42)
weight = compute_weight(proposal, calibration)
# weight ≈ 0.82 × 0.78 × stake_factor(MEDIUM) × sample_size_discount(42)
API
All public symbols are exported from the adp_manifest package root.
Enums & primitive types
Vote, ReversibilityTier, DissentConditionStatus, TerminationState, StakeMagnitude
Protocol types
Proposal, ProposalAction, BlastRadius, DomainClaim, Justification, Stake, DissentCondition, VoteRevision, Amendment, CalibrationScore, AgentRegistration, TallyResult
Weighting functions
compute_weight(proposal, calibration)— canonical proposal weight per ADP §4.2compute_decay(age, half_life)— time decay of calibration evidencestake_factor(magnitude)— mapsStakeMagnitudeto its numeric factorapply_sample_size_discount(weight, n)— Wilson-interval sample-size discount
Orchestrator
DeliberationOrchestrator— in-memory state machine that runs a deliberation through proposal → tally → falsification → termination. Takes aDeliberationConfig. Intended for prototypes, tests, and embedded-in-process use. For production distributed deliberation, see@ai-manifests/adp-agent(TypeScript/Node).
Testing
pip install -e .[dev]
pytest
Spec
This library implements the Agent Deliberation Protocol specification. Read the spec at adp-manifest.dev. If the spec and this library disagree, the spec is correct and this is a bug.
License
Apache-2.0 — see LICENSE for the full license text and NOTICE for attribution.
Metadata
Release files for adp-manifest 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| adp_manifest-1.0.0.tar.gz | 15.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| adp_manifest-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.1 kB
Release files / adp_manifest-1.0.0.tar.gz
| Download URL | adp_manifest-1.0.0.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9256e94c4bba698986f8459a76509222f9260c8dc6c8b999b83af561a16c36aa
|
|
BLAKE2b-256 checksum How to use checksums |
9d3621f584276c343c763755aaf6311b5e6ba31feabfbcf24e4cc4dc775b634b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|
Release files / adp_manifest-1.0.0-py3-none-any.whl
| Download URL | adp_manifest-1.0.0-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
226c85362a4437f8ecb4e0cbfb52e398c647a737033a638b844c8eb6c6d5a1e0
|
|
BLAKE2b-256 checksum How to use checksums |
d78ccd4796fc4a03eac028b846de2f6deba7e851f85769bde79264a6b12d00c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|