Bird
Raised Fist0
Agentic AIml~5 mins

Long-term memory with vector stores in Agentic AI

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Long-term memory with vector stores helps AI remember and find important information quickly by storing it as numbers.

You want an AI to recall past conversations or facts over time.
You need to search large amounts of text or data fast.
You want to build a chatbot that remembers user preferences.
You want to organize documents so AI can find related info easily.
You want to improve AI answers by using stored knowledge.
Syntax
Agentic AI
vector_store = VectorStore()
vector_store.add(data_vector, metadata)
results = vector_store.search(query_vector, top_k=5)

VectorStore() creates a place to save data as vectors (lists of numbers).

add() saves a vector with extra info (metadata).

Examples
Adds one vector and searches for the closest match.
Agentic AI
vector_store = VectorStore()
vector_store.add([0.1, 0.2, 0.3], {'text': 'Hello world'})
results = vector_store.search([0.1, 0.2, 0.3], top_k=1)
Adds many vectors in a loop and searches top 3 matches.
Agentic AI
vector_store = VectorStore()
for vec, meta in data:
    vector_store.add(vec, meta)
results = vector_store.search(query_vec, top_k=3)
Sample Model

This program creates a simple vector store that saves vectors and their text labels. It then searches for the two closest vectors to a query and prints their text and similarity scores.

Agentic AI
from sklearn.metrics.pairwise import cosine_similarity

class VectorStore:
    def __init__(self):
        self.vectors = []
        self.metadata = []

    def add(self, vector, meta):
        self.vectors.append(vector)
        self.metadata.append(meta)

    def search(self, query_vector, top_k=1):
        import numpy as np
        if not self.vectors:
            return []
        sims = cosine_similarity([query_vector], self.vectors)[0]
        top_indices = sims.argsort()[::-1][:top_k]
        return [(self.metadata[i], sims[i]) for i in top_indices]

# Create vector store
store = VectorStore()

# Add some vectors with text metadata
store.add([0.1, 0.2, 0.3], {'text': 'Hello world'})
store.add([0.4, 0.5, 0.6], {'text': 'Goodbye world'})
store.add([0.1, 0.0, 0.1], {'text': 'Hello again'})

# Search for vectors similar to query
query = [0.1, 0.2, 0.25]
results = store.search(query, top_k=2)

# Print results
for meta, score in results:
    print(f"Text: {meta['text']}, Similarity: {score:.3f}")
OutputSuccess
Important Notes

Vectors are lists of numbers that represent information in a way AI can understand.

Cosine similarity measures how close two vectors are, from -1 (opposite) to 1 (same).

Vector stores help AI remember and find info quickly without reading everything again.

Summary

Long-term memory with vector stores saves info as number lists for fast recall.

It is useful for chatbots, search, and remembering past data.

Adding and searching vectors uses similarity to find the best matches.

Practice

(1/5)
1. What is the main purpose of using a vector store in long-term memory for AI agents?
easy
A. To replace all databases with text files
B. To store images and videos directly
C. To slow down data retrieval for security
D. To save information as lists of numbers for quick searching

Solution

  1. Step 1: Understand vector store role

    Vector stores save data as number lists (vectors) to represent information compactly.
  2. Step 2: Identify purpose in AI memory

    This allows fast searching by comparing vector similarity, making recall efficient.
  3. Final Answer:

    To save information as lists of numbers for quick searching -> Option D
  4. Quick Check:

    Vector store = number lists for fast recall [OK]
Hint: Vector stores = numbers for fast search [OK]
Common Mistakes:
  • Thinking vector stores save raw images or videos
  • Confusing vector stores with simple text files
  • Assuming vector stores slow down retrieval
2. Which of the following is the correct way to add a vector to a vector store in Python-like pseudocode?
easy
A. vector_store.insert('doc1', [0.1, 0.2, 0.3])
B. vector_store.push_vector([0.1, 0.2, 0.3], 'doc1')
C. vector_store.add_vector(id='doc1', vector=[0.1, 0.2, 0.3])
D. vector_store.append_vector('doc1', vector=[0.1, 0.2, 0.3])

