Skip to content

Commit 4a4b6d7

Browse files
committed
Update
1 parent 20fe869 commit 4a4b6d7

File tree

5 files changed

+33
-59
lines changed

5 files changed

+33
-59
lines changed

libs/agno/agno/agent/agent.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5282,7 +5282,7 @@ def get_relevant_docs_from_knowledge(
52825282
"""
52835283
from agno.document import Document
52845284

5285-
if num_documents is None:
5285+
if num_documents is None and self.knowledge is not None:
52865286
num_documents = self.knowledge.num_documents
52875287
# Validate the filters against known valid filter keys
52885288
if self.knowledge is not None:
@@ -5343,7 +5343,7 @@ async def aget_relevant_docs_from_knowledge(
53435343
"""Get relevant documents from knowledge base asynchronously."""
53445344
from agno.document import Document
53455345

5346-
if num_documents is None:
5346+
if num_documents is None and self.knowledge is not None:
53475347
num_documents = self.knowledge.num_documents
53485348

53495349
# Validate the filters against known valid filter keys

libs/agno/agno/embedder/openai.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ def __post_init__(self):
3030
if self.dimensions is None:
3131
self.dimensions = 3072 if self.id == "text-embedding-3-large" else 1536
3232

33-
3433
@property
3534
def client(self) -> OpenAIClient:
3635
if self.openai_client:

libs/agno/agno/team/team.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7372,7 +7372,7 @@ def get_relevant_docs_from_knowledge(
73727372
"""Return a list of references from the knowledge base"""
73737373
from agno.document import Document
73747374

7375-
if num_documents is None:
7375+
if num_documents is None and self.knowledge is not None:
73767376
num_documents = self.knowledge.num_documents
73777377

73787378
# Validate the filters against known valid filter keys
@@ -7429,7 +7429,7 @@ async def aget_relevant_docs_from_knowledge(
74297429
"""Get relevant documents from knowledge base asynchronously."""
74307430
from agno.document import Document
74317431

7432-
if num_documents is None:
7432+
if num_documents is None and self.knowledge is not None:
74337433
num_documents = self.knowledge.num_documents
74347434

74357435
# Validate the filters against known valid filter keys

libs/agno/agno/tools/zep.py

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def initialize(self) -> bool:
118118

119119
# Create session associated with the user
120120
try:
121-
self.zep_client.memory.add_session(session_id=self.session_id, user_id=self.user_id)
121+
self.zep_client.thread.create(thread_id=self.session_id, user_id=self.user_id)
122122
log_debug(f"Created session {self.session_id} for user {self.user_id}")
123123
except Exception as e:
124124
log_debug(f"Session may already exist: {e}")
@@ -156,8 +156,8 @@ def add_zep_message(self, role: str, content: str) -> str:
156156
ignore_roles_list = ["assistant"] if self.ignore_assistant_messages else None
157157

158158
# Add message to Zep memory
159-
self.zep_client.memory.add( # type: ignore
160-
session_id=self.session_id,
159+
self.zep_client.thread.add_messages( # type: ignore
160+
thread_id=self.session_id,
161161
messages=[zep_message],
162162
ignore_roles=ignore_roles_list,
163163
)
@@ -171,7 +171,7 @@ def get_zep_memory(self, memory_type: str = "context") -> str:
171171
"""
172172
Retrieves the memory for the current Zep session.
173173
Args:
174-
memory_type: The type of memory to retrieve ('context', 'messages', 'relevant_facts').
174+
memory_type: The type of memory to retrieve ('context', 'messages').
175175
Returns:
176176
The requested memory content as a string, or an error string.
177177
"""
@@ -181,21 +181,16 @@ def get_zep_memory(self, memory_type: str = "context") -> str:
181181

182182
try:
183183
log_debug(f"Getting Zep memory for session {self.session_id}")
184-
memory_data = self.zep_client.memory.get(session_id=self.session_id) # type: ignore
185184

186185
if memory_type == "context":
187186
# Ensure context is a string
188-
return memory_data.context or "No context available."
187+
user_context = self.zep_client.thread.get_user_context(thread_id=self.session_id, mode="basic") # type: ignore
188+
log_debug(f"Memory data: {user_context}")
189+
return user_context.context or "No context available."
189190
elif memory_type == "messages":
191+
messages_list = self.zep_client.thread.get(thread_id=self.session_id) # type: ignore
190192
# Ensure messages string representation is returned
191-
return str(memory_data.messages) if memory_data.messages else "No messages available."
192-
elif memory_type == "relevant_facts":
193-
# Return all relevant facts from memory
194-
if memory_data.relevant_facts:
195-
facts_str = "\n".join([f"- {fact.fact}" for fact in memory_data.relevant_facts])
196-
return f"Relevant facts:\n{facts_str}"
197-
else:
198-
return "No relevant facts available."
193+
return str(messages_list.messages) if messages_list.messages else "No messages available."
199194
else:
200195
warning_msg = f"Unsupported memory_type requested: {memory_type}. Returning empty string."
201196
log_warning(warning_msg)
@@ -328,7 +323,7 @@ async def initialize(self) -> bool:
328323

329324
# Create session associated with the user
330325
try:
331-
await self.zep_client.memory.add_session(session_id=self.session_id, user_id=self.user_id) # type: ignore
326+
await self.zep_client.thread.create(thread_id=self.session_id, user_id=self.user_id) # type: ignore
332327
log_debug(f"Created session {self.session_id} for user {self.user_id}")
333328
except Exception as e:
334329
log_debug(f"Session may already exist: {e}")
@@ -369,8 +364,8 @@ async def add_zep_message(self, role: str, content: str) -> str:
369364
ignore_roles_list = ["assistant"] if self.ignore_assistant_messages else None
370365

371366
# Add message to Zep memory
372-
await self.zep_client.memory.add( # type: ignore
373-
session_id=self.session_id,
367+
await self.zep_client.thread.add_messages( # type: ignore
368+
thread_id=self.session_id,
374369
messages=[zep_message],
375370
ignore_roles=ignore_roles_list,
376371
)
@@ -384,7 +379,7 @@ async def get_zep_memory(self, memory_type: str = "context") -> str:
384379
"""
385380
Retrieves the memory for the current Zep session.
386381
Args:
387-
memory_type: The type of memory to retrieve ('context', 'messages', 'relevant_facts').
382+
memory_type: The type of memory to retrieve ('context', 'messages').
388383
Returns:
389384
The requested memory content as a string, or an error string.
390385
"""
@@ -396,25 +391,19 @@ async def get_zep_memory(self, memory_type: str = "context") -> str:
396391
return "Error: Zep client/session not initialized."
397392

398393
try:
399-
memory_data = await self.zep_client.memory.get(session_id=self.session_id) # type: ignore
400-
401394
if memory_type == "context":
402395
# Ensure context is a string
403-
return memory_data.context or "No context available."
396+
user_context = await self.zep_client.thread.get_user_context(thread_id=self.session_id, mode="basic") # type: ignore
397+
log_debug(f"Memory data: {user_context}")
398+
return user_context.context or "No context available."
404399
elif memory_type == "messages":
405400
# Ensure messages string representation is returned
406-
return str(memory_data.messages) if memory_data.messages else "No messages available."
407-
elif memory_type == "relevant_facts":
408-
# Return relevant facts from memory
409-
if memory_data.relevant_facts:
410-
facts_str = "\n".join([f"- {fact.fact}" for fact in memory_data.relevant_facts])
411-
return f"Relevant facts:\n{facts_str}"
412-
else:
413-
return "No relevant facts available."
401+
messages_list = await self.zep_client.thread.get(thread_id=self.session_id) # type: ignore
402+
return str(messages_list.messages) if messages_list.messages else "No messages available."
414403
else:
415404
warning_msg = f"Unsupported memory_type requested: {memory_type}. Returning context."
416405
log_warning(warning_msg)
417-
return memory_data.context or "No context available."
406+
return "No context available."
418407

419408
except Exception as e:
420409
error_msg = f"Failed to get Zep memory for session {self.session_id}: {e}"

libs/agno/tests/unit/tools/test_zep.py

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ def test_initialization_no_api_key(monkeypatch):
4949
def test_add_zep_message(zep_tools):
5050
result = zep_tools.add_zep_message(role="user", content="test message")
5151
assert result == f"Message from 'user' added successfully to session {MOCK_SESSION_ID}."
52-
zep_tools.zep_client.memory.add.assert_called_once()
52+
zep_tools.zep_client.thread.add_messages.assert_called_once()
5353

5454
# Check that ZepMessage was created with correct parameters
55-
call_args = zep_tools.zep_client.memory.add.call_args
55+
call_args = zep_tools.zep_client.thread.add_messages.call_args
5656
messages = call_args[1]["messages"]
5757
assert len(messages) == 1
5858
assert messages[0].role == "user"
@@ -71,40 +71,26 @@ def test_get_zep_memory_context(zep_tools):
7171
mock_memory.context = "test context"
7272
mock_memory.relevant_facts = None
7373
mock_memory.messages = None
74-
zep_tools.zep_client.memory.get.return_value = mock_memory
74+
zep_tools.zep_client.thread.get_user_context.return_value = mock_memory
7575

7676
result = zep_tools.get_zep_memory("context")
7777
assert result == "test context"
78-
zep_tools.zep_client.memory.get.assert_called_once()
78+
zep_tools.zep_client.thread.get_user_context.assert_called_once()
7979

8080

8181
def test_get_zep_memory_messages(zep_tools):
8282
mock_memory = Mock()
8383
mock_memory.messages = ["msg1", "msg2"]
84-
zep_tools.zep_client.memory.get.return_value = mock_memory
84+
zep_tools.zep_client.thread.get.return_value = mock_memory
8585

8686
result = zep_tools.get_zep_memory("messages")
8787
assert result == "['msg1', 'msg2']"
8888

8989

90-
def test_get_zep_memory_relevant_facts(zep_tools):
91-
mock_fact1 = Mock()
92-
mock_fact1.fact = "fact 1"
93-
mock_fact2 = Mock()
94-
mock_fact2.fact = "fact 2"
95-
96-
mock_memory = Mock()
97-
mock_memory.relevant_facts = [mock_fact1, mock_fact2]
98-
zep_tools.zep_client.memory.get.return_value = mock_memory
99-
100-
result = zep_tools.get_zep_memory("relevant_facts")
101-
assert result == "Relevant facts:\n- fact 1\n- fact 2"
102-
103-
10490
def test_get_zep_memory_unsupported_type(zep_tools):
10591
mock_memory = Mock()
10692
mock_memory.context = "fallback context"
107-
zep_tools.zep_client.memory.get.return_value = mock_memory
93+
zep_tools.zep_client.thread.get_user_context.return_value = mock_memory
10894

10995
result = zep_tools.get_zep_memory("unsupported")
11096
assert "Unsupported memory_type requested: unsupported" in result
@@ -207,10 +193,10 @@ async def test_async_initialization(async_zep_tools):
207193
async def test_async_add_zep_message(async_zep_tools):
208194
result = await async_zep_tools.add_zep_message(role="user", content="test message")
209195
assert result == f"Message from 'user' added successfully to session {MOCK_SESSION_ID}."
210-
async_zep_tools.zep_client.memory.add.assert_called_once()
196+
async_zep_tools.zep_client.thread.add_messages.assert_called_once()
211197

212198
# Check that ZepMessage was created with correct parameters
213-
call_args = async_zep_tools.zep_client.memory.add.call_args
199+
call_args = async_zep_tools.zep_client.thread.add_messages.call_args
214200
messages = call_args[1]["messages"]
215201
assert len(messages) == 1
216202
assert messages[0].role == "user"
@@ -221,11 +207,11 @@ async def test_async_add_zep_message(async_zep_tools):
221207
async def test_async_get_zep_memory(async_zep_tools):
222208
mock_memory = Mock()
223209
mock_memory.context = "test context"
224-
async_zep_tools.zep_client.memory.get.return_value = mock_memory
210+
async_zep_tools.zep_client.thread.get_user_context.return_value = mock_memory
225211

226212
result = await async_zep_tools.get_zep_memory()
227213
assert result == "test context"
228-
async_zep_tools.zep_client.memory.get.assert_called_once()
214+
async_zep_tools.zep_client.thread.get_user_context.assert_called_once()
229215

230216

231217
@pytest.mark.asyncio

0 commit comments

Comments
 (0)