etchmem 0.1.3__tar.gz → 0.1.4__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.
- {etchmem-0.1.3 → etchmem-0.1.4}/PKG-INFO +10 -4
- {etchmem-0.1.3 → etchmem-0.1.4}/README.md +9 -3
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem.egg-info/PKG-INFO +10 -4
- {etchmem-0.1.3 → etchmem-0.1.4}/pyproject.toml +1 -1
- {etchmem-0.1.3 → etchmem-0.1.4}/LICENSE +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/__init__.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/config.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/connector/__init__.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/connector/base.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/connector/remote.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/consolidate/__init__.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/consolidate/worker.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/engine.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/models.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/recall/__init__.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/recall/recaller.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/stores/__init__.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/stores/base.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/stores/chroma_store.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/util/__init__.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/util/affectability.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem/util/hashing.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem.egg-info/SOURCES.txt +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem.egg-info/dependency_links.txt +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem.egg-info/requires.txt +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/etchmem.egg-info/top_level.txt +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/setup.cfg +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/tests/test_consolidate_idempotent.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/tests/test_formation_buckets.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/tests/test_recall.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/tests/test_reconsolidation.py +0 -0
- {etchmem-0.1.3 → etchmem-0.1.4}/tests/test_remember_recall.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: etchmem
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: A pluggable, embeddable reconsolidating skill memory engine for AI agents
|
|
5
5
|
Author: Andrey Olishchuk
|
|
6
6
|
License: MIT
|
|
@@ -28,7 +28,13 @@ Dynamic: license-file
|
|
|
28
28
|
|
|
29
29
|
# etchmem
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
**Where agents grow up — not where they take notes.**
|
|
32
|
+
|
|
33
|
+
Modern AI agents are built from skills. Every time a skill runs, it leaves a trail: results, feedback, corrections, surprises. That trail is experience — and experience is how an agent learns how the world actually works.
|
|
34
|
+
|
|
35
|
+
`etchmem` is memory for that maturation. Not a scratchpad for the current session. Not a user profile to personalize replies. Not a long chat log you grep when context runs out. It is the layer where raw observations turn into durable understanding — how things work, what users react to, what failed last time — and keep sharpening every time the agent draws on it again.
|
|
36
|
+
|
|
37
|
+
Over time, knowledge compounds. The agent stops merely following scenarios and starts carrying a worldview shaped by use.
|
|
32
38
|
|
|
33
39
|
```bash
|
|
34
40
|
pip install etchmem
|
|
@@ -38,7 +44,7 @@ pip install etchmem
|
|
|
38
44
|
|
|
39
45
|
## What it is
|
|
40
46
|
|
|
41
|
-
`etchmem` gives your agent a persistent memory that
|
|
47
|
+
`etchmem` gives your agent a persistent memory that matures through living. You deposit raw observations — facts, outcomes, feedback — scoped to a skill or left general. You retrieve with natural-language queries. Periodically you consolidate, and the engine synthesizes scattered signal into compact knowledge articles, rewriting anything that has been recalled against fresh context.
|
|
42
48
|
|
|
43
49
|
It is not a vector database and not an agent runtime. It sits above [ChromaDB](https://www.trychroma.com/), which handles all storage and embedding, and exposes exactly **three methods**.
|
|
44
50
|
|
|
@@ -52,7 +58,7 @@ Memory is kept in three tiers:
|
|
|
52
58
|
- **Buffer** — a working space for deposits and recall-events, waiting for the next consolidation run.
|
|
53
59
|
- **Injected** — synthesized knowledge articles, the primary search target. Only current knowledge is kept; superseded articles are hard-deleted.
|
|
54
60
|
|
|
55
|
-
The key idea is **reconsolidation**: every `recall()` call emits a recall-event into the buffer. When you later call `consolidate()`, the engine detects which injected articles were used, checks whether fresh signal changes anything, and rewrites them if needed. Knowledge that gets recalled stays current as a side-effect of being recalled. Knowledge nobody asks about simply rests.
|
|
61
|
+
The key idea is **reconsolidation**: every `recall()` call emits a recall-event into the buffer. When you later call `consolidate()`, the engine detects which injected articles were used, checks whether fresh signal changes anything, and rewrites them if needed. Knowledge that gets recalled stays current as a side-effect of being recalled. Knowledge nobody asks about simply rests. This is how a skill — or the agent as a whole — accumulates experience instead of starting from zero each run.
|
|
56
62
|
|
|
57
63
|
Embeddings are computed locally by ChromaDB's built-in model — no external embedding API. Synthesis (the rewrite step inside `consolidate`) calls an LLM via `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.
|
|
58
64
|
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# etchmem
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Where agents grow up — not where they take notes.**
|
|
4
|
+
|
|
5
|
+
Modern AI agents are built from skills. Every time a skill runs, it leaves a trail: results, feedback, corrections, surprises. That trail is experience — and experience is how an agent learns how the world actually works.
|
|
6
|
+
|
|
7
|
+
`etchmem` is memory for that maturation. Not a scratchpad for the current session. Not a user profile to personalize replies. Not a long chat log you grep when context runs out. It is the layer where raw observations turn into durable understanding — how things work, what users react to, what failed last time — and keep sharpening every time the agent draws on it again.
|
|
8
|
+
|
|
9
|
+
Over time, knowledge compounds. The agent stops merely following scenarios and starts carrying a worldview shaped by use.
|
|
4
10
|
|
|
5
11
|
```bash
|
|
6
12
|
pip install etchmem
|
|
@@ -10,7 +16,7 @@ pip install etchmem
|
|
|
10
16
|
|
|
11
17
|
## What it is
|
|
12
18
|
|
|
13
|
-
`etchmem` gives your agent a persistent memory that
|
|
19
|
+
`etchmem` gives your agent a persistent memory that matures through living. You deposit raw observations — facts, outcomes, feedback — scoped to a skill or left general. You retrieve with natural-language queries. Periodically you consolidate, and the engine synthesizes scattered signal into compact knowledge articles, rewriting anything that has been recalled against fresh context.
|
|
14
20
|
|
|
15
21
|
It is not a vector database and not an agent runtime. It sits above [ChromaDB](https://www.trychroma.com/), which handles all storage and embedding, and exposes exactly **three methods**.
|
|
16
22
|
|
|
@@ -24,7 +30,7 @@ Memory is kept in three tiers:
|
|
|
24
30
|
- **Buffer** — a working space for deposits and recall-events, waiting for the next consolidation run.
|
|
25
31
|
- **Injected** — synthesized knowledge articles, the primary search target. Only current knowledge is kept; superseded articles are hard-deleted.
|
|
26
32
|
|
|
27
|
-
The key idea is **reconsolidation**: every `recall()` call emits a recall-event into the buffer. When you later call `consolidate()`, the engine detects which injected articles were used, checks whether fresh signal changes anything, and rewrites them if needed. Knowledge that gets recalled stays current as a side-effect of being recalled. Knowledge nobody asks about simply rests.
|
|
33
|
+
The key idea is **reconsolidation**: every `recall()` call emits a recall-event into the buffer. When you later call `consolidate()`, the engine detects which injected articles were used, checks whether fresh signal changes anything, and rewrites them if needed. Knowledge that gets recalled stays current as a side-effect of being recalled. Knowledge nobody asks about simply rests. This is how a skill — or the agent as a whole — accumulates experience instead of starting from zero each run.
|
|
28
34
|
|
|
29
35
|
Embeddings are computed locally by ChromaDB's built-in model — no external embedding API. Synthesis (the rewrite step inside `consolidate`) calls an LLM via `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.
|
|
30
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: etchmem
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: A pluggable, embeddable reconsolidating skill memory engine for AI agents
|
|
5
5
|
Author: Andrey Olishchuk
|
|
6
6
|
License: MIT
|
|
@@ -28,7 +28,13 @@ Dynamic: license-file
|
|
|
28
28
|
|
|
29
29
|
# etchmem
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
**Where agents grow up — not where they take notes.**
|
|
32
|
+
|
|
33
|
+
Modern AI agents are built from skills. Every time a skill runs, it leaves a trail: results, feedback, corrections, surprises. That trail is experience — and experience is how an agent learns how the world actually works.
|
|
34
|
+
|
|
35
|
+
`etchmem` is memory for that maturation. Not a scratchpad for the current session. Not a user profile to personalize replies. Not a long chat log you grep when context runs out. It is the layer where raw observations turn into durable understanding — how things work, what users react to, what failed last time — and keep sharpening every time the agent draws on it again.
|
|
36
|
+
|
|
37
|
+
Over time, knowledge compounds. The agent stops merely following scenarios and starts carrying a worldview shaped by use.
|
|
32
38
|
|
|
33
39
|
```bash
|
|
34
40
|
pip install etchmem
|
|
@@ -38,7 +44,7 @@ pip install etchmem
|
|
|
38
44
|
|
|
39
45
|
## What it is
|
|
40
46
|
|
|
41
|
-
`etchmem` gives your agent a persistent memory that
|
|
47
|
+
`etchmem` gives your agent a persistent memory that matures through living. You deposit raw observations — facts, outcomes, feedback — scoped to a skill or left general. You retrieve with natural-language queries. Periodically you consolidate, and the engine synthesizes scattered signal into compact knowledge articles, rewriting anything that has been recalled against fresh context.
|
|
42
48
|
|
|
43
49
|
It is not a vector database and not an agent runtime. It sits above [ChromaDB](https://www.trychroma.com/), which handles all storage and embedding, and exposes exactly **three methods**.
|
|
44
50
|
|
|
@@ -52,7 +58,7 @@ Memory is kept in three tiers:
|
|
|
52
58
|
- **Buffer** — a working space for deposits and recall-events, waiting for the next consolidation run.
|
|
53
59
|
- **Injected** — synthesized knowledge articles, the primary search target. Only current knowledge is kept; superseded articles are hard-deleted.
|
|
54
60
|
|
|
55
|
-
The key idea is **reconsolidation**: every `recall()` call emits a recall-event into the buffer. When you later call `consolidate()`, the engine detects which injected articles were used, checks whether fresh signal changes anything, and rewrites them if needed. Knowledge that gets recalled stays current as a side-effect of being recalled. Knowledge nobody asks about simply rests.
|
|
61
|
+
The key idea is **reconsolidation**: every `recall()` call emits a recall-event into the buffer. When you later call `consolidate()`, the engine detects which injected articles were used, checks whether fresh signal changes anything, and rewrites them if needed. Knowledge that gets recalled stays current as a side-effect of being recalled. Knowledge nobody asks about simply rests. This is how a skill — or the agent as a whole — accumulates experience instead of starting from zero each run.
|
|
56
62
|
|
|
57
63
|
Embeddings are computed locally by ChromaDB's built-in model — no external embedding API. Synthesis (the rewrite step inside `consolidate`) calls an LLM via `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`.
|
|
58
64
|
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|