Personalization Engine
Models user preferences and identity to tailor interactions.
:User-[:PREFERS]->:Preference)Purpose
The Personalization Engine ensures the agent adapts to the specific user over time. It infers preferences from interactions and explicitly reconciles conflicting information to build a coherent user model.
Key Features
- Inference: Automatically infers preferences from chat hints (e.g., "I hate Python" →
lang: python, sentiment: negative). - Reconciliation: Resolves conflicting preferences via LLM strategies (e.g., changing taste over time).
Functional Deep Dive
Inference
The engine analyzes chat history to find patterns. If a user repeatedly asks for Python code, it infers prefers_language: python without the user explicitly stating it.
Reconciliation
Uses an LLM to merge conflicting preferences. If an old preference says "Likes Java" and a recent one says "Hates Java", the engine updates the graph to "Hates Java" with high confidence, treating it as a preference update.
Inference Diagram
API Reference
Personalization Engine provides endpoints for managing user preferences.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/memory/v1/personalization/preferences | Add user preference |
| GET | /api/memory/v1/personalization/preferences/user_id | Get user preferences |
| PUT | /api/memory/v1/personalization/preferences/preference_id | Update preference |
| DELETE | /api/memory/v1/personalization/preferences/preference_id | Delete preference |
| POST | /api/memory/v1/personalization/context | Get personalized context |
| POST | /api/memory/v1/personalization/infer | Infer preferences |
| POST | /api/memory/v1/personalization/reconcile | Reconcile preferences |
SDK Reference
The Functor SDK provides a Python interface for personalization operations.