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.
View 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 Guide - Setup instructions
- Configuration - Environment setup
- Quick Start - First steps
- API Reference - Complete API docs
- Troubleshooting - Common issues
Features
- Private Set Intersection (PSI) - Check memberships without revealing sets
- Commitment System - Cryptographic data commitments
- Agent Integration - Works with Google ADK, A2A protocol
- Experimental proof fields - Result directives include placeholder
OperationProofsfields for wiring/testing only (not cryptographic proofs yet)
Installation
Requires Python 3.11+.
uv sync && source .venv/bin/activate
Usage
Private Set Intersection
Note: PSI calls a native binary (
libsanction_check_lib) bundled inpackages/ap3-functions/ap3_functions/psi/binaries/. macOS (.dylib) and Linux (.so) are supported natively.
from ap3_functions import PSIOperation
initiator = PSIOperation()
receiver = PSIOperation()
sanction_list = ["Jane Smith,S001,456 Elm St", "Bob Brown,S002,789 Oak Ave"]
# Initiator starts the protocol
init_result = initiator.start(role="initiator", inputs={"customer_data": "John Doe,ID123,123 Main St"})
session_id = init_result["session_id"]
# Receiver processes msg1 against its sanction list
recv_result = receiver.receive(
role="receiver",
message=init_result["outgoing"],
config={"sanction_list": sanction_list},
)
# Initiator processes msg2 and gets the result
final = initiator.process(session_id, recv_result["outgoing"])
is_match = final["result"]["is_match"]
🏗️ Architecture
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/ # Protocol implementations (FFI to Rust)
│ └── 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ap3-1.1.0.tar.gz.
File metadata
- Download URL: ap3-1.1.0.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fed5e636d8b5998b767f140f66d7074714bf0adaf4e1772e8b33fe92c4b7cab3
|
|
| MD5 |
537a6eed446e3a92d933eca1441f348c
|
|
| BLAKE2b-256 |
9edeeb76587dbf62bbc6c71e3cf55e44dc664d32e774df6f44585ee275bf0d98
|
File details
Details for the file ap3-1.1.0-py3-none-any.whl.
File metadata
- Download URL: ap3-1.1.0-py3-none-any.whl
- Upload date:
- Size: 55.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52e316a41b3b5938d60473288d83351f7b79658cce9f9300b2f1b1bc19e94754
|
|
| MD5 |
bddbe684f49205405dbb0c87ef417106
|
|
| BLAKE2b-256 |
80dc7c3ef62e7301e3028b022f961ab3d9034476c036c28f6ab0b0a7b6976613
|