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 purposesUser 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 purposesUser 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 purposesCommunication 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 purposesAccessibility 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 purposesSchedule 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 purposesAttention 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.