Agent2Profile Protocol
The open standard for user-sovereign AI profiles.
Your preferences. Your memories. Your control.
User Ownership
Your AI profile belongs to you via decentralized identity. Not to AI companies.
Portable
Take your preferences to any AI agent. Switch providers without losing context.
Privacy-First
Granular consent controls. You decide what each agent can see.
Compliant
GDPR and EU AI Act requirements built into the protocol.
The Problem¶
Today, when you use AI assistants, your preferences and context are trapped in silos:
graph LR
subgraph "Current State"
U[You] --> A1[ChatGPT<br/>Your Data]
U --> A2[Claude<br/>Your Data]
U --> A3[Gemini<br/>Your Data]
end
style U fill:#7c3aed,stroke:#a78bfa,color:#fff
style A1 fill:#ef4444,stroke:#fca5a5,color:#fff
style A2 fill:#ef4444,stroke:#fca5a5,color:#fff
style A3 fill:#ef4444,stroke:#fca5a5,color:#fff - Switch AI providers? Start from scratch.
- Want to know what they stored? Good luck.
- Exercise your GDPR rights? Per vendor.
The Solution¶
With a2p, you own your profile and share it selectively:
graph LR
subgraph "With a2p"
P[Your Profile<br/>You Own It] --> A1[ChatGPT]
P --> A2[Claude]
P --> A3[Gemini]
end
style P fill:#10b981,stroke:#34d399,color:#fff
style A1 fill:#3b82f6,stroke:#93c5fd,color:#fff
style A2 fill:#3b82f6,stroke:#93c5fd,color:#fff
style A3 fill:#3b82f6,stroke:#93c5fd,color:#fff - One profile that you control
- Portable across any compliant agent
- Granular permissions per agent
- Built-in compliance with EU regulations
Quick Start¶
import { A2PClient } from '@a2p/sdk';
const client = new A2PClient({
agentDid: 'did:a2p:agent:local:my-agent'
});
// Request access to user profile
const profile = await client.getProfile({
userDid: 'did:a2p:user:local:alice',
scopes: ['a2p:preferences', 'a2p:interests'],
purpose: {
type: 'personalization',
description: 'Tailor responses to your preferences'
}
});
// Propose a memory
await client.proposeMemory({
userDid: 'did:a2p:user:local:alice',
content: 'Prefers concise responses',
category: 'a2p:preferences.communication',
confidence: 0.85
});
from a2p import A2PClient
client = A2PClient(agent_did="did:a2p:agent:local:my-agent")
# Request access to user profile
profile = await client.get_profile(
user_did="did:a2p:user:local:alice",
scopes=["a2p:preferences", "a2p:interests"],
purpose={
"type": "personalization",
"description": "Tailor responses to your preferences"
}
)
# Propose a memory
await client.propose_memory(
user_did="did:a2p:user:local:alice",
content="Prefers concise responses",
category="a2p:preferences.communication",
confidence=0.85
)
How It Works¶
Create Your Profile
Set up your a2p profile with your preferences, interests, and context.
Set Your Rules
Define consent policies: who can access what, for what purpose.
Agents Request Access
AI agents request access with a declared purpose. You approve or deny.
Agents Propose, You Approve
Agents suggest new memories. You review and approve before storage.
Framework Adapters¶
Use a2p with your favorite AI frameworks:
Built for Compliance¶
πͺπΊ GDPR
- Purpose limitation
- Consent management
- Data subject rights
- Audit trails
π€ EU AI Act
- Risk classification
- Transparency obligations
- Human oversight
- Record-keeping
a2p in the Ecosystem¶
a2p is complementary to major protocols and frameworks:
| Protocol/Framework | Focus | Relationship with a2p |
|---|---|---|
| A2A | Agent-to-Agent communication | β Complementary - a2p provides user context for A2A agents |
| MCP | AI assistant tool integration | β Complementary - a2p profiles exposed as MCP resources |
| Solid | Decentralized data storage | β Infrastructure partner - a2p can use Solid Pods |
| OpenID Connect | Authentication | β Complementary - different layer (auth vs profiles) |
| LangChain | Agent framework | β Integration - a2p as memory backend |
Key Message: a2p doesn't compete with theseβit fills the user profile gap they all need.
Open Source & EU-Made¶
EUPL-1.2
European Union Public License - designed for EU legal frameworks
πͺπΊ Made in EU
Developed in Madrid, Spain with EU digital sovereignty in mind
Ready to Get Started?
Build AI agents that respect user sovereignty.