warm-memory 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {warm_memory-0.2.1 → warm_memory-0.2.2}/PKG-INFO +59 -11
- {warm_memory-0.2.1 → warm_memory-0.2.2}/README.md +58 -10
- {warm_memory-0.2.1 → warm_memory-0.2.2}/pyproject.toml +1 -1
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory.egg-info/PKG-INFO +59 -11
- {warm_memory-0.2.1 → warm_memory-0.2.2}/LICENSE +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/setup.cfg +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/tests/test_benchmark.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/tests/test_langgraph_agent_and_benchmark.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/tests/test_langgraph_store.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/tests/test_memory.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/__init__.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/benchmark.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/buffer.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/decorators.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/langgraph/__init__.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/langgraph/agent.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/langgraph/benchmark.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/langgraph/embeddings.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/langgraph/store.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/scoring.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory/workload.py +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory.egg-info/SOURCES.txt +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory.egg-info/dependency_links.txt +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory.egg-info/requires.txt +0 -0
- {warm_memory-0.2.1 → warm_memory-0.2.2}/warm_memory.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: warm-memory
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Capacity-bounded warm memory for LLM agents, with a LangGraph BaseStore implementation, embeddings-based importance scoring, and a comparative benchmark.
|
|
5
5
|
Author: Vivek Singh
|
|
6
6
|
License-Expression: MIT
|
|
@@ -34,6 +34,7 @@ Dynamic: license-file
|
|
|
34
34
|
|
|
35
35
|
# WarmMemory
|
|
36
36
|
|
|
37
|
+
[](https://pypi.org/project/warm-memory/)
|
|
37
38
|
[](https://github.com/vsingh45/WarmMemory/actions/workflows/ci.yml)
|
|
38
39
|
[](https://www.python.org/)
|
|
39
40
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -116,7 +117,15 @@ The benchmark models a practical split:
|
|
|
116
117
|
## Installation
|
|
117
118
|
|
|
118
119
|
```bash
|
|
119
|
-
|
|
120
|
+
pip install warm-memory
|
|
121
|
+
# or with the LangGraph integration:
|
|
122
|
+
pip install warm-memory[langgraph]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Or install from source for development:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
python3 -m pip install -e ".[langgraph]"
|
|
120
129
|
```
|
|
121
130
|
|
|
122
131
|
## Quick Start
|
|
@@ -196,11 +205,49 @@ The HTML guide explains:
|
|
|
196
205
|
- how to use the package,
|
|
197
206
|
- and how the components fit together.
|
|
198
207
|
|
|
199
|
-
## Architecture
|
|
200
|
-
|
|
201
|
-

|
|
211
|
+
|
|
212
|
+
The pipeline:
|
|
213
|
+
|
|
214
|
+
1. **Agent Runtime** receives the user query in a per-user namespace and
|
|
215
|
+
triggers two reads: a fast lookup against **WarmMemory** (the in-process
|
|
216
|
+
working set) and a **Retrieval Ranker** scoring pass over those rows
|
|
217
|
+
(`KeywordImportanceScorer` by default; swap in `EmbeddingsImportanceScorer`
|
|
218
|
+
for semantic ranking).
|
|
219
|
+
2. **Warm Hit?** checks the best score against the configured threshold.
|
|
220
|
+
3. **Green path (warm hit):** results flow to **Prompt Builder**, which injects
|
|
221
|
+
only the top-K rows into the system prompt before invoking the **LLM**.
|
|
222
|
+
The vector tier is never touched.
|
|
223
|
+
4. **Orange path (warm miss):** the query falls through to **Long-Term Memory**
|
|
224
|
+
(LangGraph's `InMemoryStore` with an embedding index, `PostgresStore`, or
|
|
225
|
+
any `BaseStore`) and the LLM consumes those results as fallback.
|
|
226
|
+
5. **Dashed write-back loop:** the LLM response is captured by the decorator
|
|
227
|
+
and written back to WarmMemory (and mirrored to Long-Term Memory by the
|
|
228
|
+
`memory_write` node), so future turns can recall it.
|
|
229
|
+
|
|
230
|
+
On the synthetic benchmark, ~50% of turns take the green path, eliminating
|
|
231
|
+
that many vector-store calls.
|
|
232
|
+
|
|
233
|
+
The diagram ships in two paired formats:
|
|
234
|
+
|
|
235
|
+
- **[`docs/warm_memory_architecture.drawio.svg`](docs/warm_memory_architecture.drawio.svg)** —
|
|
236
|
+
the rendered SVG that GitHub displays inline. The decision arrows flow
|
|
237
|
+
("marching ants" SMIL animation) so the hot/cold paths read at a glance.
|
|
238
|
+
Open the file directly in a browser to see the animation; GitHub also
|
|
239
|
+
renders the animation when displaying the SVG.
|
|
240
|
+
- **[`docs/warm_memory_architecture.drawio`](docs/warm_memory_architecture.drawio)** —
|
|
241
|
+
the editable mxgraph source. Open at [diagrams.net](https://app.diagrams.net)
|
|
242
|
+
(File → Open from device) to edit; re-export the SVG when done.
|
|
243
|
+
|
|
244
|
+
The `.drawio.svg` also embeds the mxgraph XML in its `content` attribute, so
|
|
245
|
+
either file round-trips through the editor — they're kept in sync from the
|
|
246
|
+
same generator script.
|
|
247
|
+
|
|
248
|
+
For a richer narrated walkthrough, open
|
|
249
|
+
[`docs/warm_memory_guide.html`](docs/warm_memory_guide.html) locally or publish
|
|
250
|
+
it with GitHub Pages.
|
|
204
251
|
|
|
205
252
|
## Development
|
|
206
253
|
|
|
@@ -213,10 +260,10 @@ python3 -m unittest discover -s tests -v
|
|
|
213
260
|
## LangGraph Integration
|
|
214
261
|
|
|
215
262
|
WarmMemory ships an optional `warm_memory.langgraph` module that plugs directly
|
|
216
|
-
into the LangGraph ecosystem. Install the extra:
|
|
263
|
+
into the LangGraph ecosystem. Install with the extra:
|
|
217
264
|
|
|
218
265
|
```bash
|
|
219
|
-
|
|
266
|
+
pip install warm-memory[langgraph]
|
|
220
267
|
```
|
|
221
268
|
|
|
222
269
|
### Drop-in `BaseStore`
|
|
@@ -297,8 +344,9 @@ to compare against real semantic search.
|
|
|
297
344
|
- record actual model latency and token usage from a live LLM pipeline
|
|
298
345
|
- add charts and experiment summaries for publication-style reporting
|
|
299
346
|
- TTL support for the LangGraph `BaseStore`
|
|
300
|
-
- publish `warm-memory` to PyPI
|
|
301
|
-
|
|
347
|
+
- ~~publish `warm-memory` to PyPI~~ ([live at v0.2.1](https://pypi.org/project/warm-memory/))
|
|
348
|
+
- propose inclusion in LangGraph's third-party store list (LangChain Forum
|
|
349
|
+
proposal in flight)
|
|
302
350
|
|
|
303
351
|
## License
|
|
304
352
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# WarmMemory
|
|
2
2
|
|
|
3
|
+
[](https://pypi.org/project/warm-memory/)
|
|
3
4
|
[](https://github.com/vsingh45/WarmMemory/actions/workflows/ci.yml)
|
|
4
5
|
[](https://www.python.org/)
|
|
5
6
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -82,7 +83,15 @@ The benchmark models a practical split:
|
|
|
82
83
|
## Installation
|
|
83
84
|
|
|
84
85
|
```bash
|
|
85
|
-
|
|
86
|
+
pip install warm-memory
|
|
87
|
+
# or with the LangGraph integration:
|
|
88
|
+
pip install warm-memory[langgraph]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Or install from source for development:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
python3 -m pip install -e ".[langgraph]"
|
|
86
95
|
```
|
|
87
96
|
|
|
88
97
|
## Quick Start
|
|
@@ -162,11 +171,49 @@ The HTML guide explains:
|
|
|
162
171
|
- how to use the package,
|
|
163
172
|
- and how the components fit together.
|
|
164
173
|
|
|
165
|
-
## Architecture
|
|
166
|
-
|
|
167
|
-

|
|
177
|
+
|
|
178
|
+
The pipeline:
|
|
179
|
+
|
|
180
|
+
1. **Agent Runtime** receives the user query in a per-user namespace and
|
|
181
|
+
triggers two reads: a fast lookup against **WarmMemory** (the in-process
|
|
182
|
+
working set) and a **Retrieval Ranker** scoring pass over those rows
|
|
183
|
+
(`KeywordImportanceScorer` by default; swap in `EmbeddingsImportanceScorer`
|
|
184
|
+
for semantic ranking).
|
|
185
|
+
2. **Warm Hit?** checks the best score against the configured threshold.
|
|
186
|
+
3. **Green path (warm hit):** results flow to **Prompt Builder**, which injects
|
|
187
|
+
only the top-K rows into the system prompt before invoking the **LLM**.
|
|
188
|
+
The vector tier is never touched.
|
|
189
|
+
4. **Orange path (warm miss):** the query falls through to **Long-Term Memory**
|
|
190
|
+
(LangGraph's `InMemoryStore` with an embedding index, `PostgresStore`, or
|
|
191
|
+
any `BaseStore`) and the LLM consumes those results as fallback.
|
|
192
|
+
5. **Dashed write-back loop:** the LLM response is captured by the decorator
|
|
193
|
+
and written back to WarmMemory (and mirrored to Long-Term Memory by the
|
|
194
|
+
`memory_write` node), so future turns can recall it.
|
|
195
|
+
|
|
196
|
+
On the synthetic benchmark, ~50% of turns take the green path, eliminating
|
|
197
|
+
that many vector-store calls.
|
|
198
|
+
|
|
199
|
+
The diagram ships in two paired formats:
|
|
200
|
+
|
|
201
|
+
- **[`docs/warm_memory_architecture.drawio.svg`](docs/warm_memory_architecture.drawio.svg)** —
|
|
202
|
+
the rendered SVG that GitHub displays inline. The decision arrows flow
|
|
203
|
+
("marching ants" SMIL animation) so the hot/cold paths read at a glance.
|
|
204
|
+
Open the file directly in a browser to see the animation; GitHub also
|
|
205
|
+
renders the animation when displaying the SVG.
|
|
206
|
+
- **[`docs/warm_memory_architecture.drawio`](docs/warm_memory_architecture.drawio)** —
|
|
207
|
+
the editable mxgraph source. Open at [diagrams.net](https://app.diagrams.net)
|
|
208
|
+
(File → Open from device) to edit; re-export the SVG when done.
|
|
209
|
+
|
|
210
|
+
The `.drawio.svg` also embeds the mxgraph XML in its `content` attribute, so
|
|
211
|
+
either file round-trips through the editor — they're kept in sync from the
|
|
212
|
+
same generator script.
|
|
213
|
+
|
|
214
|
+
For a richer narrated walkthrough, open
|
|
215
|
+
[`docs/warm_memory_guide.html`](docs/warm_memory_guide.html) locally or publish
|
|
216
|
+
it with GitHub Pages.
|
|
170
217
|
|
|
171
218
|
## Development
|
|
172
219
|
|
|
@@ -179,10 +226,10 @@ python3 -m unittest discover -s tests -v
|
|
|
179
226
|
## LangGraph Integration
|
|
180
227
|
|
|
181
228
|
WarmMemory ships an optional `warm_memory.langgraph` module that plugs directly
|
|
182
|
-
into the LangGraph ecosystem. Install the extra:
|
|
229
|
+
into the LangGraph ecosystem. Install with the extra:
|
|
183
230
|
|
|
184
231
|
```bash
|
|
185
|
-
|
|
232
|
+
pip install warm-memory[langgraph]
|
|
186
233
|
```
|
|
187
234
|
|
|
188
235
|
### Drop-in `BaseStore`
|
|
@@ -263,8 +310,9 @@ to compare against real semantic search.
|
|
|
263
310
|
- record actual model latency and token usage from a live LLM pipeline
|
|
264
311
|
- add charts and experiment summaries for publication-style reporting
|
|
265
312
|
- TTL support for the LangGraph `BaseStore`
|
|
266
|
-
- publish `warm-memory` to PyPI
|
|
267
|
-
|
|
313
|
+
- ~~publish `warm-memory` to PyPI~~ ([live at v0.2.1](https://pypi.org/project/warm-memory/))
|
|
314
|
+
- propose inclusion in LangGraph's third-party store list (LangChain Forum
|
|
315
|
+
proposal in flight)
|
|
268
316
|
|
|
269
317
|
## License
|
|
270
318
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "warm-memory"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "Capacity-bounded warm memory for LLM agents, with a LangGraph BaseStore implementation, embeddings-based importance scoring, and a comparative benchmark."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: warm-memory
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Capacity-bounded warm memory for LLM agents, with a LangGraph BaseStore implementation, embeddings-based importance scoring, and a comparative benchmark.
|
|
5
5
|
Author: Vivek Singh
|
|
6
6
|
License-Expression: MIT
|
|
@@ -34,6 +34,7 @@ Dynamic: license-file
|
|
|
34
34
|
|
|
35
35
|
# WarmMemory
|
|
36
36
|
|
|
37
|
+
[](https://pypi.org/project/warm-memory/)
|
|
37
38
|
[](https://github.com/vsingh45/WarmMemory/actions/workflows/ci.yml)
|
|
38
39
|
[](https://www.python.org/)
|
|
39
40
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -116,7 +117,15 @@ The benchmark models a practical split:
|
|
|
116
117
|
## Installation
|
|
117
118
|
|
|
118
119
|
```bash
|
|
119
|
-
|
|
120
|
+
pip install warm-memory
|
|
121
|
+
# or with the LangGraph integration:
|
|
122
|
+
pip install warm-memory[langgraph]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Or install from source for development:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
python3 -m pip install -e ".[langgraph]"
|
|
120
129
|
```
|
|
121
130
|
|
|
122
131
|
## Quick Start
|
|
@@ -196,11 +205,49 @@ The HTML guide explains:
|
|
|
196
205
|
- how to use the package,
|
|
197
206
|
- and how the components fit together.
|
|
198
207
|
|
|
199
|
-
## Architecture
|
|
200
|
-
|
|
201
|
-

|
|
211
|
+
|
|
212
|
+
The pipeline:
|
|
213
|
+
|
|
214
|
+
1. **Agent Runtime** receives the user query in a per-user namespace and
|
|
215
|
+
triggers two reads: a fast lookup against **WarmMemory** (the in-process
|
|
216
|
+
working set) and a **Retrieval Ranker** scoring pass over those rows
|
|
217
|
+
(`KeywordImportanceScorer` by default; swap in `EmbeddingsImportanceScorer`
|
|
218
|
+
for semantic ranking).
|
|
219
|
+
2. **Warm Hit?** checks the best score against the configured threshold.
|
|
220
|
+
3. **Green path (warm hit):** results flow to **Prompt Builder**, which injects
|
|
221
|
+
only the top-K rows into the system prompt before invoking the **LLM**.
|
|
222
|
+
The vector tier is never touched.
|
|
223
|
+
4. **Orange path (warm miss):** the query falls through to **Long-Term Memory**
|
|
224
|
+
(LangGraph's `InMemoryStore` with an embedding index, `PostgresStore`, or
|
|
225
|
+
any `BaseStore`) and the LLM consumes those results as fallback.
|
|
226
|
+
5. **Dashed write-back loop:** the LLM response is captured by the decorator
|
|
227
|
+
and written back to WarmMemory (and mirrored to Long-Term Memory by the
|
|
228
|
+
`memory_write` node), so future turns can recall it.
|
|
229
|
+
|
|
230
|
+
On the synthetic benchmark, ~50% of turns take the green path, eliminating
|
|
231
|
+
that many vector-store calls.
|
|
232
|
+
|
|
233
|
+
The diagram ships in two paired formats:
|
|
234
|
+
|
|
235
|
+
- **[`docs/warm_memory_architecture.drawio.svg`](docs/warm_memory_architecture.drawio.svg)** —
|
|
236
|
+
the rendered SVG that GitHub displays inline. The decision arrows flow
|
|
237
|
+
("marching ants" SMIL animation) so the hot/cold paths read at a glance.
|
|
238
|
+
Open the file directly in a browser to see the animation; GitHub also
|
|
239
|
+
renders the animation when displaying the SVG.
|
|
240
|
+
- **[`docs/warm_memory_architecture.drawio`](docs/warm_memory_architecture.drawio)** —
|
|
241
|
+
the editable mxgraph source. Open at [diagrams.net](https://app.diagrams.net)
|
|
242
|
+
(File → Open from device) to edit; re-export the SVG when done.
|
|
243
|
+
|
|
244
|
+
The `.drawio.svg` also embeds the mxgraph XML in its `content` attribute, so
|
|
245
|
+
either file round-trips through the editor — they're kept in sync from the
|
|
246
|
+
same generator script.
|
|
247
|
+
|
|
248
|
+
For a richer narrated walkthrough, open
|
|
249
|
+
[`docs/warm_memory_guide.html`](docs/warm_memory_guide.html) locally or publish
|
|
250
|
+
it with GitHub Pages.
|
|
204
251
|
|
|
205
252
|
## Development
|
|
206
253
|
|
|
@@ -213,10 +260,10 @@ python3 -m unittest discover -s tests -v
|
|
|
213
260
|
## LangGraph Integration
|
|
214
261
|
|
|
215
262
|
WarmMemory ships an optional `warm_memory.langgraph` module that plugs directly
|
|
216
|
-
into the LangGraph ecosystem. Install the extra:
|
|
263
|
+
into the LangGraph ecosystem. Install with the extra:
|
|
217
264
|
|
|
218
265
|
```bash
|
|
219
|
-
|
|
266
|
+
pip install warm-memory[langgraph]
|
|
220
267
|
```
|
|
221
268
|
|
|
222
269
|
### Drop-in `BaseStore`
|
|
@@ -297,8 +344,9 @@ to compare against real semantic search.
|
|
|
297
344
|
- record actual model latency and token usage from a live LLM pipeline
|
|
298
345
|
- add charts and experiment summaries for publication-style reporting
|
|
299
346
|
- TTL support for the LangGraph `BaseStore`
|
|
300
|
-
- publish `warm-memory` to PyPI
|
|
301
|
-
|
|
347
|
+
- ~~publish `warm-memory` to PyPI~~ ([live at v0.2.1](https://pypi.org/project/warm-memory/))
|
|
348
|
+
- propose inclusion in LangGraph's third-party store list (LangChain Forum
|
|
349
|
+
proposal in flight)
|
|
302
350
|
|
|
303
351
|
## License
|
|
304
352
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|