Scopes

Scopes organize memories into logical categories. Each scope has specific allowed purposes and use cases, ensuring memories are only accessed for appropriate reasons.

What are Scopes?

Scopes are categories that organize user memories. They serve two main purposes:

  • Organization: Help organize memories into logical groups (preferences, constraints, communication, etc.)
  • Policy Enforcement: Each scope has a policy matrix that defines which purposes are allowed for accessing memories in that scope.

Available Scopes

preferences
2 purposes
User preferences and likes/dislikes. Used for personalization and recommendations.

Allowed Purpose Classes:

content_generationrecommendation

Example:

{ "domain": "food", "value": { "likes": [ "pizza", "sushi" ], "dislikes": [ "broccoli" ] } }
constraints
3 purposes
User constraints and rules. Used for filtering recommendations and enforcing boundaries.

Allowed Purpose Classes:

recommendationschedulingtask_execution

Example:

{ "domain": "dietary", "value": { "rules": [ "no nuts", "vegetarian" ] } }
communication
3 purposes
Communication preferences and style. Used for generating personalized content.

Allowed Purpose Classes:

content_generationnotification_deliveryui_rendering

Example:

{ "domain": null, "value": { "preferred_tone": "friendly", "use_emojis": true } }
accessibility
3 purposes
Accessibility preferences and requirements. Used for UI rendering and content adaptation.

Allowed Purpose Classes:

ui_renderingcontent_generationnotification_delivery

Example:

{ "domain": null, "value": { "high_contrast": true, "font_size": "large" } }
schedule
2 purposes
Schedule and availability information. Used for scheduling and task execution.

Allowed Purpose Classes:

schedulingtask_execution

Example:

{ "domain": "work", "value": { "windows": [ { "day": "monday", "start": "09:00", "end": "17:00" }, { "day": "tuesday", "start": "09:00", "end": "17:00" } ] } }
attention
2 purposes
Attention and focus preferences. Used for notification delivery and UI rendering.

Allowed Purpose Classes:

notification_deliveryui_rendering

Example:

{ "domain": null, "value": { "focus_mode": true, "do_not_disturb": false } }
Choosing the Right Scope

When storing a memory, choose the scope that best fits the type of information:

  • preferences: Use for user likes, dislikes, and general preferences
  • constraints: Use for rules, boundaries, and limitations
  • communication: Use for communication style and tone preferences
  • accessibility: Use for accessibility requirements and preferences
  • schedule: Use for time-based availability and scheduling information
  • attention: Use for focus and attention-related preferences
Domain Filtering

Domains are optional sub-categories within a scope. They allow you to further organize memories. For example, you might have preferences memories with domains like food, music, or movies.