Skip to content

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

1

Create Your Profile

Set up your a2p profile with your preferences, interests, and context.

2

Set Your Rules

Define consent policies: who can access what, for what purpose.

3

Agents Request Access

AI agents request access with a declared purpose. You approve or deny.

4

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.