Skip to content

Concepts

Concepts are the generalized knowledge that emerges from consolidation. They're the persistent, meaningful output of Remind's memory system — what episodes become after the LLM "sleeps on" them.

Structure

Each concept has:

FieldDescription
idUnique identifier
titleShort descriptive title
summaryNatural language description of the generalized knowledge
concept_typeType of concept: pattern (generalizations), fact_cluster (grouped facts), or legacy (pre-existing)
confidenceHow certain (0.0–1.0), based on supporting evidence
instance_countHow many episodes support this concept
relationsTyped edges to other concepts
conditionsWhen/where this concept applies
exceptionsKnown cases where it doesn't hold
source_episodesEpisode IDs this was derived from
specificsFor fact_clusters: list of verbatim facts
evidenceKey quotes from source episodes
conflictsFor fact_clusters: detected conflicting facts
entity_idsEntities linked to this concept (union of source episodes' entities)
embeddingDense vector for similarity retrieval
tagsSearchable tags
topicKnowledge area this concept belongs to (e.g., "architecture", "product")
decay_factorRetrieval priority weight (affected by memory decay)

How concepts differ from episodes

EpisodesConcepts
NatureSpecific, rawGeneralized, processed
Created byremember()Consolidation (LLM)
LifespanTemporary (consumed)Persistent
StructurePlain text + typeText + confidence + relations + conditions
RetrievalNot directly queriedPrimary retrieval target

Concept Types

Remind distinguishes between two types of knowledge:

Pattern Concepts

Generalizations extracted from observations, decisions, and outcomes. These capture abstract understanding:

Pattern: "The team favors statically typed languages for backend services"

  • Derived from multiple language preference observations
  • Generalizes across specific instances

Fact Clusters

Groups of related concrete facts, preserved verbatim:

Fact Cluster: "Redis Configuration"

  • Redis TTL: 300s
  • Redis connection pool: 10
  • Redis max memory: 2GB

Fact clusters never generalize away specific values. When facts conflict (e.g., different TTL values from different times), both are kept with conflict markers.

Legacy Concepts

Concepts created before dual-track was introduced. They continue to work normally and don't have a type badge.

Standalone Facts

Single fact episodes that don't share entities with other facts are not clustered. They remain as first-class retrieval targets via direct episode search. This avoids creating single-fact "clusters."

Concept quality

Good concepts are:

  • Specific and falsifiable — Making concrete claims, not abstract platitudes
  • Generalized (for patterns) — Not just restating a single episode, but abstracting across multiple
  • Verbatim (for facts) — Preserving exact values, configs, and technical details
  • Conditional — Stating when they apply, not claiming universal truth
  • Connected — Linked to related concepts via typed relations
  • Grounded — Traceable back to source episodes

Topics

Concepts can belong to a topic — a knowledge area like "architecture", "product", or "infra". Topics scope consolidation (episodes are grouped by topic before processing) and retrieval (queries can be filtered to a specific topic).

Concepts without a topic are treated as general knowledge accessible from any topic context.

Managing concepts

bash
# List all concepts
remind inspect

# View a specific concept with details
remind inspect <concept-id>

# Update a concept's summary
remind update-concept <id> -s "Refined understanding"

# Update confidence
remind update-concept <id> --confidence 0.9

# Reassign or clear topic (ID or name, same as remember)
remind update-concept <id> --topic product
remind update-concept <id> --clear-topic

# Soft delete
remind delete-concept <id>

# Restore
remind restore-concept <id>

TIP

Updating a concept's summary clears its embedding vector. The embedding is regenerated on the next recall query.

Released under the Apache 2.0 License.