Skip to main content

Agent Privacy-Preserving Protocol - AP3

Project description

AP3 - Agent Privacy-Preserving Protocol

AP3 is a protocol for privacy-preserving computation between autonomous agents

What is AP3?

AP3 is designed to solve a critical challenge in the emerging agentic economy:
How can AI agents collaborate on sensitive computations while maintaining data confidentiality and competitive advantage?

Traditional agent communication requires data sharing, which creates risks:

  • Competitive Intelligence Leakage: Proprietary algorithms, cost structures, and business strategies could be exposed
  • Regulatory Compliance Issues: Data sharing may violate privacy regulations like GDPR and CCPA
  • Trust Barriers: Parties are reluctant to collaborate without cryptographic privacy guarantees

AP3 addresses these challenges by providing a standardized framework for privacy-preserving computation using advanced cryptographic techniques.

As the agentic economy grows, AP3 will become essential infrastructure for trusted, privacy-preserving computation between autonomous agents, enabling a new generation of collaborative AI applications that respect data sovereignty and competitive advantage.

Examples

Example Framework Description
psi_simple Plain Python Minimal two-process PSI sanctions check (initiator + receiver)
psi_adk_simple Google ADK Two ADK agents running PSI through chat with embedded AP3 servers
a2a-example A2A PSI layered onto standard A2A hello-world servers as middleware
ap3_playground Web UI Glass-box inspector: agent cards, envelopes, directives, audit timeline, tamper/replay scenarios

Each example has its own README with setup, Docker, and run instructions.

AP3 Documentation

Install the docs dependencies and run mkdocs serve to view the documentation locally:

uv sync
uv pip install -r requirements.txt
uv run mkdocs serve

Build the static site into site/:

uv run mkdocs build --clean

AP3 SDK

Key Docs:

Installation

Requires Python 3.11+.

uv sync && source .venv/bin/activate

Usage

Private Set Intersection

Note: PSI is implemented in pure Python on top of rbcl (libsodium / Ristretto255) and merlin_transcripts — installs on any platform those wheels support (macOS, Linux, Windows; x86_64 and arm64).

from ap3_functions import PSIOperation

initiator = PSIOperation()   # OB: holds the customer to check
receiver  = PSIOperation()   # BB: holds the sanction list

sanction_list = ["Jane Smith,S001,456 Elm St", "Bob Brown,S002,789 Oak Ave"]

# OB opens the session (no sid commitment yet — wire-level kick-off).
init = initiator.start(role="initiator", inputs={"customer_data": "John Doe,ID123,123 Main St"})

# BB receives the kick-off and replies with msg0 carrying sid_1.
msg0 = receiver.receive(role="receiver", message=init["outgoing"], config={"sanction_list": sanction_list})

# OB picks sid_0, derives session_id = H(sid_0, sid_1), sends sid_0 + psc_msg1.
msg1 = initiator.process(session_id=init["session_id"], message=msg0["outgoing"])

# BB recomputes session_id, runs PSC, returns the result message.
msg2 = receiver.process(session_id=msg0["session_id"], message=msg1["outgoing"])

# OB finalizes.
final = initiator.process(session_id=init["session_id"], message=msg2["outgoing"])
is_match = final["result"]["is_match"]

The session_id is contributory: BB commits sid_1 before OB picks sid_0, so neither party alone can choose the session_id. Most applications never call these methods directly — PrivacyAgent.run_intent() drives the full exchange over A2A automatically.

Folder structure

ap3/
├── src/ap3/                          # Core SDK (publishes as `ap3`)
│   ├── types/                        # Pydantic models
│   ├── core/                         # Session, envelopes, directives
│   ├── services/                     # Commitment & discovery services
│   ├── signing/                      # Ed25519 keys & signatures
│   └── a2a/                          # A2A middleware integration
├── packages/
│   └── ap3-functions/                # Distribution: `ap3-functions`, import: `ap3_functions`
│       └── ap3_functions/            # Pure-Python protocol implementations
│           └── psi/                  # Private Set Intersection
└── examples/
    ├── psi_simple/                   # Minimal Python PSI demo
    ├── psi_adk_simple/               # PSI with Google ADK agents
    ├── a2a-example/                  # PSI as A2A middleware
    └── ap3_playground/               # Glass-box inspector UI

License

Licensed under the Apache License, Version 2.0. See LICENSE.

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

ap3-1.2.0.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

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

ap3-1.2.0-py3-none-any.whl (57.2 kB view details)

Uploaded Python 3

File details

Details for the file ap3-1.2.0.tar.gz.

File metadata

  • Download URL: ap3-1.2.0.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.18

File hashes

Hashes for ap3-1.2.0.tar.gz
Algorithm Hash digest
SHA256 7eeff58bea8ea6eaf6d94835cf99bf286d5c1bbba8bb06dd6f2f1db086fb7b58
MD5 5b03607d9a0668ebd4fff9262c7508c6
BLAKE2b-256 d821fce4e586355b9bd4e9ab0cf8a5c5f4d5d37d5b711ef1699b1411872799cf

See more details on using hashes here.

File details

Details for the file ap3-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: ap3-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 57.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.18

File hashes

Hashes for ap3-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13a29f1eda640f7e70d2f40b7cca49f8bce49a6fdafda0c986a58ad52422e68a
MD5 2b50e7fa516335fda91a7f821a21f331
BLAKE2b-256 73d2c257b2a703e0cfff5287495e6df5052fd7fb69ff4ac5919fcdf3b2b47d99

See more details on using hashes here.

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