Skip to content

Commit e6ba761

Browse files
committed
Remove deprecated agent-memory API surface
The agent-memory feature was removed from the platform backend; the `memories` resource (list/create/search/delete) now 404s. Drop the resource, its types, client wiring, tests, and docs. Bump 0.7.0 -> 0.8.0.
1 parent 3661681 commit e6ba761

11 files changed

Lines changed: 4 additions & 156 deletions

File tree

‎docs/api-client.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ except NotFoundError as e:
3131

3232
| Resource | Methods |
3333
| ------------------------- | ------------------------------------------------------------------------ |
34-
| `client.agents` | `list`, `get`, `create`, `update`, `delete`, `execute`, `list_versions`, `create_version`, `list_guardrails`, `create_guardrail`, `list_memories`, `create_memory`, `search_memories`, `delete_all_memories` |
34+
| `client.agents` | `list`, `get`, `create`, `update`, `delete`, `execute`, `list_versions`, `create_version`, `list_guardrails`, `create_guardrail` |
3535
| `client.prompts` | `list`, `get`, `create`, `update`, `delete`, `list_versions`, `create_version` |
3636
| `client.executions` | `list`, `get` |
3737
| `client.credentials` | `list`, `get`, `create`, `update`, `delete`, `set_default`, `check_connection` |