Solution

  1. Step 1: Identify typical vector store method

    Common vector stores use an add_vector method with id and vector parameters.
  2. Step 2: Match correct syntax

    vector_store.add_vector(id='doc1', vector=[0.1, 0.2, 0.3]) matches this pattern: add_vector(id='doc1', vector=[0.1, 0.2, 0.3]). Others use incorrect method names or argument order.
  3. Final Answer:

    vector_store.add_vector(id='doc1', vector=[0.1, 0.2, 0.3]) -> Option C
  4. Quick Check:

    Correct method and argument names = vector_store.add_vector(id='doc1', vector=[0.1, 0.2, 0.3]) [OK]
Hint: Look for method named add_vector with id and vector [OK]
Common Mistakes:
  • Using wrong method names like insert or push_vector
  • Swapping argument order
  • Missing parameter names
3. Given this code snippet, what will be the output?
query_vector = [0.5, 0.5]
results = vector_store.search(query_vector, top_k=2)
print(results)
Assuming the vector store contains vectors close to [0.5, 0.5] for ids 'docA' and 'docB'.
medium
A. [('docA', 0.98), ('docB', 0.95)]
B. [('docC', 0.50), ('docD', 0.45)]
C. []
D. Error: search method not found

Solution

  1. Step 1: Understand search behavior

    The search method returns the top_k closest vectors by similarity score.
  2. Step 2: Match expected results

    Since 'docA' and 'docB' are closest to [0.5, 0.5], they appear with high similarity scores like 0.98 and 0.95.
  3. Final Answer:

    [('docA', 0.98), ('docB', 0.95)] -> Option A
  4. Quick Check:

    Top matches with high similarity = [('docA', 0.98), ('docB', 0.95)] [OK]
Hint: Search returns closest vectors with highest similarity scores [OK]
Common Mistakes:
  • Expecting unrelated documents in results
  • Assuming empty list if vectors exist
  • Thinking search method causes error
4. You run this code but get an error:
vector_store.add_vector([0.1, 0.2, 0.3], id='doc1')
What is the likely cause of the error?
medium
A. The add_vector method requires id first, then vector as keyword arguments
B. The vector argument should be named before id
C. Vectors cannot be lists, must be strings
D. The method add_vector does not exist

Solution

  1. Step 1: Check method signature

    add_vector usually expects id first, then vector as keyword arguments.
  2. Step 2: Identify argument order error

    Passing vector first without naming causes error; correct call is add_vector(id='doc1', vector=[0.1, 0.2, 0.3]).
  3. Final Answer:

    The add_vector method requires id first, then vector as keyword arguments -> Option A
  4. Quick Check:

    Correct argument order = The add_vector method requires id first, then vector as keyword arguments [OK]
Hint: Check argument order and names for add_vector [OK]
Common Mistakes:
  • Passing vector before id without naming
  • Thinking vectors must be strings
  • Assuming method does not exist
5. You want your AI agent to remember past conversations using a vector store. Which approach best ensures it retrieves relevant past info quickly and accurately?
hard
A. Store conversation texts as raw strings and search by keyword matching
B. Convert conversation texts into vectors and search by similarity in the vector store
C. Save conversations in a plain text file and read line by line
D. Use a random vector for each conversation and pick one randomly

Solution

  1. Step 1: Understand vector store advantage

    Vector stores allow searching by similarity, capturing meaning beyond exact words.
  2. Step 2: Compare options for retrieval quality

    Convert conversation texts into vectors and search by similarity in the vector store converts texts to vectors and searches by similarity, enabling fast and accurate recall of related past conversations.
  3. Final Answer:

    Convert conversation texts into vectors and search by similarity in the vector store -> Option B
  4. Quick Check:

    Similarity search in vector store = best for relevant recall [OK]
Hint: Use vector similarity, not keyword or random picks [OK]
Common Mistakes:
  • Relying on keyword matching only
  • Using random vectors losing relevance
  • Reading plain text files linearly