ShortTermMemory API Reference
API for conversation and message storage.
Overview
ShortTermMemory handles conversations and messages with sequential linking, semantic search, and session management.
async with MemoryClient(settings) as client:
# Access via client
short_term = client.short_term
# Add a message
message = await short_term.add_message(
session_id="user-123",
role="user",
content="Hello, world!"
)
Message Operations
add_message
Add a message to a conversation.
message = await short_term.add_message(
session_id: str,
role: str,
content: str,
metadata: dict[str, Any] | None = None,
timestamp: datetime | None = None,
)
add_messages
Add multiple messages in batch.
messages = await short_term.add_messages(
session_id: str,
messages: list[dict], # [{"role": "user", "content": "..."}]
)
Search Operations
search_messages
Semantic search across messages.
results = await short_term.search_messages(
query: str,
session_id: str | None = None,
limit: int = 10,
min_score: float = 0.0,
metadata_filter: dict[str, Any] | None = None,
)
Session Operations
list_sessions
List all conversation sessions.
sessions = await short_term.list_sessions(
user_id: str | None = None,
limit: int = 100,
)
Conversation Summaries
Message Linking
Messages are automatically linked in sequence:
(Conversation) -[:FIRST_MESSAGE]-> (Message1)
(Message1) -[:NEXT_MESSAGE]-> (Message2)
(Message2) -[:NEXT_MESSAGE]-> (Message3)
Message Model
@dataclass
class Message:
id: str
session_id: str
role: str
content: str
timestamp: datetime
metadata: dict[str, Any]
embedding: list[float] | None
Example
async with MemoryClient(settings) as client:
# Store conversation
await client.short_term.add_message("user-123", "user", "What's the weather?")
await client.short_term.add_message("user-123", "assistant", "It's sunny today!")
# Search across all conversations
results = await client.short_term.search_messages("weather forecast")
for message, score in results:
print(f"[{score:.2f}] {message.role}: {message.content}")
# Get recent messages for a session
messages = await client.short_term.get_messages("user-123", limit=10)