Fix code review issues

- Add agent_id parameter to client.add() and use it in mem0_conclude
- Fix inconsistent field access in queue_prefetch_and_get (check both text and memory)
- Remove unused _read_filters() and _write_filters() methods
- Mark prefetch() query parameter as deprecated (was unused)
This commit is contained in:
2026-04-10 13:45:34 +02:00
parent cf09a3534d
commit 2f98f63ecd
2 changed files with 17 additions and 12 deletions
+13 -11
View File
@@ -260,14 +260,6 @@ class Mem0LocalMemoryProvider(MemoryProvider):
self._agent_id = self._config.get("agent_id", "hermes") self._agent_id = self._config.get("agent_id", "hermes")
self._rerank = self._config.get("rerank", True) self._rerank = self._config.get("rerank", True)
def _read_filters(self) -> Dict[str, Any]:
"""Filters for search/get_all — scoped to user only."""
return {"user_id": self._user_id}
def _write_filters(self) -> Dict[str, Any]:
"""Filters for add — scoped to user + agent."""
return {"user_id": self._user_id, "agent_id": self._agent_id}
def system_prompt_block(self) -> str: def system_prompt_block(self) -> str:
return ( return (
"# Mem0 Memory (Local)\n" "# Mem0 Memory (Local)\n"
@@ -276,8 +268,13 @@ class Mem0LocalMemoryProvider(MemoryProvider):
"mem0_profile for a full overview." "mem0_profile for a full overview."
) )
def prefetch(self, query: str, *, session_id: str = "") -> str: def prefetch(self, query: str = "", *, session_id: str = "") -> str:
"""Return cached prefetch result from previous turn.""" """Return cached prefetch result from previous turn.
Args:
query: Deprecated, kept for API compatibility.
session_id: Session identifier.
"""
if self._prefetch_thread and self._prefetch_thread.is_alive(): if self._prefetch_thread and self._prefetch_thread.is_alive():
self._prefetch_thread.join(timeout=3.0) self._prefetch_thread.join(timeout=3.0)
with self._prefetch_lock: with self._prefetch_lock:
@@ -299,7 +296,11 @@ class Mem0LocalMemoryProvider(MemoryProvider):
limit=5, limit=5,
) )
if results: if results:
lines = [r.get("text", "") for r in results if r.get("text")] lines = [
r.get("text") or r.get("memory", "")
for r in results
if r.get("text") or r.get("memory")
]
if lines: if lines:
self._record_success() self._record_success()
return "\n".join(f"- {line}" for line in lines) return "\n".join(f"- {line}" for line in lines)
@@ -427,6 +428,7 @@ class Mem0LocalMemoryProvider(MemoryProvider):
client.add( client.add(
message=conclusion, message=conclusion,
user_id=self._user_id, user_id=self._user_id,
agent_id=self._agent_id,
) )
self._record_success() self._record_success()
return json.dumps({"result": "Fact stored."}) return json.dumps({"result": "Fact stored."})
+4 -1
View File
@@ -94,17 +94,20 @@ class LocalMem0Client:
self, self,
message: str, message: str,
user_id: Optional[str] = None, user_id: Optional[str] = None,
agent_id: Optional[str] = None,
metadata: Optional[Dict] = None, metadata: Optional[Dict] = None,
) -> Dict: ) -> Dict:
"""Add a new memory. """Add a new memory.
API: POST /add API: POST /add
Request: {message, user_id, metadata} Request: {message, user_id, agent_id, metadata}
Response: {success, memory_id, message} Response: {success, memory_id, message}
""" """
payload = {"message": message} payload = {"message": message}
if user_id: if user_id:
payload["user_id"] = user_id payload["user_id"] = user_id
if agent_id:
payload["agent_id"] = agent_id
if metadata: if metadata:
payload["metadata"] = metadata payload["metadata"] = metadata
return self._request("POST", "/add", json=payload) return self._request("POST", "/add", json=payload)