Documentation Index
Fetch the complete documentation index at: https://docs.getcore.me/llms.txt
Use this file to discover all available pages before exploring further.
What labels are
Labels are workspace-scoped tags applied to episodes, sessions, and documents. They are flat (no hierarchies, no nesting) and unique per workspace. Each label has a name, an optional description, and a color.How labels scope search
Labels are the primary scoping mechanism in V2 search. The router (apps/webapp/app/services/search-v2/router.ts) embeds the query and runs vector search against the LABEL namespace defined in packages/providers/src/vector/constants.ts. The similarity threshold is controlled by env.SEARCH_LABEL_VECTOR_THRESHOLD.
The matched labels are passed to the LLM aspect-extraction step, which returns selectedLabels: string[], the labels actually relevant to the query intent. The LLM is forbidden from inventing label names not in the matched list.
Handlers then call getMatchedLabelIds() to produce the final label set: LLM-selected labels take priority, with a fallback to score-threshold filtering when the LLM picks none. Graph traversal is then scoped by labelIds.
When the workspace has no labels, or no label vector clears the threshold, handlers fall back to getEpisodesViaVectorSearch() against the EPISODE namespace. Labels are the fast path, vector-on-episodes is the recall safety net.
Creating labels
Labels are created from the CORE dashboard at Settings, Labels. Set a name, optional description, and color. They are available in the workspace immediately and can be applied to content during ingestion or after the fact.Filtering with labels at query time
The MCPmemory_search tool accepts labelIds as an option. Passing labelIds force-scopes the search to those labels and bypasses router selection, useful when the caller already knows the relevant project, client, or topic.
