diff --git a/reme/agent/memory/base_memory_agent.py b/reme/agent/memory/base_memory_agent.py index 6b97a1c2..bbb20039 100644 --- a/reme/agent/memory/base_memory_agent.py +++ b/reme/agent/memory/base_memory_agent.py @@ -61,7 +61,7 @@ class BaseMemoryAgent(BaseReact, metaclass=ABCMeta): lines = [] for memory_target, memory_type in self.memory_target_type_mapping.items(): line = { - "agent": f"Agent managing {memory_type} memories for {memory_target}", + "agent": f"Agent managing {memory_type.value} memories for {memory_target}", "memory_target": memory_target, } lines.append(json.dumps(line, ensure_ascii=False)) diff --git a/reme/agent/memory/reme_retriever.py b/reme/agent/memory/reme_retriever.py index 9de51aa2..dcdade94 100644 --- a/reme/agent/memory/reme_retriever.py +++ b/reme/agent/memory/reme_retriever.py @@ -68,25 +68,27 @@ class ReMeRetriever(BaseMemoryAgent): async def execute(self): result = await super().execute() tools: list[BaseTool] = result["tools"] - delegate_task_tool = tools[0] - agents: list[BaseMemoryAgent] = delegate_task_tool.response.metadata["agents"] answer = [] success = True messages = [] - tools = [] + tools_result = [] retrieved_nodes = [] - for agent in agents: - answer.append(agent.response.answer) - success = success and agent.response.success - messages.extend(agent.response.metadata["messages"]) - tools.extend(agent.response.metadata["tools"]) - retrieved_nodes.extend(agent.response.metadata["retrieved_nodes"]) + + if tools: + delegate_task_tool = tools[0] + agents: list[BaseMemoryAgent] = delegate_task_tool.response.metadata["agents"] + for agent in agents: + answer.append(agent.response.answer) + success = success and agent.response.success + messages.extend(agent.response.metadata["messages"]) + tools_result.extend(agent.response.metadata["tools"]) + retrieved_nodes.extend(agent.response.metadata["retrieved_nodes"]) return { "answer": "\n".join(answer), "success": True, "messages": messages, - "tools": tools, + "tools": tools_result, "retrieved_nodes": retrieved_nodes, } diff --git a/reme/agent/memory/reme_summarizer.py b/reme/agent/memory/reme_summarizer.py index 8b263f64..3687fe2c 100644 --- a/reme/agent/memory/reme_summarizer.py +++ b/reme/agent/memory/reme_summarizer.py @@ -74,22 +74,25 @@ class ReMeSummarizer(BaseMemoryAgent): async def execute(self): result = await super().execute() tools: list[BaseTool] = result["tools"] - delegate_task_tool = tools[0] - agents: list[BaseMemoryAgent] = delegate_task_tool.response.metadata["agents"] success = True messages = [] - tools = [] + tools_result = [] memory_nodes = [] - for agent in agents: - success = success and agent.response.success - messages.extend(agent.response.metadata["messages"]) - tools.extend(agent.response.metadata["tools"]) - memory_nodes.extend(agent.response.metadata["memory_nodes"]) + + if tools: + delegate_task_tool = tools[0] + agents: list[BaseMemoryAgent] = delegate_task_tool.response.metadata["agents"] + + for agent in agents: + success = success and agent.response.success + messages.extend(agent.response.metadata["messages"]) + tools_result.extend(agent.response.metadata["tools"]) + memory_nodes.extend(agent.response.metadata["memory_nodes"]) return { "answer": memory_nodes, "success": True, "messages": messages, - "tools": tools, + "tools": tools_result, } diff --git a/reme/reme.py b/reme/reme.py index 81050cbd..bd3e2c64 100644 --- a/reme/reme.py +++ b/reme/reme.py @@ -20,7 +20,7 @@ from .agent.memory import ( ) from .config import ReMeConfigParser from .core import Application -from .core.enumeration import MemoryType +from .core.enumeration import MemoryType, Role from .core.schema import Message, MemoryNode from .tool.memory import ( RetrieveMemory, @@ -294,7 +294,8 @@ class ReMe(Application): if user_name: if isinstance(user_name, str): for message in format_messages: - message.name = user_name + if message.role is Role.USER: + message.name = user_name self._add_meta_memory(MemoryType.PERSONAL, user_name) elif isinstance(user_name, list): for name in user_name: