Overview
| Aspect | Details |
|---|---|
| Data Type | Structured fields (name, preferred_name, custom) |
| Scope | Per user (identified by user_id) |
| Persistence | Forever (updated as new info is learned) |
| Default Mode | ALWAYS |
| Supported Modes | ALWAYS, AGENTIC |
Basic Usage
ALWAYS Mode (Default)
In ALWAYS mode, profile information is extracted automatically after each conversation turn:- Extraction happens in parallel with the agent’s response
- No tools are visible to the agent
- All conversations are analyzed for profile info
- Extra LLM call per interaction
AGENTIC Mode
In AGENTIC mode, the agent gets anupdate_user_profile tool and decides when to update:
- Agent receives
update_user_profiletool - Agent decides when profile updates are warranted
- No extra LLM calls
- More selective updates
Default Profile Fields
The baseUserProfile schema includes:
| Field | Type | Description |
|---|---|---|
name | str | User’s full name |
preferred_name | str | Name they prefer to be called |
Custom Profile Schemas
Extend the base schema for your domain:Accessing Profile Data
Via Agent
Debug Output
Context Injection
When a user interacts with the agent, their profile is automatically injected into the system prompt:User Profile vs User Memory
| User Profile | User Memory |
|---|---|
| Structured fields | Unstructured text |
| Fixed schema | Flexible observations |
| Updated in place | Appended over time |
| Exact recall | Semantic search |