fix: use simple dict filters for local mem0 Memory instead of AND/OR format #4031
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fix: use simple dict filters for local mem0 Memory instead of AND/OR format
Summary
Fixes #4030
The local mem0
Memoryclass expects simple dict filters like{"user_id": "bob"}, but the code was passing{"AND": [{"user_id": "bob"}]}. This caused the mem0 library to incorrectly convert the filter to a RediSearch query like@AND:{[{'user_id': 'bob'}]} @user_id:{bob}, resulting in the error:Invalid filter expression: AND is not indexed as a tag field.Changes:
for_local_memoryparameter to_create_filter_for_search()method{"user_id": "bob"}{"AND": [{"user_id": "bob"}]}search()method to detect Memory type and use appropriate filter formatReview & Testing Checklist for Human
Recommended Test Plan
crewai runwith external memory configured withlocal_mem0_configanduser_idNotes