-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Description
Description
I am currently using local mem0 with the following config
local_mem0_config = {
"vector_store": {
"provider": "qdrant",
"config": {
"collection_name": "user_memory",
"host": "192.168.0.222",
"port": 6333,
"embedding_model_dims": "1536",
},
},
"llm": {
"provider": "openai",
"config": {"api_key": os.getenv("OPENAI_API_KEY"), "model": "gpt-4o-mini"},
},
"embedder": {
"provider": "openai",
"config": {
"api_key": os.getenv("OPENAI_API_KEY"),
"model": "text-embedding-3-small",
},
},
}
My crew is defined as this
Crew(
agents=self.agents,
tasks=self.tasks,
process=Process.sequential,
verbose=True,
memory=True,
external_memory=ExternalMemory(
embedder_config={
"provider": "mem0",
"config": {
"user_id": "jainish",
"local_mem0_config": self.local_mem0_config,
},
}
),
output_log_file="logs.json",
)
The full traceback
Traceback (most recent call last):
File "/Users/JainishSavalia/work/playground/crewAI/examples/main.py", line 27, in run_crew
result = crew.kickoff(inputs=inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/crew.py", line 646, in kickoff
result = self._run_sequential_process()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/crew.py", line 758, in _run_sequential_process
return self._execute_tasks(self.tasks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/crew.py", line 861, in _execute_tasks
task_output = task.execute_sync(
^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 61, in wrapper
return func(tracer, duration_histogram, token_histogram, wrapped, instance, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 149, in wrap_task_execute
result = wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/task.py", line 328, in execute_sync
return self._execute_core(agent, context, tools)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/task.py", line 472, in _execute_core
raise e # Re-raise the exception after emitting the event
^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/task.py", line 392, in _execute_core
result = agent.execute_task(
^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 61, in wrapper
return func(tracer, duration_histogram, token_histogram, wrapped, instance, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 108, in wrap_agent_execute_task
result = wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/agent.py", line 212, in execute_task
memory = contextual_memory.build_context_for_task(task, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/contextual/contextual_memory.py", line 46, in build_context_for_task
context.append(self._fetch_external_context(query))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/contextual/contextual_memory.py", line 130, in _fetch_external_context
external_memories = self.exm.search(query)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/memory.py", line 37, in search
return self.storage.search(
^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/storage/mem0_storage.py", line 119, in search
results = self.memory.search(**params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Memory.search() got an unexpected keyword argument 'metadata'
The payload of mem0 has changed in v2 compared to v1 but can't find out any major difference as the older version should work as it is ("version": "v1.1" added in config).
Steps to Reproduce
- Create any crew which uses external memory with mem0 provider as shown above.
- Run the crew.
Expected behavior
The local mem0 search functionality should work as it does with the cloud one.
I am using qdrant for my vector store.
Screenshots/Code snippets
None
Operating System
macOS Sonoma
Python Version
3.11
crewAI Version
0.114.0
crewAI Tools Version
0.40.1
Virtual Environment
Venv
Evidence
Traceback (most recent call last):
File "/Users/JainishSavalia/work/playground/crewAI/examples/main.py", line 27, in run_crew
result = crew.kickoff(inputs=inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/crew.py", line 646, in kickoff
result = self._run_sequential_process()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/crew.py", line 758, in _run_sequential_process
return self._execute_tasks(self.tasks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/crew.py", line 861, in _execute_tasks
task_output = task.execute_sync(
^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 61, in wrapper
return func(tracer, duration_histogram, token_histogram, wrapped, instance, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 149, in wrap_task_execute
result = wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/task.py", line 328, in execute_sync
return self._execute_core(agent, context, tools)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/task.py", line 472, in _execute_core
raise e # Re-raise the exception after emitting the event
^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/task.py", line 392, in _execute_core
result = agent.execute_task(
^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 61, in wrapper
return func(tracer, duration_histogram, token_histogram, wrapped, instance, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/.venv/lib/python3.11/site-packages/opentelemetry/instrumentation/crewai/instrumentation.py", line 108, in wrap_agent_execute_task
result = wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/agent.py", line 212, in execute_task
memory = contextual_memory.build_context_for_task(task, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/contextual/contextual_memory.py", line 46, in build_context_for_task
context.append(self._fetch_external_context(query))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/contextual/contextual_memory.py", line 130, in _fetch_external_context
external_memories = self.exm.search(query)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/memory.py", line 37, in search
return self.storage.search(
^^^^^^^^^^^^^^^^^^^^
File "/Users/JainishSavalia/work/playground/crewAI/src/crewai/memory/storage/mem0_storage.py", line 119, in search
results = self.memory.search(**params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Memory.search() got an unexpected keyword argument 'metadata'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/JainishSavalia/work/playground/crewAI/examples/main.py", line 40, in
run_crew()
File "/Users/JainishSavalia/work/playground/crewAI/examples/main.py", line 34, in run_crew
print(f"\nAn error occurred: {e.with_traceback()}")
Possible Solution
None
Additional context
None