@@ -7,17 +7,15 @@ title: spoon_ai.memory
77# Table of Contents
88
99* [ spoon\_ ai.memory] ( #spoon_ai.memory )
10+ * [ spoon\_ ai.memory.mem0\_ client] ( #spoon_ai.memory.mem0_client )
11+ * [ SpoonMem0] ( #spoon_ai.memory.mem0_client.SpoonMem0 )
12+ * [ add\_ text] ( #spoon_ai.memory.mem0_client.SpoonMem0.add_text )
13+ * [ get\_ all\_ memory] ( #spoon_ai.memory.mem0_client.SpoonMem0.get_all_memory )
14+ * [ spoon\_ ai.memory.remove\_ message] ( #spoon_ai.memory.remove_message )
15+ * [ RemoveMessage] ( #spoon_ai.memory.remove_message.RemoveMessage )
1016* [ spoon\_ ai.memory.utils] ( #spoon_ai.memory.utils )
1117 * [ extract\_ memories] ( #spoon_ai.memory.utils.extract_memories )
1218 * [ extract\_ first\_ memory\_ id] ( #spoon_ai.memory.utils.extract_first_memory_id )
13- * [ spoon\_ ai.memory.short\_ term\_ manager] ( #spoon_ai.memory.short_term_manager )
14- * [ TrimStrategy] ( #spoon_ai.memory.short_term_manager.TrimStrategy )
15- * [ FROM\_ START] ( #spoon_ai.memory.short_term_manager.TrimStrategy.FROM_START )
16- * [ FROM\_ END] ( #spoon_ai.memory.short_term_manager.TrimStrategy.FROM_END )
17- * [ MessageTokenCounter] ( #spoon_ai.memory.short_term_manager.MessageTokenCounter )
18- * [ ShortTermMemoryManager] ( #spoon_ai.memory.short_term_manager.ShortTermMemoryManager )
19- * [ trim\_ messages] ( #spoon_ai.memory.short_term_manager.ShortTermMemoryManager.trim_messages )
20- * [ summarize\_ messages] ( #spoon_ai.memory.short_term_manager.ShortTermMemoryManager.summarize_messages )
2119* [ spoon\_ ai.memory.checkpointer] ( #spoon_ai.memory.checkpointer )
2220 * [ Checkpoint] ( #spoon_ai.memory.checkpointer.Checkpoint )
2321 * [ messages] ( #spoon_ai.memory.checkpointer.Checkpoint.messages )
@@ -55,12 +53,14 @@ title: spoon_ai.memory
5553 * [ after\_ agent] ( #spoon_ai.memory.checkpointer.CheckpointMiddleware.after_agent )
5654 * [ create\_ sqlite\_ checkpointer] ( #spoon_ai.memory.checkpointer.create_sqlite_checkpointer )
5755 * [ create\_ memory\_ checkpointer] ( #spoon_ai.memory.checkpointer.create_memory_checkpointer )
58- * [ spoon\_ ai.memory.remove\_ message] ( #spoon_ai.memory.remove_message )
59- * [ RemoveMessage] ( #spoon_ai.memory.remove_message.RemoveMessage )
60- * [ spoon\_ ai.memory.mem0\_ client] ( #spoon_ai.memory.mem0_client )
61- * [ SpoonMem0] ( #spoon_ai.memory.mem0_client.SpoonMem0 )
62- * [ add\_ text] ( #spoon_ai.memory.mem0_client.SpoonMem0.add_text )
63- * [ get\_ all\_ memory] ( #spoon_ai.memory.mem0_client.SpoonMem0.get_all_memory )
56+ * [ spoon\_ ai.memory.short\_ term\_ manager] ( #spoon_ai.memory.short_term_manager )
57+ * [ TrimStrategy] ( #spoon_ai.memory.short_term_manager.TrimStrategy )
58+ * [ FROM\_ START] ( #spoon_ai.memory.short_term_manager.TrimStrategy.FROM_START )
59+ * [ FROM\_ END] ( #spoon_ai.memory.short_term_manager.TrimStrategy.FROM_END )
60+ * [ MessageTokenCounter] ( #spoon_ai.memory.short_term_manager.MessageTokenCounter )
61+ * [ ShortTermMemoryManager] ( #spoon_ai.memory.short_term_manager.ShortTermMemoryManager )
62+ * [ trim\_ messages] ( #spoon_ai.memory.short_term_manager.ShortTermMemoryManager.trim_messages )
63+ * [ summarize\_ messages] ( #spoon_ai.memory.short_term_manager.ShortTermMemoryManager.summarize_messages )
6464
6565<a id =" spoon_ai.memory " ></a >
6666
@@ -71,113 +71,86 @@ Short-term memory management for conversation history.
7171This module provides memory management utilities for maintaining and optimizing
7272conversation history in chat applications.
7373
74- <a id =" spoon_ai.memory.utils " ></a >
75-
76- # Module ` spoon_ai.memory.utils `
74+ <a id =" spoon_ai.memory.mem0_client " ></a >
7775
78- Memory helpers shared across Mem0 demos and utilities.
76+ # Module ` spoon_ai.memory.mem0_client `
7977
80- <a id =" spoon_ai.memory.utils.extract_memories " ></a >
78+ <a id =" spoon_ai.memory.mem0_client.SpoonMem0 " ></a >
8179
82- #### ` extract_memories `
80+ ## ` SpoonMem0 ` Objects
8381
8482``` python
85- def extract_memories ( result : Any) -> List[ str ]
83+ class SpoonMem0 ()
8684```
8785
88- Normalize Mem0 search/ get responses into a list of memory strings.
89- Supports common shapes: & # 123;"memories": [...]}, {"results": [...]}, {"data": [...]}, list, or scalar.
86+ Lightweight wrapper around Mem0 's MemoryClient with safe defaults .
9087
91- < a id = " spoon_ai.memory.utils.extract_first_memory_id " >< / a>
88+ <a id ="spoon_ai .memory .mem0_client . SpoonMem0 . add_text "></a >
9289
93- # ### `extract_first_memory_id `
90+ #### `add_text `
9491
9592```python
96- def extract_first_memory_id (result : Any) -> Optional[str ]
93+ def add_text (data : str ,
94+ user_id : Optional[str ] = None ,
95+ metadata : Optional[Dict[str , Any]] = None ) -> None
9796```
9897
99- Pull the first memory id from Mem0 responses.
100- Supports common id fields: id , _id, memory_id, uuid.
101-
102- < a id = " spoon_ai.memory.short_term_manager" >< / a>
103-
104- # Module `spoon_ai.memory.short_term_manager`
105-
106- Short- term memory management for conversation history.
98+ Convenience helper for adding a single text memory .
10799
108- < a id =" spoon_ai.memory.short_term_manager.TrimStrategy " >< / a>
100+ <a id ="spoon_ai .memory .mem0_client . SpoonMem0 . get_all_memory "></a >
109101
110- # # `TrimStrategy` Objects
102+ #### ` get_all_memory `
111103
112104```python
113- class TrimStrategy(str , Enum)
105+ def get_all_memory (user_id : Optional[str ] = None ,
106+ limit : Optional[int ] = None ) -> List [str ]
114107```
115108
116- Strategy for trimming messages.
117-
118- < a id =" spoon_ai.memory.short_term_manager.TrimStrategy.FROM_START" >< / a>
119-
120- # ### `FROM_START`
121-
122- Remove oldest messages first
109+ Retrieve all memories for a user (subject to backend limits ).
123110
124- < a id =" spoon_ai.memory.short_term_manager.TrimStrategy.FROM_END " >< / a>
111+ <a id ="spoon_ai .memory .remove_message "></a >
125112
126- # ### `FROM_END `
113+ # Module ` spoon_ai . memory . remove_message `
127114
128- Remove newest messages first
115+ Helpers for emitting message - removal directives .
129116
130- < a id =" spoon_ai.memory.short_term_manager.MessageTokenCounter " >< / a>
117+ <a id ="spoon_ai .memory .remove_message . RemoveMessage "></a >
131118
132- # # `MessageTokenCounter ` Objects
119+ ## `RemoveMessage ` Objects
133120
134121```python
135- class MessageTokenCounter( )
122+ class RemoveMessage ( BaseModel )
136123```
137124
138- Approximate token counter aligned with LangChain semantics.
139-
140- < a id =" spoon_ai.memory.short_term_manager.ShortTermMemoryManager" >< / a>
125+ Lightweight message that signals another message should be removed .
141126
142- # # `ShortTermMemoryManager` Objects
127+ < a id =" spoon_ai . memory . utils "></ a >
143128
144- ```python
145- class ShortTermMemoryManager()
146- ```
129+ # Module `spoon_ai .memory .utils `
147130
148- Manager for short - term conversation memory with advanced operations .
131+ Memory helpers shared across Mem0 demos and utilities .
149132
150- < a id =" spoon_ai.memory.short_term_manager.ShortTermMemoryManager.trim_messages " >< / a>
133+ <a id ="spoon_ai .memory .utils . extract_memories "></a >
151134
152- # ### `trim_messages `
135+ #### `extract_memories `
153136
154137```python
155- async def trim_messages(messages: List[Message],
156- max_tokens: int ,
157- strategy: TrimStrategy = TrimStrategy.FROM_END ,
158- keep_system: bool = True ,
159- model: Optional[str ] = None ) -> List[Message]
138+ def extract_memories (result : Any ) -> List [str ]
160139```
161140
162- Trim messages using a LangChain- style heuristic.
141+ Normalize Mem0 search /get responses into a list of memory strings .
142+ Supports common shapes : & # 123;"memories": [...]}, {"results": [...]}, {"data": [...]}, list, or scalar.
163143
164- < a id =" spoon_ai.memory.short_term_manager.ShortTermMemoryManager.summarize_messages " >< / a>
144+ < a id = " spoon_ai.memory.utils.extract_first_memory_id " >< / a>
165145
166- # ### `summarize_messages `
146+ # ### `extract_first_memory_id `
167147
168148```python
169- async def summarize_messages(
170- messages: List[Message],
171- max_tokens_before_summary: int ,
172- messages_to_keep: int = 5 ,
173- summary_model: Optional[str ] = None ,
174- llm_manager = None ,
175- llm_provider: Optional[str ] = None ,
176- existing_summary: str = " "
177- ) -> Tuple[List[Message], List[RemoveMessage], Optional[str ]]
149+ def extract_first_memory_id (result : Any) -> Optional[str ]
178150```
179151
180- Summarize earlier messages and emit removal directives.
152+ Pull the first memory id from Mem0 responses.
153+ Supports common id fields: id , _id, memory_id, uuid.
181154
182155< a id = " spoon_ai.memory.checkpointer" >< / a>
183156
@@ -661,56 +634,83 @@ Create an in-memory checkpointer for testing.
661634
662635 InMemoryCheckpointer instance
663636
664- < a id =" spoon_ai.memory.remove_message " >< / a>
637+ < a id =" spoon_ai.memory.short_term_manager " >< / a>
665638
666- # Module `spoon_ai.memory.remove_message `
639+ # Module `spoon_ai.memory.short_term_manager `
667640
668- Helpers for emitting message - removal directives .
641+ Short - term memory management for conversation history .
669642
670- < a id =" spoon_ai.memory.remove_message.RemoveMessage " >< / a>
643+ < a id =" spoon_ai.memory.short_term_manager.TrimStrategy " >< / a>
671644
672- # # `RemoveMessage ` Objects
645+ # # `TrimStrategy ` Objects
673646
674647```python
675- class RemoveMessage(BaseModel )
648+ class TrimStrategy( str , Enum )
676649```
677650
678- Lightweight message that signals another message should be removed .
651+ Strategy for trimming messages .
679652
680- < a id =" spoon_ai.memory.mem0_client " >< / a>
653+ < a id =" spoon_ai.memory.short_term_manager.TrimStrategy.FROM_START " >< / a>
681654
682- # Module `spoon_ai.memory.mem0_client `
655+ # ### `FROM_START `
683656
684- < a id = " spoon_ai.memory.mem0_client.SpoonMem0 " >< / a >
657+ Remove oldest messages first
685658
686- # # `SpoonMem0` Objects
659+ < a id =" spoon_ai.memory.short_term_manager.TrimStrategy.FROM_END" >< / a>
660+
661+ # ### `FROM_END`
662+
663+ Remove newest messages first
664+
665+ < a id =" spoon_ai.memory.short_term_manager.MessageTokenCounter" >< / a>
666+
667+ # # `MessageTokenCounter` Objects
687668
688669```python
689- class SpoonMem0 ()
670+ class MessageTokenCounter ()
690671```
691672
692- Lightweight wrapper around Mem0 ' s MemoryClient with safe defaults .
673+ Approximate token counter aligned with LangChain semantics .
693674
694- < a id =" spoon_ai.memory.mem0_client.SpoonMem0.add_text " >< / a>
675+ < a id =" spoon_ai.memory.short_term_manager.ShortTermMemoryManager " >< / a>
695676
696- # ### `add_text`
677+ # # `ShortTermMemoryManager` Objects
697678
698679```python
699- def add_text(data: str ,
700- user_id: Optional[str ] = None ,
701- metadata: Optional[Dict[str , Any]] = None ) -> None
680+ class ShortTermMemoryManager()
702681```
703682
704- Convenience helper for adding a single text memory .
683+ Manager for short - term conversation memory with advanced operations .
705684
706- < a id =" spoon_ai.memory.mem0_client.SpoonMem0.get_all_memory " >< / a>
685+ < a id =" spoon_ai.memory.short_term_manager.ShortTermMemoryManager.trim_messages " >< / a>
707686
708- # ### `get_all_memory `
687+ # ### `trim_messages `
709688
710689```python
711- def get_all_memory(user_id: Optional[str ] = None ,
712- limit: Optional[int ] = None ) -> List[str ]
690+ async def trim_messages(messages: List[Message],
691+ max_tokens: int ,
692+ strategy: TrimStrategy = TrimStrategy.FROM_END ,
693+ keep_system: bool = True ,
694+ model: Optional[str ] = None ) -> List[Message]
713695```
714696
715- Retrieve all memories for a user (subject to backend limits).
697+ Trim messages using a LangChain- style heuristic.
698+
699+ < a id =" spoon_ai.memory.short_term_manager.ShortTermMemoryManager.summarize_messages" >< / a>
700+
701+ # ### `summarize_messages`
702+
703+ ```python
704+ async def summarize_messages(
705+ messages: List[Message],
706+ max_tokens_before_summary: int ,
707+ messages_to_keep: int = 5 ,
708+ summary_model: Optional[str ] = None ,
709+ llm_manager = None ,
710+ llm_provider: Optional[str ] = None ,
711+ existing_summary: str = " "
712+ ) -> Tuple[List[Message], List[RemoveMessage], Optional[str ]]
713+ ```
714+
715+ Summarize earlier messages and emit removal directives.
716716
0 commit comments