Source code for agent.stores.memory
"""
In-memory session store.
"""
from typing import Any
from agent.stores.base import SessionStore
[docs]
class InMemoryStore(SessionStore):
"""
In-memory session store.
Stores sessions in memory. Data is lost when the process ends.
Useful for development and testing.
Example:
```python
store = InMemoryStore()
# Save session
store.save("session-123", {"messages": [...], "system": "..."})
# Load session
data = store.load("session-123")
```
"""
def __init__(self) -> None:
self._sessions: dict[str, dict[str, Any]] = {}
[docs]
def save(self, session_id: str, data: dict[str, Any]) -> None:
"""Save session data."""
self._sessions[session_id] = data
[docs]
def load(self, session_id: str) -> dict[str, Any] | None:
"""Load session data."""
return self._sessions.get(session_id)
[docs]
def delete(self, session_id: str) -> bool:
"""Delete session data."""
if session_id in self._sessions:
del self._sessions[session_id]
return True
return False
[docs]
def list_sessions(self) -> list[str]:
"""List all session IDs."""
return list(self._sessions.keys())
[docs]
def clear(self) -> None:
"""Clear all sessions."""
self._sessions.clear()
def __len__(self) -> int:
"""Return number of stored sessions."""
return len(self._sessions)