Sovant

Core Concepts

Understanding the fundamental building blocks of Sovant.

Memories

Memories are the core unit of storage in Sovant. Each memory represents a piece of information about a user.

Memory Types

  • journal - General notes, meeting summaries, session logs (default)
  • preference - User preferences and settings
  • observation - Behavioral patterns and actions
  • insight - Derived understanding and analysis
  • task - Action items and reminders

Memory Structure

{
  "id": "mem_abc123",
  "user_id": "user_123",
  "type": "preference",
  "content": "Prefers email over phone calls",
  "metadata": {
    "source": "settings",
    "confidence": 0.95
  },
  "thread_id": "thread_xyz",
  "created_at": "2024-01-15T10:30:00Z"
}

Threads

Threads group related memories together, typically representing a conversation or session.

Use Cases

  • Chat conversations
  • Support tickets
  • User sessions
  • Transaction flows

Semantic Search

Find memories using natural language queries powered by vector embeddings.

How It Works

  1. Query is converted to embeddings
  2. Similar memories are found via vector search
  3. Results ranked by relevance score (0-1)

Hybrid Recall

Recall is Sovant's advanced retrieval pipeline, combining multiple strategies for conversational queries like "What do you know about me?".

Pipeline Stages

  1. Profile fast-path — deterministic lookup for known user facts (name, location, etc.)
  2. Lexical matching — keyword-based retrieval for exact terms
  3. Semantic search — vector similarity for meaning-based matches
  4. Thread scoping — when a thread_id is provided, results are scoped to that conversation

Use recall for conversational queries. Use search for topic-based lookup.

Metadata

Attach custom data to memories for filtering and enrichment.

Common Patterns

  • source - Where the memory originated
  • confidence - How certain the information is
  • tags - Categories for organization
  • timestamp - When events occurred

Best Practices

  1. Use appropriate types - Choose the right memory type for clarity
  2. Add metadata - Enrich memories with context
  3. Link to threads - Group related memories
  4. Set confidence - Indicate certainty levels
  5. Regular cleanup - Remove outdated memories