Skip to main content

Table of Contents

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).