@icex-labs/openclaw-memory-engine 4.2.0 → 4.2.2

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/setup.sh +37 -44
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icex-labs/openclaw-memory-engine",
3
- "version": "4.2.0",
3
+ "version": "4.2.2",
4
4
  "description": "MemGPT-style hierarchical memory plugin for OpenClaw — core memory block + archival storage with semantic search",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/setup.sh CHANGED
@@ -117,11 +117,14 @@ if command -v node &>/dev/null && [ -f "$PLUGIN_DIR/extras/migrate-legacy.mjs" ]
117
117
  # Check if there are legacy files to migrate
118
118
  legacy_count=0
119
119
  [ -f "$WORKSPACE/MEMORY.md" ] && legacy_count=$((legacy_count + 1))
120
- legacy_count=$((legacy_count + $(ls "$MEMORY_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')))
121
- legacy_count=$((legacy_count + $(ls "$MEMORY_DIR"/weekly/*.md 2>/dev/null | wc -l | tr -d ' ')))
122
- legacy_count=$((legacy_count + $(ls "$MEMORY_DIR"/topics/*.md 2>/dev/null | wc -l | tr -d ' ')))
120
+ md_count=$(find "$MEMORY_DIR" -maxdepth 1 -name "*.md" 2>/dev/null | wc -l | tr -d ' ' || true)
121
+ weekly_count=$(find "$MEMORY_DIR/weekly" -name "*.md" 2>/dev/null | wc -l | tr -d ' ' || true)
122
+ topics_count=$(find "$MEMORY_DIR/topics" -name "*.md" 2>/dev/null | wc -l | tr -d ' ' || true)
123
+ : "${md_count:=0}" "${weekly_count:=0}" "${topics_count:=0}"
124
+ legacy_count=$((legacy_count + md_count + weekly_count + topics_count))
123
125
 
124
- archival_count=$(wc -l < "$MEMORY_DIR/archival.jsonl" 2>/dev/null | tr -d ' ' || echo "0")
126
+ archival_count=0
127
+ [ -f "$MEMORY_DIR/archival.jsonl" ] && archival_count=$(wc -l < "$MEMORY_DIR/archival.jsonl" | tr -d ' ')
125
128
 
126
129
  if [ "$legacy_count" -gt 0 ] && [ "$archival_count" -lt 10 ]; then
127
130
  echo ""
@@ -150,11 +153,12 @@ fi
150
153
  SCRIPTS_DIR="$WORKSPACE/scripts"
151
154
  mkdir -p "$SCRIPTS_DIR"
152
155
  if [ ! -f "$SCRIPTS_DIR/memory-maintenance.sh" ]; then
153
- cp "$PLUGIN_DIR/extras/memory-maintenance.sh" "$SCRIPTS_DIR/memory-maintenance.sh" 2>/dev/null || {
156
+ if cp "$PLUGIN_DIR/extras/memory-maintenance.sh" "$SCRIPTS_DIR/memory-maintenance.sh" 2>/dev/null; then
157
+ chmod +x "$SCRIPTS_DIR/memory-maintenance.sh" 2>/dev/null || true
158
+ echo "✅ memory-maintenance.sh installed"
159
+ else
154
160
  echo "⚠️ memory-maintenance.sh not found in extras/. Copy manually."
155
- }
156
- chmod +x "$SCRIPTS_DIR/memory-maintenance.sh" 2>/dev/null
157
- echo "✅ memory-maintenance.sh installed"
161
+ fi
158
162
  else
159
163
  echo "⏭️ memory-maintenance.sh already exists"
160
164
  fi
@@ -283,41 +287,25 @@ if [ -f "$AGENTS_MD" ]; then
283
287
  if ! grep -q "core_memory_read" "$AGENTS_MD"; then
284
288
  cat >> "$AGENTS_MD" <<'PATCH'
285
289
 
286
- ## Memory System MemGPT Architecture
287
-
288
- You have 19 memory tools. **Use them actively.**
289
-
290
- ### Core Memory (`core_memory_read` / `core_memory_replace` / `core_memory_append`)
291
- - Call `core_memory_read` at **every session start**
292
- - `core_memory_replace` when facts change
293
- - `current_focus` max 5 items update frequently
294
- - Hard limit: 3KB — move details to archival
295
-
296
- ### Archival Memory (`archival_insert` / `archival_search` / `archival_update` / `archival_delete`)
297
- - `archival_insert`: store facts with entity + tags + importance (1-10)
298
- - `archival_search`: hybrid keyword + semantic search. Use before guessing.
299
- - `archival_update`/`archival_delete`: correct or remove outdated facts
300
-
301
- ### Knowledge Graph (`graph_query` / `graph_add`)
302
- - Auto-extracted from archival_insert (relations like has_doctor, owns, lives_in)
303
- - `graph_query`: traverse from entity to find connections
304
- - `graph_add`: manually add relations
305
-
306
- ### Episodic Memory (`episode_save` / `episode_recall`)
307
- - `episode_save`: at end of meaningful conversations (summary, decisions, mood, topics)
308
- - `episode_recall`: "what did we discuss about X last time?"
309
-
310
- ### Maintenance
311
- - `memory_reflect`: analyze patterns (use during heartbeats)
312
- - `archival_deduplicate`: clean near-duplicate facts
313
- - `memory_consolidate`: extract facts from text blocks
314
- - `memory_dashboard`: generate browsable HTML dashboard
315
-
316
- ### Memory Discipline
317
- - If it matters → `archival_insert` it. "Mental notes" don't survive restarts.
318
- - Don't guess → `archival_search` first.
319
- - End of conversation → `episode_save`.
320
- - Update core memory proactively.
290
+ ## Memory System (memory-engine plugin v4.2)
291
+
292
+ **Memory is automatic.** All conversations are captured by hooks — you don't need to manually save anything.
293
+
294
+ ### What NOT to do
295
+ - **Don't say "I'll remember that" or "recorded"** memory happens silently
296
+ - **Don't call `archival_insert` for conversation content** — hooks already capture it
297
+ - Just be natural. Like a person who actually remembers things.
298
+
299
+ ### When to use tools manually
300
+ - `core_memory_read` call at **every session start** to load your identity
301
+ - `core_memory_replace` / `core_memory_append` when identity facts change
302
+ - `archival_search` **before answering factual questions** (don't guess)
303
+ - `archival_insert` only for non-conversation sources (web_fetch results, file contents)
304
+ - `archival_update` / `archival_delete` — correct or remove wrong facts
305
+ - `graph_query` answer relational questions ("who is my doctor?")
306
+ - `episode_save` at end of meaningful conversations (summary, decisions, mood)
307
+ - `episode_recall` "what did we discuss about X last time?"
308
+ - `memory_reflect` during heartbeats to analyze patterns
321
309
  PATCH
322
310
  echo "✅ AGENTS.md patched with memory instructions"
323
311
  else
@@ -449,12 +437,17 @@ echo " 2. Restart gateway: openclaw gateway restart"
449
437
  echo " 3. Test: openclaw agent -m 'core_memory_read'"
450
438
  echo " 4. Dashboard: open $MEMORY_DIR/dashboard.html"
451
439
  echo ""
452
- echo "19 tools ready:"
440
+ echo "20 tools + 2 hooks ready:"
441
+ echo " Hooks: auto-capture incoming messages + agent replies (passive)"
453
442
  echo " Core: core_memory_read, core_memory_replace, core_memory_append"
454
443
  echo " Archival: archival_insert/search/update/delete/stats"
455
444
  echo " Graph: graph_query, graph_add"
456
445
  echo " Episodes: episode_save, episode_recall"
457
446
  echo " Reflect: memory_reflect"
447
+ echo " Quality: memory_quality"
458
448
  echo " Maint: archival_deduplicate, memory_consolidate"
459
449
  echo " Backup: memory_export, memory_import"
460
450
  echo " Admin: memory_migrate, memory_dashboard"
451
+ echo ""
452
+ echo "Memory is automatic — hooks capture all conversations."
453
+ echo "Your agent doesn't need to say 'I'll remember that.'"