Skip to main content

Overview

PrefID organizes user preferences into profiles — structured collections of preference atoms that define how AI agents should interact with users. Each profile serves a specific purpose and can be selectively exposed to different agents and companies.

Core Behavioral Profiles

These profiles control how AI reasons and interacts with users. They’re the highest-value profiles for AI agents.
Purpose: Controls how AI structures reasoning and responses
AtomDescription
prefers_stepwise_reasoningShow step-by-step thought process
prefers_summary_firstLead with conclusions, details after
prefers_decision_recommendationProvide clear recommendations
Useful for: OpenAI, Anthropic, IDEs, Enterprise copilots
Consumed by: ChatGPT, Claude, Coding agents, Strategy agents
Purpose: Defines tone, formality, and brevity preferences
AtomDescription
prefers_direct_toneGet to the point quickly
dislikes_fluffAvoid unnecessary pleasantries
formal_languageUse professional language
Useful for: Customer support platforms, CRM tools
Consumed by: Support bots, Sales bots, HR assistants
Purpose: Determines who drives the interaction
AtomDescription
agent_should_suggestAI proactively offers suggestions
agent_should_waitAI waits for explicit prompts
Useful for: Agent platforms, workflow automation
Consumed by: Autonomous agents, Task planners
Purpose: Precision vs ambiguity tolerance
AtomDescription
demands_precisionRequires exact, detailed answers
tolerates_ambiguityComfortable with uncertainty
Useful for: Legal tech, research platforms
Consumed by: Legal AI, Research assistants
Purpose: Speed vs depth of interaction
AtomDescription
fast_iterationsQuick back-and-forth preferred
deep_deliberationThorough, slower exploration
Useful for: Developer tools, startup tooling
Consumed by: Coding agents, Product managers
Purpose: How decisions should conclude
AtomDescription
single_recommendationGive one clear answer
wants_tradeoffsPresent options with pros/cons
Useful for: Consulting AI, finance tools
Consumed by: Advisory agents, Strategy bots
Purpose: Reaction to AI mistakes
AtomDescription
zero_toleranceErrors are unacceptable
fail_fastPrefer quick failure over slow uncertainty
Useful for: Fintech, infrastructure tools
Consumed by: Infra agents, Finance bots
Purpose: Permission levels for AI actions
AtomDescription
wants_ai_initiativeAI can act independently
confirm_before_actionsAlways ask before doing
Useful for: Automation platforms
Consumed by: Action-taking agents

Content & Domain Profiles

These profiles capture preferences within specific life domains. Selectively exposed based on app context.
Purpose: Travel style and constraints
AtomDescription
adventure_focusedPrefers unique experiences
moderate_budgetMid-range spending
prefers_airbnbHome rentals over hotels
Useful for: Booking.com, Airbnb, travel startups
Consumed by: Travel planners, Concierge agents
Purpose: Diet and food behavior
AtomDescription
prefers_light_foodAvoids heavy meals
vegetarian_friendlyPlant-based preferences
spice_tolerance_highEnjoys spicy food
Useful for: Food delivery, hospitality
Consumed by: Food recommendation agents
Purpose: Listening patterns
AtomDescription
cinematic_musicEpic, orchestral preferences
low_energyCalm, relaxing music
genre_indian_classicalCultural preferences
Useful for: Spotify, Apple Music
Consumed by: Playlist agents
Purpose: Brands, size, spending style
AtomDescription
avoids_luxuryPrice-conscious
brand_loyalSticks to known brands
size_mediumClothing size info
Useful for: Shopify merchants
Consumed by: Commerce agents
Purpose: Movies, shows, gaming
AtomDescription
prefers_slow_burnLoves character development
avoids_horrorGenre exclusions
Useful for: Streaming platforms
Consumed by: Content discovery agents
Purpose: Physical activity patterns
AtomDescription
hiking_focusedOutdoor activities
recovery_daysRest preferences
Useful for: Health apps, wearables
Consumed by: Fitness coaches
Purpose: Wellness preferences (non-medical)
AtomDescription
avoids_heavy_foodDietary wellness
prefers_low_stressCalm environments
Useful for: Wellness startups
Consumed by: Health advisory agents
Purpose: Style & apparel preferences
AtomDescription
minimal_styleClean, simple aesthetics
neutral_colorsColor preferences
Useful for: Fashion brands, Myntra
Consumed by: Styling agents
Purpose: Books & learning content
AtomDescription
prefers_nonfictionGenre preference
long_form_contentArticle length preference
Useful for: Publishers, EdTech
Consumed by: Reading recommendation agents

