Overview
The Conversation Metadata API allows you to set metadata for a chat session, including participant details, scene descriptions, and tags. This metadata directly influences how the LLM extracts and retrieves memories.Setting accurate
user_details helps EverMemOS correctly attribute memories to the right participants and improves personalization in multi-user conversations.Key Field: user_details
The user_details field is a dictionary where each key is a user_id and the value contains participant information:
| Field | Type | Description |
|---|---|---|
full_name | string (required) | Display name of the participant |
role | string | Role in the conversation (e.g., developer, manager, customer) |
extra | object | Custom key-value pairs for additional context |
How user_details Affects LLM Behavior
Memory Extraction
- Role-aware summarization: A
manager’s decision carries different weight than adeveloper’s suggestion - Name resolution: Correctly links nicknames or mentions to the right person
- Context enrichment:
extrafields (e.g., department, expertise) help the LLM understand domain-specific references
Memory Retrieval
- Scoped search: Queries can be filtered by participant
- Relevance boosting: User roles influence ranking when searching for decisions or preferences
- Relationship inference: LLM can infer connections between users based on roles
API Usage
Create Conversation Metadata
UsePOST /api/v1/memories/conversation-meta to initialize metadata for a new chat session.
Best Practices
Always set user_details before sending messages
Always set user_details before sending messages
Call the Metadata API before sending the first message to a new
group_id. This ensures all memories are extracted with proper participant attribution from the start.Use meaningful roles
Use meaningful roles
Roles like
product_manager, customer, support_agent help the LLM understand the speaker’s perspective. Avoid generic roles like user or member.Leverage the extra field for domain context
Leverage the extra field for domain context
Add fields relevant to your use case:
- Enterprise:
department,title,seniority - Education:
grade,subjects,learning_style - Healthcare:
specialty,care_team_role
Keep user_details in sync
Keep user_details in sync
If a user’s role or information changes, update the Metadata promptly. Outdated metadata can lead to incorrect memory attribution.
Schema Reference
ConversationMetaCreateRequest
| Field | Type | Required | Description |
|---|---|---|---|
version | string | ✓ | Metadata version (e.g., "1.0") |
scene | string | ✓ | Scenario type: group_chat or assistant |
scene_desc | object | ✓ | Scene description with custom fields |
name | string | ✓ | Conversation name |
description | string | Conversation description | |
group_id | string | ✓ | Unique identifier for the chat |
created_at | string | ✓ | ISO 8601 timestamp |
default_timezone | string | Timezone (e.g., "UTC", "Asia/Shanghai") | |
user_details | object | Participant details dictionary | |
tags | array | List of tags for categorization |
UserDetailRequest
| Field | Type | Required | Description |
|---|---|---|---|
full_name | string | ✓ | Participant’s display name |
role | string | Role in the conversation | |
extra | object | Additional custom fields |