From 97061baa6a256a64bdf01611d1a275e4ea38dc1f Mon Sep 17 00:00:00 2001 From: jeevi cao <542561541@qq.com> Date: Thu, 15 May 2025 01:28:05 +0800 Subject: [PATCH] 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 --- src/backend/base/langflow/components/agents/agent.py | 2 +- src/backend/base/langflow/components/helpers/memory.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backend/base/langflow/components/agents/agent.py b/src/backend/base/langflow/components/agents/agent.py index 36dd4c158..21f4e6f3a 100644 --- a/src/backend/base/langflow/components/agents/agent.py +++ b/src/backend/base/langflow/components/agents/agent.py @@ -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() diff --git a/src/backend/base/langflow/components/helpers/memory.py b/src/backend/base/langflow/components/helpers/memory.py index 6dd63781f..5001eda53 100644 --- a/src/backend/base/langflow/components/helpers/memory.py +++ b/src/backend/base/langflow/components/helpers/memory.py @@ -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())