Table of Contents
- spoon_ai.memory
- spoon_ai.memory.utils
- spoon_ai.memory.short_term_manager
- spoon_ai.memory.remove_message
- spoon_ai.memory.mem0_client
Module spoon_ai.memory
Short-term memory management for conversation history.
This module provides memory management utilities for maintaining and optimizing conversation history in chat applications.
Module spoon_ai.memory.utils
Memory helpers shared across Mem0 demos and utilities.
extract_memories​
def extract_memories(result: Any) -> List[str]
Normalize Mem0 search/get responses into a list of memory strings. Supports common shapes: {"memories": [...]}, {"results": [...]}, {"data": [...]}, list, or scalar.
extract_first_memory_id​
def extract_first_memory_id(result: Any) -> Optional[str]
Pull the first memory id from Mem0 responses. Supports common id fields: id, _id, memory_id, uuid.
Module spoon_ai.memory.short_term_manager
Short-term memory management for conversation history.
TrimStrategy Objects​
class TrimStrategy(str, Enum)
Strategy for trimming messages.
FROM_START​
Remove oldest messages first
FROM_END​
Remove newest messages first
MessageTokenCounter Objects​
class MessageTokenCounter()
Approximate token counter aligned with LangChain semantics.
ShortTermMemoryManager Objects​
class ShortTermMemoryManager()
Manager for short-term conversation memory with advanced operations.
trim_messages​
async def trim_messages(messages: List[Message],
max_tokens: int,
strategy: TrimStrategy = TrimStrategy.FROM_END,
keep_system: bool = True,
model: Optional[str] = None) -> List[Message]
Trim messages using a LangChain-style heuristic.
summarize_messages​
async def summarize_messages(
messages: List[Message],
max_tokens_before_summary: int,
messages_to_keep: int = 5,
summary_model: Optional[str] = None,
llm_manager=None,
llm_provider: Optional[str] = None,
existing_summary: str = ""
) -> Tuple[List[Message], List[RemoveMessage], Optional[str]]
Summarize earlier messages and emit removal directives.
Module spoon_ai.memory.remove_message
Helpers for emitting message-removal directives.
RemoveMessage Objects​
class RemoveMessage(BaseModel)
Lightweight message that signals another message should be removed.
Module spoon_ai.memory.mem0_client
SpoonMem0 Objects​
class SpoonMem0()
Lightweight wrapper around Mem0's MemoryClient with safe defaults.
add_text​
def add_text(data: str,
user_id: Optional[str] = None,
metadata: Optional[Dict[str, Any]] = None) -> None
Convenience helper for adding a single text memory.
get_all_memory​
def get_all_memory(user_id: Optional[str] = None,
limit: Optional[int] = None) -> List[str]
Retrieve all memories for a user (subject to backend limits).