Skip to main content

What are Traits?

Traits are structured attributes extracted from user conversations. Unlike unstructured memory, traits are:
  • Typed: String, number, boolean, array, or enum
  • Labeled: Each trait has a defined key and category
  • Scored: Confidence level from 0.0 to 1.0
  • Tracked: Source messages are recorded (optionally)

Trait Structure

Default Traits

GetProfile includes these default traits out of the box: Customize or extend this schema via JSON configuration files or dynamically per-request. See Trait Schema Configuration for details.

Confidence Scores

Confidence represents how certain GetProfile is about a trait value:
Traits with low confidence are still stored but may not be injected into prompts. Configure the confidenceThreshold in your trait schema.

Trait Sources

Trait Updates

When new information conflicts with existing traits:
  1. Higher confidence wins: New extraction with 0.8 confidence overrides existing 0.5
  2. Manual takes priority: Manually set traits are preserved unless explicitly updated
  3. Contradictions delete: If new info directly contradicts a trait, it’s deleted

Example: Trait Extraction

Given this conversation:
GetProfile extracts: