Memory retrieval strategies help AI systems find and use stored information quickly and correctly. This makes AI smarter and more helpful.
Memory retrieval strategies in Agentic AI
class MemoryRetrieval: def __init__(self, memory_store): self.memory_store = memory_store def retrieve(self, query): # Simple retrieval by matching query keywords results = [item for item in self.memory_store if query in item] return results
This example shows a simple memory retrieval class in Python.
The retrieve method looks for items containing the query word.
memory = ['apple', 'banana', 'cherry'] retriever = MemoryRetrieval(memory) print(retriever.retrieve('banana'))
memory = [] retriever = MemoryRetrieval(memory) print(retriever.retrieve('apple'))
memory = ['apple'] retriever = MemoryRetrieval(memory) print(retriever.retrieve('apple'))
memory = ['apple', 'banana', 'cherry'] retriever = MemoryRetrieval(memory) print(retriever.retrieve('berry'))
This program creates a simple memory list and retrieves items containing specific words.
It shows how retrieval works with matches and no matches.
class MemoryRetrieval: def __init__(self, memory_store): self.memory_store = memory_store def retrieve(self, query): results = [item for item in self.memory_store if query in item] return results # Create memory with some items memory_items = ['cat', 'dog', 'parrot', 'doghouse', 'caterpillar'] retriever = MemoryRetrieval(memory_items) print('Memory before retrieval:', memory_items) # Retrieve items containing 'dog' found_items = retriever.retrieve('dog') print('Retrieved items for query "dog":', found_items) # Retrieve items containing 'cat' found_items_cat = retriever.retrieve('cat') print('Retrieved items for query "cat":', found_items_cat) # Retrieve items with no match found_items_none = retriever.retrieve('fish') print('Retrieved items for query "fish":', found_items_none)
Time complexity is O(n) because it checks each memory item once.
Space complexity is O(k) where k is the number of matched items returned.
Common mistake: forgetting to handle empty memory or no matches, which should return an empty list.
Use simple retrieval for small memory stores; for large data, use indexing or search algorithms.
Memory retrieval strategies help AI find stored information quickly.
Simple retrieval checks each item for a match and returns results.
Handle empty memory and no matches gracefully to avoid errors.
Practice
Solution
Step 1: Understand the role of memory retrieval
Memory retrieval strategies are designed to help AI find information it has stored before.Step 2: Identify the main goal
The goal is to do this quickly and accurately so the AI can respond well.Final Answer:
To find stored information quickly and accurately -> Option AQuick Check:
Memory retrieval = find info fast [OK]
- Confusing retrieval with data creation
- Thinking retrieval deletes data
- Assuming retrieval slows AI down
Solution
Step 1: Recall Python comparison syntax
In Python, '==' checks if two values are equal.Step 2: Identify correct equality check
'=' is assignment, '===' is not valid in Python, '!=' means not equal.Final Answer:
if memory_item == query: -> Option CQuick Check:
Equality check in Python = '==' [OK]
- Using '=' instead of '==' for comparison
- Using '===' which is JavaScript syntax
- Confusing '!=' with equality check
memory = ['apple', 'banana', 'cherry']
query = 'banana'
result = None
for item in memory:
if item == query:
result = item
break
print(result)Solution
Step 1: Loop through memory list
The loop checks each item: 'apple', then 'banana', then 'cherry'.Step 2: Check for match and break
When 'banana' matches the query, result is set to 'banana' and loop stops.Final Answer:
'banana' -> Option DQuick Check:
Loop finds 'banana' and stops [OK]
- Assuming result stays None
- Thinking loop continues after match
- Confusing output with first list item
memory = []
query = 'orange'
for item in memory:
if item == query:
print('Found')
else:
print('Not found')Solution
Step 1: Analyze empty memory list
The for loop does not run at all if memory is empty.Step 2: Check output behavior
Since loop never runs, no print happens, so no indication of 'Not found'.Final Answer:
It never prints anything if memory is empty -> Option BQuick Check:
Empty list means no loop runs [OK]
- Thinking 'Not found' prints once automatically
- Assuming syntax error without checking code
- Believing query is undefined
def retrieve(memory, query):
for item in memory:
if item == query:
return item
# What to add here?
Solution
Step 1: Understand loop behavior
If no item matches, loop finishes without returning.Step 2: Add return after loop
Returning 'Not found' after loop ensures function always returns a value.Final Answer:
return 'Not found' after the loop -> Option AQuick Check:
Return after loop handles no matches [OK]
- Putting return inside loop causing premature exit
- Using print instead of return
- Raising exception unnecessarily
Ready to prove it?
Pass the test and this pattern moves unknown