Professional / B2B Profiles

These profiles serve enterprise and productivity use cases.
Purpose: Development stack and coding style
AtomDescription
prefers_typescriptLanguage preference
avoids_prismaORM preference
functional_styleCoding paradigm
Useful for: GitHub, IDEs, SaaS dev tools
Consumed by: Coding assistants
Purpose: Career goals and skills
AtomDescription
growth_orientedCareer motivation
leadership_trackManagement aspiration
Useful for: LinkedIn, Coursera
Consumed by: Career advisors
Purpose: Learning style preferences
AtomDescription
prefers_examples_over_theoryLearning method
visual_learnerContent format
Useful for: EdTech platforms
Consumed by: Tutors
Purpose: Work habits
AtomDescription
deep_work_blocksFocus time preference
async_communicationCommunication style
Useful for: Enterprise SaaS
Consumed by: Work assistants
Purpose: Team vs solo work style
AtomDescription
solo_operatorIndependent work preference
consensus_seekerTeam decision style
Useful for: GitHub, Jira
Consumed by: Team agents
Purpose: Reliance on AI
AtomDescription
seeks_validationWants AI confirmation
independent_thinkerUses AI as tool, not authority
Useful for: Coaching platforms
Consumed by: Coaching agents

Meta & Governance Profiles

These profiles define boundaries and constraints for AI behavior. This is PrefID’s competitive moat.
Purpose: What AI can remember
AtomDescription
explicit_memory_onlyOnly remember what user says to
session_onlyForget after conversation
Useful for: Privacy-first platforms
Consumed by: All agents
Purpose: Hard vs soft limits
AtomDescription
hard_constraintsNon-negotiable limits
deadline_drivenTime-bound decisions
Useful for: Planning software
Consumed by: Scheduling agents
Purpose: How authoritative AI can be
AtomDescription
accepts_directivesAI can give commands
advisory_onlyAI only suggests, never commands
Useful for: Enterprise AI
Consumed by: Executive agents
Purpose: Regulatory sensitivity
AtomDescription
requires_citationsNeeds sources for claims
audit_readyMaintains decision trail
Useful for: Banks, Healthcare
Consumed by: Compliance agents
Purpose: How feedback is delivered
AtomDescription
direct_feedbackBlunt, honest feedback
gentle_feedbackSoftened delivery
Useful for: Coaching apps
Consumed by: Mentorship agents
Purpose: Short vs long term intent
AtomDescription
long_term_plannerStrategic thinking
opportunisticTactical, flexible
Useful for: Strategy platforms
Consumed by: Planning agents

Emerging Profiles

Experimental profiles with high upside. Ship carefully.
Purpose: Novelty appetite
AtomDescription
novelty_seekingWants new experiences
prefers_familiarSticks to known
Useful for: Travel, discovery startups
Consumed by: Discovery agents
Purpose: Physical context sensitivity
AtomDescription
altitude_sensitiveHealth at altitude
heat_averseTemperature preference
Useful for: Outdoor platforms
Consumed by: Context-aware agents
Purpose: Available resources
AtomDescription
low_bandwidthLimited connectivity
offline_modeWorks without internet
Useful for: Emerging markets apps
Consumed by: Offline agents
Purpose: Sophistication level
AtomDescription
refined_preferencesDiscerning taste
trend_fatigueAvoids hype
Useful for: Luxury & culture brands
Consumed by: Curation agents
Purpose: Agent boundary limits
AtomDescription
do_not_assume_intentNever infer user intent
Useful for: Enterprise
Consumed by: Guardrail agents

Accessing Profiles

// Get a specific profile
const thinkingProfile = await prefid.getPreferences('thinking_profile', {
  accessToken: userToken
});

// Get multiple profiles
const profiles = await prefid.getPreferences([
  'thinking_profile',
  'communication_profile',
  'autonomy_profile'
], {
  accessToken: userToken
});

// Get agent hints (summarized for context injection)
const hints = await prefid.getAgentHints({
  accessToken: userToken,
  domains: ['thinking_profile', 'communication_profile'],
  maxTokens: 100
});

Scope Requirements

Each profile requires its corresponding scope:
thinking_profile → thinking:read
communication_profile → communication:read
travel_profile → travel:read
// etc.
Request only the scopes you need.