ShortTermMemory API Reference
Table of Contents
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
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)