Skip to main content

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.

When to use this page

Quick lookup for exact identifiers. For conceptual explanations, see the linked pages.

Statement aspects

CORE classifies every statement into one of 12 aspects. Six are stored as complete statements in the Aspects Store (VOICE_ASPECTS). The other six are decomposed into SPO triples and written to Neo4j.
AspectGroupStorage
IdentitygraphNeo4j SPO
KnowledgegraphNeo4j SPO
BeliefvoiceAspects Store
PreferencevoiceAspects Store
HabitvoiceAspects Store
GoalvoiceAspects Store
TaskvoiceAspects Store
DirectivevoiceAspects Store
DecisiongraphNeo4j SPO
EventgraphNeo4j SPO
ProblemgraphNeo4j SPO
RelationshipgraphNeo4j SPO
See memory/aspects for the full aspect model.

Entity types

CORE recognizes 11 entity types when extracting statements.
TypeDescriptionExample
PersonA human individual.Sarah Chen
OrganizationA company, team, group, or institution.CORE, Acme Inc.
PlaceA physical or virtual location.San Francisco, the warehouse
EventA bounded occurrence in time.Q3 launch, team offsite
ProjectA named initiative or workstream.Project Atlas
TaskA unit of work or todo.Ship the docs rewrite
TechnologyA tool, framework, language, or system.Neo4j, Postgres
ProductA shippable product or service.CORE Memory
StandardA protocol, spec, or norm.MCP, OAuth2
ConceptAn abstract idea, topic, or category.latency, retention
PredicateA relation type used in SPO triples.works_on, lives_in
See memory/entity_types for usage in extraction.

Query types

The router classifies every incoming query into one of 6 query types. Each type has a dedicated handler in apps/webapp/app/services/search-v2/handlers.ts.
TypeHandlerReturns
aspect_queryaspect handlerStatements from the Aspects Store filtered by aspect group.
entity_lookupentity lookup handlerFacts about a specific entity (broad) or a specific attribute (attribute mode).
temporaltemporal handlerStatements scoped to a time window.
temporal_facetstemporal facets handlerAggregated facets over a time window across topics, entities, or aspects.
exploratoryexploratory handlerBroad hybrid search across statements, episodes, and the graph.
relationshiprelationship handlerSPO triples and connections between entities.

Vector namespaces

CORE writes embeddings into 6 named namespaces. The TypeScript constant lives in packages/providers/src/vector/constants.ts.
NamespaceString valueUsed for
ENTITYentityEntity name embeddings, dedupe, and resolution.
STATEMENTstatementStatement fact embeddings.
EPISODEepisodeEpisode content embeddings.
COMPACTED_SESSIONcompacted_sessionCompacted session summary embeddings.
LABELlabelLabel embeddings used for search routing.
ASPECTvoice_aspectVoice aspect dedupe in the Aspects Store.

Router output shape

The router (apps/webapp/app/services/search-v2/router.ts) returns a RouterOutput object that downstream handlers consume.
{
  "matchedLabels": [{ "labelId": "string", "labelName": "string", "score": 0.85 }],
  "aspects": ["Preference", "Decision"],
  "queryType": "aspect_query",
  "temporal": { "type": "recent", "days": 7, "startDate": null, "endDate": null },
  "shouldSearch": true,
  "entityHints": ["Sarah", "CORE"],
  "selectedLabels": ["Project: CORE"],
  "lookupMode": "broad",
  "attributeHint": null,
  "facets": [],
  "confidence": 0.85,
  "routingTimeMs": 420
}

Fields

FieldTypeMeaning
matchedLabelsarray of { labelId, labelName, score }Labels resolved from the query via vector search. score is the similarity.
aspectsarray of aspect stringsAspects the query targets. Subset of the 12 aspect identifiers.
queryTypeone of the 6 query typesSelected handler.
temporalobjectTime filter. See ## Temporal filter.
shouldSearchbooleanIf false, the router decided no search is needed.
entityHintsarray of stringsEntity name hints extracted from the query.
selectedLabelsarray of stringsHuman-readable label names chosen for the search.
lookupMode"attribute" or "broad"Only set when queryType is entity_lookup.
attributeHintstring or nullField name when lookupMode is "attribute".
facetsarray of facet dimension stringsOnly set when queryType is temporal_facets.
confidencenumber 0..1Router confidence in the classification.
routingTimeMsnumberWall time spent in the router.

Temporal filter

The temporal object on the router output describes a time window.
type valueSemantics
"recent"Use days as a rolling window ending now.
"range"Use both startDate and endDate.
"before"Use endDate as an upper bound.
"after"Use startDate as a lower bound.
"all"No time filter.
Field semantics:
FieldUsed whenFormat
daystype is "recent"integer number of days
startDatetype is "range" or "after"ISO 8601 date string
endDatetype is "range" or "before"ISO 8601 date string

Lookup modes

Only applies when queryType is entity_lookup.
lookupModeBehaviorattributeHint
"broad"Return general facts about the entity.null
"attribute"Return only facts about a specific attribute.Field name string, e.g. "phone", "email", "team"

Facet dimensions

Only applies when queryType is temporal_facets. The facets array contains one or more of:
DimensionAggregates over
"topics"Topic labels in the time window.
"entities"Entities mentioned in the time window.
"aspects"Aspect classifications in the time window.

MCP memory tools

CORE exposes three memory tools over MCP, defined in apps/webapp/app/utils/mcp/memory.ts.
Tool namePurposeKey parameters
memory_searchSearch the knowledge graph.query (string), optional labelIds (array), optional time range, optional limit
memory_ingestPush content into memory.content payload
memory_about_userReturn profile-like info about the user.none

Workspace version and search path

CORE supports two search paths gated by workspace.version (see apps/webapp/app/services/agent/memory.ts).
workspace.versionSearch behavior
"V3"V2 search only. No V1 fallback.
Any other valueV2 first. If V2 returns empty, fall back to V1 (BM25 + vector + BFS hybrid in apps/webapp/app/services/search.server.ts).
Related environment variables:
VariableEffect
SEARCH_LABEL_VECTOR_THRESHOLDCandidate threshold for label vector search.