‎promptrails/__init__.py‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
from .types import (
3939
Agent,
4040
AgentExecution,
41-
AgentMemory,
4241
AgentTrigger,
4342
AgentTriggerCreateResponse,
4443
AgentVersion,
@@ -82,7 +81,6 @@
8281
"Agent",
8382
"AgentConfig",
8483
"AgentExecution",
85-
"AgentMemory",
8684
"AgentTrigger",
8785
"AgentTriggerCreateResponse",
8886
"AgentVFSFile",

‎promptrails/_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""SDK version — kept in sync with pyproject.toml and git tags."""
22

3-
VERSION = "0.7.0"
3+
VERSION = "0.8.0"

‎promptrails/async_client.py‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
AsyncMCPToolsResource,
2222
AsyncMediaModelsResource,
2323
AsyncMediaResource,
24-
AsyncMemoriesResource,
2524
AsyncPromptsResource,
2625
AsyncScoresResource,
2726
AsyncSessionsResource,
@@ -55,7 +54,6 @@ def __init__(
5554
self.credentials = AsyncCredentialsResource(self._http)
5655
self.data_sources = AsyncDataSourcesResource(self._http)
5756
self.chat = AsyncChatResource(self._http)
58-
self.memories = AsyncMemoriesResource(self._http)
5957
self.traces = AsyncTracesResource(self._http)
6058
self.costs = AsyncCostsResource(self._http)
6159
self.mcp_tools = AsyncMCPToolsResource(self._http)

‎promptrails/client.py‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
MCPToolsResource,
2222
MediaModelsResource,
2323
MediaResource,
24-
MemoriesResource,
2524
PromptsResource,
2625
ScoresResource,
2726
SessionsResource,
@@ -55,7 +54,6 @@ def __init__(
5554
self.credentials = CredentialsResource(self._http)
5655
self.data_sources = DataSourcesResource(self._http)
5756
self.chat = ChatResource(self._http)
58-
self.memories = MemoriesResource(self._http)
5957
self.traces = TracesResource(self._http)
6058
self.costs = CostsResource(self._http)
6159
self.mcp_tools = MCPToolsResource(self._http)

‎promptrails/resources/__init__.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from .mcp_tools import AsyncMCPToolsResource, MCPToolsResource
1717
from .media import AsyncMediaResource, MediaResource
1818
from .media_models import AsyncMediaModelsResource, MediaModelsResource
19-
from .memories import AsyncMemoriesResource, MemoriesResource
2019
from .prompts import AsyncPromptsResource, PromptsResource
2120
from .scores import AsyncScoresResource, ScoresResource
2221
from .sessions import AsyncSessionsResource, SessionsResource
@@ -48,7 +47,6 @@
4847
"AsyncMCPToolsResource",
4948
"AsyncMediaModelsResource",
5049
"AsyncMediaResource",
51-
"AsyncMemoriesResource",
5250
"AsyncPromptsResource",
5351
"AsyncScoresResource",
5452
"AsyncSessionsResource",
@@ -66,7 +64,6 @@
6664
"MCPToolsResource",
6765
"MediaModelsResource",
6866
"MediaResource",
69-
"MemoriesResource",
7067
"PromptsResource",
7168
"ScoresResource",
7269
"SessionsResource",

‎promptrails/resources/agents.py‎

Lines changed: 1 addition & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from ..agent_config import AgentConfig
66
from ..pagination import PaginatedResponse
7-
from ..types import Agent, AgentMemory, AgentVersion, ExecutionResult, Guardrail
7+
from ..types import Agent, AgentVersion, ExecutionResult, Guardrail
88
from .base import AsyncBaseResource, BaseResource
99

1010

@@ -138,54 +138,6 @@ def create_guardrail(
138138
body = self._http.post(f"/api/v1/agents/{agent_id}/guardrails", json=payload)
139139
return Guardrail.from_dict(self._unwrap(body))
140140

141-
def list_memories(
142-
self, agent_id: str, *, page: int = 1, limit: int = 20
143-
) -> PaginatedResponse[AgentMemory]:
144-
body = self._http.get(
145-
f"/api/v1/agents/{agent_id}/memories", params={"page": page, "limit": limit}
146-
)
147-
return PaginatedResponse.from_response(body, AgentMemory.from_dict)
148-
149-
def create_memory(
150-
self,
151-
agent_id: str,
152-
*,
153-
content: str,
154-
memory_type: str,
155-
importance: Optional[float] = None,
156-
metadata: Optional[Dict[str, Any]] = None,
157-
chat_session_id: Optional[str] = None,
158-
) -> AgentMemory:
159-
payload: Dict[str, Any] = {"content": content, "memory_type": memory_type}
160-
if importance is not None:
161-
payload["importance"] = importance
162-
if metadata is not None:
163-
payload["metadata"] = metadata
164-
if chat_session_id is not None:
165-
payload["chat_session_id"] = chat_session_id
166-
body = self._http.post(f"/api/v1/agents/{agent_id}/memories", json=payload)
167-
return AgentMemory.from_dict(self._unwrap(body))
168-
169-
def search_memories(
170-
self,
171-
agent_id: str,
172-
*,
173-
query: str,
174-
threshold: Optional[float] = None,
175-
limit: Optional[int] = None,
176-
) -> List[AgentMemory]:
177-
payload: Dict[str, Any] = {"query": query}
178-
if threshold is not None:
179-
payload["threshold"] = threshold
180-
if limit is not None:
181-
payload["limit"] = limit
182-
body = self._http.post(f"/api/v1/agents/{agent_id}/memories/search", json=payload)
183-
data = self._unwrap(body)
184-
return [AgentMemory.from_dict(m) for m in (data if isinstance(data, list) else [])]
185-
186-
def delete_all_memories(self, agent_id: str) -> None:
187-
self._http.delete(f"/api/v1/agents/{agent_id}/memories")
188-
189141

190142
class AsyncAgentsResource(AsyncBaseResource):
191143
async def list(
@@ -316,51 +268,3 @@ async def create_guardrail(
316268
payload["config"] = config
317269
body = await self._http.post(f"/api/v1/agents/{agent_id}/guardrails", json=payload)
318270
return Guardrail.from_dict(self._unwrap(body))
319-
320-
async def list_memories(
321-
self, agent_id: str, *, page: int = 1, limit: int = 20
322-
) -> PaginatedResponse[AgentMemory]:
323-
body = await self._http.get(
324-
f"/api/v1/agents/{agent_id}/memories", params={"page": page, "limit": limit}
325-
)
326-
return PaginatedResponse.from_response(body, AgentMemory.from_dict)
327-
328-
async def create_memory(
329-
self,
330-
agent_id: str,
331-
*,
332-
content: str,
333-
memory_type: str,
334-
importance: Optional[float] = None,
335-
metadata: Optional[Dict[str, Any]] = None,
336-
chat_session_id: Optional[str] = None,
337-
) -> AgentMemory:
338-
payload: Dict[str, Any] = {"content": content, "memory_type": memory_type}
339-
if importance is not None:
340-
payload["importance"] = importance
341-
if metadata is not None:
342-
payload["metadata"] = metadata
343-
if chat_session_id is not None:
344-
payload["chat_session_id"] = chat_session_id
345-
body = await self._http.post(f"/api/v1/agents/{agent_id}/memories", json=payload)
346-
return AgentMemory.from_dict(self._unwrap(body))
347-
348-
async def search_memories(
349-
self,
350-
agent_id: str,
351-
*,
352-
query: str,
353-
threshold: Optional[float] = None,
354-
limit: Optional[int] = None,
355-
) -> List[AgentMemory]:
356-
payload: Dict[str, Any] = {"query": query}
357-
if threshold is not None:
358-
payload["threshold"] = threshold
359-
if limit is not None:
360-
payload["limit"] = limit
361-
body = await self._http.post(f"/api/v1/agents/{agent_id}/memories/search", json=payload)
362-
data = self._unwrap(body)
363-
return [AgentMemory.from_dict(m) for m in (data if isinstance(data, list) else [])]
364-
365-
async def delete_all_memories(self, agent_id: str) -> None:
366-
await self._http.delete(f"/api/v1/agents/{agent_id}/memories")

‎promptrails/resources/memories.py‎

Lines changed: 0 additions & 22 deletions
This file was deleted.

‎promptrails/types.py‎

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -317,30 +317,6 @@ def from_dict(cls, data: Dict[str, Any]) -> "ChatSession":
317317
return _from_dict(cls, data)
318318

319319

320-
# --- Memory ---
321-
322-
323-
@dataclass
324-
class AgentMemory:
325-
id: str = ""
326-
workspace_id: str = ""
327-
agent_id: str = ""
328-
content: str = ""
329-
metadata: Optional[Dict[str, Any]] = None
330-
memory_type: str = ""
331-
importance: float = 0.5
332-
access_count: int = 0
333-
last_accessed_at: Optional[str] = None
334-
chat_session_id: Optional[str] = None
335-
created_by_id: Optional[str] = None
336-
created_at: str = ""
337-
updated_at: str = ""
338-
339-
@classmethod
340-
def from_dict(cls, data: Dict[str, Any]) -> "AgentMemory":
341-
return _from_dict(cls, data)
342-
343-
344320
# --- Trace ---
345321

346322

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "promptrails"
7-
version = "0.7.0"
7+
version = "0.8.0"
88
description = "Official Python SDK for the PromptRails API"
99
readme = "README.md"
1010
license = {text = "MIT"}

0 commit comments

Comments
 (0)