fix: agent support not use memory message (n_messages==0) (#7800)

* Update py_autofix.yml

* feat: handle case when n_messages is zero in MemoryComponent

* agent memory support n_message zero

* Revert "Update py_autofix.yml"

This reverts commit 7aed45e98602f57c2d6d33532080bad30cf02507.

* fix: cast stored messages to Data type in retrieve_messages method

---------

Co-authored-by: tianzhipeng <tzpabc@gmail.com>
This commit is contained in:
jeevi cao 2025-05-15 01:28:05 +08:00 committed by GitHub
commit 97061baa6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 4 deletions

View file

@ -117,7 +117,7 @@ class AgentComponent(ToolCallingAgentComponent):
component_input.name: getattr(self, f"{component_input.name}") for component_input in self.memory_inputs
}
# filter out empty values
memory_kwargs = {k: v for k, v in memory_kwargs.items() if v}
memory_kwargs = {k: v for k, v in memory_kwargs.items() if v is not None}
return await MemoryComponent(**self.get_base_args()).set(**memory_kwargs).retrieve_messages()

View file

@ -1,3 +1,5 @@
from typing import cast
from langflow.custom import Component
from langflow.helpers.data import data_to_text
from langflow.inputs import HandleInput
@ -88,8 +90,10 @@ class MemoryComponent(Component):
memory_name = type(self.memory).__name__
err_msg = f"External Memory object ({memory_name}) must have 'aget_messages' method."
raise AttributeError(err_msg)
if self.memory:
# Check if n_messages is None or 0
if n_messages == 0:
stored = []
elif self.memory:
# override session_id
self.memory.session_id = session_id
@ -112,7 +116,7 @@ class MemoryComponent(Component):
order=order,
)
self.status = stored
return stored
return cast(Data, stored)
async def retrieve_messages_as_text(self) -> Message:
stored_text = data_to_text(self.template, await self.retrieve_messages())