Core Concepts

Motivation Profiles

Understanding how AMP builds and maintains user motivation profiles.

What is a Motivation Profile?

A motivation profile is a dynamic, multi-dimensional representation of what drives a specific user to complete tasks. Unlike static user personas, AMP profiles continuously evolve based on real behavioural data.

Profile Structure

Each user's profile contains:

interface MotivationProfile {
  userId: string;

  // Core preferences
  preferredFraming: FramingType;          // How to present tasks
  communicationStyle: CommunicationStyle;  // How to communicate
  complexityPreference: ComplexityLevel;   // Level of detail
  encouragementLevel: EncouragementLevel;  // Amount of positivity

  // Learning metrics
  totalInteractions: number;
  completionRate: number;
  averageTimeToStart: number;
  flowStateFrequency: number;

  // Confidence scores
  framingConfidence: number;     // 0-1
  styleConfidence: number;        // 0-1
  complexityConfidence: number;   // 0-1

  // Contextual factors
  taskTypeAffinities: Record<string, number>;
  timeOfDayPatterns: TimePattern[];

  // Metadata
  createdAt: Date;
  lastUpdated: Date;
  profileVersion: string;
}

Profile Evolution

Phase 1: Cold Start (0-5 interactions)

When a new user arrives, AMP has minimal data. During this phase:

  • Uses population-level defaults from similar users
  • Explores different approaches (higher exploration rate)
  • Confidence scores start low (0.2-0.4)
  • Learns quickly from each interaction
// First interaction - cold start
const context = await amp.getContext({
  userId: "new_user_123",
  task: "build a feature"
});

// Returns exploratory recommendation
{
  suggestedFraming: "achievement",  // Population default
  confidence: 0.3,                   // Low confidence
  explorationMode: true              // Trying approaches
}

Phase 2: Learning (5-20 interactions)

As data accumulates, AMP begins to identify patterns:

  • Builds individual preference model
  • Reduces exploration, increases exploitation
  • Confidence scores increase (0.5-0.7)
  • Starts personalising recommendations

Phase 3: Optimised (20+ interactions)

With sufficient data, the profile becomes highly personalised:

  • High-confidence recommendations (0.7-0.95)
  • Fine-tuned to individual preferences
  • Detects and adapts to behaviour changes
  • Occasionally explores to avoid local maxima

Framing Types

AMP learns which task framing resonates with each user:

Achievement Framing

Focuses on completion and results

✓ Best for:

  • Goal-oriented users
  • Users who track progress
  • Competitive personalities

Example:

"Complete this feature to unlock the next level"

Learning Framing

Emphasises growth and exploration

✓ Best for:

  • Curious users
  • Those who value understanding
  • Growth mindset individuals

Example:

"Explore how authentication works by building this"

Micro-Task Framing

Breaks tasks into tiny, manageable steps

✓ Best for:

  • Users who feel overwhelmed
  • Those who procrastinate
  • Preference for clear next actions

Example:

"Just write the function signature first"

Challenge Framing

Presents tasks as puzzles to solve

✓ Best for:

  • Problem-solvers
  • Independent workers
  • Those who like to figure things out

Example:

"Can you implement this without using a library?"

Communication Styles

AMP adapts how information is delivered:

StyleCharacteristicsExample
Brief DirectiveConcise, action-focused, minimal context"Run npm install. Create login.tsx."
Detailed ExplanatoryIn-depth, educational, context-rich"First install dependencies because... Then create login.tsx which will handle..."
ConversationalFriendly, encouraging, approachable"Great! Let's start by installing the packages you'll need..."
TechnicalPrecise, jargon-heavy, assumes knowledge"Instantiate dependencies via package manager. Scaffold component hierarchy."

Complexity Handling

Different users need different levels of guidance:

  • Full Solution: Complete working code with explanation
  • Break Into Steps: Step-by-step guidance through the process
  • Hints Only: Clues and direction without direct answers
  • High Level: Conceptual approach without implementation details
// Example: Same task, different complexity approaches

// Full Solution
"Here's the complete login component with authentication logic..."

// Break Into Steps
"Step 1: Create the form component
Step 2: Add validation logic
Step 3: Connect to authentication service..."

// Hints Only
"Consider how form state should be managed.
Think about validation timing.
What happens after successful login?"

// High Level
"You'll need a form component that validates inputs,
communicates with your auth service, and handles the response."

Profile Updates

Profiles update automatically after each interaction. The update algorithm considers:

  • Outcome: Did the user start/complete the task?
  • Engagement: Time spent, flow state indicators
  • Satisfaction: Optional explicit feedback
  • Context: Task type, time of day, complexity
// Profile update after successful interaction
{
  // Increase confidence in successful approach
  framingConfidence: 0.75 → 0.82,

  // Update completion rate
  completionRate: 0.68 → 0.71,

  // Reinforce successful pattern
  preferredFraming: {
    "micro_task": 0.85,    // ↑ from 0.78
    "achievement": 0.42,   // ↓ slightly
    "learning": 0.31,      // ↓ slightly
    "challenge": 0.19      // unchanged
  }
}

Multi-Context Profiles

Users may behave differently in different contexts. AMP can maintain sub-profiles:

// Different preferences by task type
{
  userId: "user_123",
  contexts: {
    "coding": {
      preferredFraming: "challenge",
      communicationStyle: "brief_directive"
    },
    "learning": {
      preferredFraming: "learning",
      communicationStyle: "detailed_explanatory"
    },
    "debugging": {
      preferredFraming: "micro_task",
      communicationStyle: "technical"
    }
  }
}

Privacy & Data Retention

Profile data is handled securely:

  • User IDs are hashed and anonymised
  • Only behavioural patterns stored, not task content
  • Profiles can be deleted on request (GDPR compliance)
  • Inactive profiles archived after 90 days
  • All data encrypted at rest and in transit

💡 Pro Tip: You can manually update profiles using the updateProfile() API if you have explicit user preferences or want to accelerate learning.

Next Steps