From b485bb59009d26290f1cd480c61435ab6cee4c07 Mon Sep 17 00:00:00 2001 From: cthomas Date: Tue, 21 Jan 2025 17:26:57 -0800 Subject: [PATCH] chore: remove memory/recall, memory/archival and memory/messages routes (#713) --- letta/client/client.py | 14 ++++---- letta/server/rest_api/routers/v1/agents.py | 42 +--------------------- 2 files changed, 8 insertions(+), 48 deletions(-) diff --git a/letta/client/client.py b/letta/client/client.py index 686171e2..f4dfdc3d 100644 --- a/letta/client/client.py +++ b/letta/client/client.py @@ -806,10 +806,10 @@ class RESTClient(AbstractClient): summary (ArchivalMemorySummary): Summary of the archival memory """ - response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/memory/archival", headers=self.headers) + response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/context", headers=self.headers) if response.status_code != 200: raise ValueError(f"Failed to get archival memory summary: {response.text}") - return ArchivalMemorySummary(**response.json()) + return ArchivalMemorySummary(size=response.json().get("num_archival_memory", 0)) def get_recall_memory_summary(self, agent_id: str) -> RecallMemorySummary: """ @@ -821,10 +821,10 @@ class RESTClient(AbstractClient): Returns: summary (RecallMemorySummary): Summary of the recall memory """ - response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/memory/recall", headers=self.headers) + response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/context", headers=self.headers) if response.status_code != 200: raise ValueError(f"Failed to get recall memory summary: {response.text}") - return RecallMemorySummary(**response.json()) + return RecallMemorySummary(size=response.json().get("num_recall_memory", 0)) def get_in_context_messages(self, agent_id: str) -> List[Message]: """ @@ -836,10 +836,10 @@ class RESTClient(AbstractClient): Returns: messages (List[Message]): List of in-context messages """ - response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/memory/messages", headers=self.headers) + response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/context", headers=self.headers) if response.status_code != 200: - raise ValueError(f"Failed to get in-context messages: {response.text}") - return [Message(**message) for message in response.json()] + raise ValueError(f"Failed to get recall memory summary: {response.text}") + return [Message(**message) for message in response.json().get("messages", "")] # agent interactions diff --git a/letta/server/rest_api/routers/v1/agents.py b/letta/server/rest_api/routers/v1/agents.py index 7ad957a2..28a8a85e 100644 --- a/letta/server/rest_api/routers/v1/agents.py +++ b/letta/server/rest_api/routers/v1/agents.py @@ -14,7 +14,7 @@ from letta.schemas.job import JobStatus, JobUpdate from letta.schemas.letta_message import LettaMessageUnion from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest from letta.schemas.letta_response import LettaResponse -from letta.schemas.memory import ArchivalMemorySummary, ContextWindowOverview, CreateArchivalMemory, Memory, RecallMemorySummary +from letta.schemas.memory import ContextWindowOverview, CreateArchivalMemory, Memory from letta.schemas.message import Message, MessageUpdate from letta.schemas.passage import Passage from letta.schemas.run import Run @@ -212,19 +212,6 @@ def get_agent_sources( return server.agent_manager.list_attached_sources(agent_id=agent_id, actor=actor) -@router.get("/{agent_id}/memory/messages", response_model=List[Message], operation_id="list_agent_in_context_messages") -def get_agent_in_context_messages( - agent_id: str, - server: "SyncServer" = Depends(get_letta_server), - user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present -): - """ - Retrieve the messages in the context of a specific agent. - """ - actor = server.user_manager.get_user_or_default(user_id=user_id) - return server.agent_manager.get_in_context_messages(agent_id=agent_id, actor=actor) - - # TODO: remove? can also get with agent blocks @router.get("/{agent_id}/memory", response_model=Memory, operation_id="get_agent_memory") def get_agent_memory( @@ -341,33 +328,6 @@ def update_agent_memory_block( return block -@router.get("/{agent_id}/memory/recall", response_model=RecallMemorySummary, operation_id="get_agent_recall_memory_summary") -def get_agent_recall_memory_summary( - agent_id: str, - server: "SyncServer" = Depends(get_letta_server), - user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present -): - """ - Retrieve the summary of the recall memory of a specific agent. - """ - actor = server.user_manager.get_user_or_default(user_id=user_id) - - return server.get_recall_memory_summary(agent_id=agent_id, actor=actor) - - -@router.get("/{agent_id}/memory/archival", response_model=ArchivalMemorySummary, operation_id="get_agent_archival_memory_summary") -def get_agent_archival_memory_summary( - agent_id: str, - server: "SyncServer" = Depends(get_letta_server), - user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present -): - """ - Retrieve the summary of the archival memory of a specific agent. - """ - actor = server.user_manager.get_user_or_default(user_id=user_id) - return server.get_archival_memory_summary(agent_id=agent_id, actor=actor) - - @router.get("/{agent_id}/archival", response_model=List[Passage], operation_id="list_agent_archival_memory") def get_agent_archival_memory( agent_id: str,