Tag

Although the human brain can organize information in categories, assign labels, tag data with multiple keywords, “tagging” doesn’t have much to do with human memory per-se, and is more oriented to flexibility when searching and asking questions.

Tagging is very similar to the use of embeddings, although there are important differences:

  • Embedding are automatically generated by LLMs, and the embedding vector is very opaque, pretty much impossible to interpret, or read.
  • Tags are defined manually by users, and have specific meaning, easy to interpret, e.g. one can define a tag named “type” assigning values like “email”, “user”, “report”, etc.
  • Embeddings are compared using cosine similarity.
  • Tags are compare using exact tag value match, e.g. “type is email”.

Tags offer the ability to apply custom labels to documents, so that for example search can be scoped to a specific tag or tags.

Tags can be used to organize memories in collections similarly to indexes, however indexes offer a stronger separation and tags offer the ability to mutate values without relocating data.

Tags are key-value pairs, such as “type:news”, “user:u038”, “year:2025”, and each tag key can have multiple values, e.g. it’s perfectly fine using two tags like “user:u038” and “user:u944” to assign a memory to two users, or “type:mail” and “type:work” to specify a record was extracted from an email received at work.

Some important highlights about Tags and Indexes:

  1. Read and Write operations always work within the boundaries of a single index.
  2. One memory cannot be stored in two or more indexes, unless the memory record is written once in each index, and these records are not linked in any way.
  3. A record cannot be moved from one index to another, unless one manually copies the record and delete the previous one. The new record is a completely new record, unrelated from the previous.
  4. Tags can be modified and can have multiple values.
  5. Creating an index can be an expensive operation, and many vector DBs limit the total number of indexes to only a few.
  6. Tags are not created, and there is no limit to the number of tags one can use. The only limit is the underlying storage availability.
  7. Indexes can be listed, one can ask KM to return a list of all the available indexes.
  8. Tags cannot be listed.