Preference Graph
At the heart of PrefID is the Preference Graph — a structured representation of user preferences across multiple domains.Domains
Preferences are organized into domains — logical groupings that represent different aspects of user identity.music_preferences
music_preferences
Musical tastes, favorite artists, genres, streaming habits, and mood-based listening patterns.Signals: Spotify listening history, explicit preferences, concert attendance
food_profile
food_profile
Dietary restrictions, favorite cuisines, allergies, cooking preferences, and restaurant favorites.Signals: Order history, explicit preferences, restaurant reviews
travel_profile
travel_profile
Travel style, preferred airlines/hotels, destination preferences, and booking patterns.Signals: Booking history, travel reviews, explicit preferences
coding_profile
coding_profile
Programming languages, frameworks, editor preferences, and coding style.Signals: GitHub activity, explicit preferences, project analysis
finance_profile
finance_profile
Investment style, risk tolerance, and financial preferences.Signals: Explicit preferences, risk assessments
general_profile
general_profile
Name, communication style, interests, and general preferences.Signals: User-provided information, behavioral analysis
Atoms
Atoms are the smallest unit of preference data. Each atom represents a single preference signal.Atom Properties
| Property | Description |
|---|---|
atom_id | Unique identifier for the atom |
domain | The domain this atom belongs to |
key | The preference key (e.g., “favorite_artist”) |
value | The preference value |
confidence | Confidence score (0.0 - 1.0) |
source | Where this preference was learned from |
Agent Hints
Agent Hints are structured prompts generated from the preference graph, designed to be injected into AI context.Scopes
OAuth scopes control what data applications can access:| Scope | Access |
|---|---|
preferences:read | Read all preferences |
preferences:write | Write preferences |
music_preferences | Read music domain only |
food_profile | Read food domain only |
travel_profile | Read travel domain only |
coding_profile | Read coding domain only |
agent_hints | Access agent hints endpoint |
Semantic Firewall™
The Semantic Firewall protects user preferences from unauthorized access and ensures data quality:1
Input Validation
All preference updates are validated against domain schemas
2
Scope Enforcement
Applications can only access scopes the user granted
3
Audit Logging
All access is logged for user transparency
4
User Corrections
Users can suppress incorrect preferences via “This Doesn’t Fit Me”