Every conversation is a session between a companion and a specific user. We manage what was said, what the companion should remember, and how that context shapes future interactions.
Conversations
A conversation session ties together a companion, a user, and a message history. The companion applies its full personality and backstory to every response — it doesn't need system prompt injection on each message.
Messages can include text, images, and media. The companion can receive visual context (what the user is sharing) and respond accordingly.
Memory
Memory is per-user, scoped to the companion. Two users talking to the same companion have completely independent memory contexts.
The memory system tracks what matters across sessions:
- Facts — things the user has shared about themselves
- Preferences — patterns the companion has observed
- History — what happened in past sessions that the companion should carry forward
The companion picks up where it left off. If a user mentioned their dog's name three sessions ago, the companion can reference it naturally.
Memory is maintained automatically. You don't write to it directly — the companion updates its own memory as conversations progress.
Sessions
A session represents an active conversation. Sessions can be long-running (persistent connection, suitable for voice and avatar) or short (single turn, suitable for async messaging or notifications).
At the start of each session, the companion has full access to its memory of this user. At the end, relevant context is persisted.
Related APIs
See the API Reference for conversation session and message endpoints.

