@joshuaswarren/openclaw-engram 9.0.55 → 9.0.57

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.
package/README.md CHANGED
@@ -26,10 +26,12 @@ That product thesis drives the roadmap order:
26
26
  AI agents forget everything between conversations. Engram fixes that.
27
27
 
28
28
  - **Automatic extraction** — Engram watches conversations and extracts facts, decisions, preferences, corrections, and more. No manual tagging required.
29
+ - **Explicit capture modes** — Run in `implicit`, `explicit`, or `hybrid` mode when memory writes need stricter consent, immediate explicit capture, or review-first handling.
29
30
  - **Smart recall** — Before each conversation, Engram injects the most relevant memories into the agent's context. Your agents remember what they need, when they need it.
30
31
  - **Local-first** — All memory data stays on your filesystem as plain markdown files. No cloud dependency, no vendor lock-in, fully portable.
31
32
  - **Pluggable search** — Choose from six search backends: QMD (hybrid BM25+vector+reranking), LanceDB, Meilisearch, Orama, remote HTTP, or bring your own.
32
- - **Memory OS features** — Graph recall, temporal memory tree, lifecycle policy, compounding, shared context, memory boxes, and identity continuity can be enabled progressively as your install grows.
33
+ - **External agent access** — Run a local authenticated HTTP API and a stdio MCP server so Codex, Claude Code, and scripts can query Engram without OpenClaw-specific glue.
34
+ - **Memory OS features** — Temporal memory tree, graph reasoning, lifecycle policy, compounding, shared context, memory boxes, and identity continuity can be enabled progressively as your install grows.
33
35
  - **Benchmark-first roadmap** — Engram now has an evaluation harness with live shadow recall recording and a CI benchmark delta gate, so memory improvements can be measured and regression-checked instead of argued from anecdotes.
34
36
  - **Baseline snapshot discipline** — Engram can now, when `benchmarkBaselineSnapshotsEnabled` is enabled, capture typed baseline snapshots of the latest completed benchmark runs so later PR delta reporting can compare candidates against a stable stored reference instead of an ad hoc branch state.
35
37
  - **Named baseline delta reporting** — Engram can now, when `benchmarkDeltaReporterEnabled` is enabled, compare the current eval store against a stored baseline snapshot, emit a machine-readable delta report plus markdown summary, and fail fast when a candidate regresses a benchmark that previously passed.
@@ -89,10 +91,33 @@ That's it. Start a conversation — Engram begins learning immediately.
89
91
  ## Verify Installation
90
92
 
91
93
  ```bash
92
- openclaw engram compat --strict # Should exit 0
93
- openclaw engram stats # Shows memory counts and search status
94
+ openclaw engram setup --json # Validates config, scaffolds directories, prints next steps
95
+ openclaw engram config-review --json # Opinionated config tuning recommendations + mismatches
96
+ openclaw engram doctor --json # Aggregated safe health diagnostics
97
+ openclaw engram inventory --json # Baseline memory/entity/storage footprint
94
98
  ```
95
99
 
100
+ ## Explicit Capture
101
+
102
+ Set `captureMode` to control how memories are created:
103
+
104
+ - `implicit`: normal extraction behavior.
105
+ - `explicit`: only structured explicit capture writes or queues review items.
106
+ - `hybrid`: explicit capture writes immediately and normal extraction still runs.
107
+
108
+ Prefer the `memory_capture` tool when tool use is available. In constrained runtimes, Engram also accepts an inline fallback block:
109
+
110
+ ```text
111
+ <memory_note>
112
+ category: decision
113
+ content: |
114
+ Recall benchmark packs live under state/evals/benchmarks/.
115
+ tags: benchmarks, evals
116
+ </memory_note>
117
+ ```
118
+
119
+ If the note fails direct-write policy, Engram sanitizes it and queues a `pending_review` memory instead of dropping it silently.
120
+
96
121
  ## How It Works
97
122
 
98
123
  Engram operates in three phases, running automatically in the background:
@@ -143,6 +168,11 @@ See the [Search Backends Guide](docs/search-backends.md) for detailed configurat
143
168
 
144
169
  Want to build your own? See [Writing a Search Backend](docs/writing-a-search-backend.md).
145
170
 
171
+ ## Roadmap
172
+
173
+ - [Engram Feature Roadmap (GitHub Project)](https://github.com/users/joshuaswarren/projects/1) — Current issue order, blockers, and next work
174
+ - [Historical Plans Index](docs/plans/README.md) — Design docs and archived completed plans
175
+
146
176
  ## Feature Highlights
147
177
 
148
178
  Engram's capabilities are organized into feature families that you can enable progressively:
@@ -164,12 +194,24 @@ Engram's capabilities are organized into feature families that you can enable pr
164
194
 
165
195
  Start with defaults, then enable features as needed. See [Enable All Features](docs/enable-all-v8.md) for a full-feature config profile.
166
196
 
197
+ If you want a supported starting point for the advanced surface, set `memoryOsPreset` to one of `conservative`, `balanced`, `research-max`, or `local-llm-heavy`, then override only the few knobs you actually need.
198
+
199
+ For the full config surface, including the shipped default and a recommended value for every option, see [docs/config-reference.md](docs/config-reference.md).
200
+
167
201
  ## Agent & Operator Commands
168
202
 
169
203
  ```bash
170
204
  openclaw engram stats # Memory counts, search status, health
205
+ openclaw engram setup # Guided first-run setup + directory scaffolding
206
+ openclaw engram setup --preview-capture-instructions # Preview the managed explicit-capture snippet
207
+ openclaw engram setup --install-capture-instructions # Install or update the managed explicit-capture snippet
208
+ openclaw engram setup --remove-capture-instructions # Remove the managed explicit-capture snippet
209
+ openclaw engram config-review # Review current config and recommend higher-leverage settings
210
+ openclaw engram doctor # Aggregated setup/runtime diagnostics with remediation hints
211
+ openclaw engram inventory # Memory, namespace, review queue, storage, and native-knowledge inventory
171
212
  openclaw engram search "your query" # Search memories from CLI
172
213
  openclaw engram compat --strict # Compatibility check
214
+ openclaw engram benchmark recall # Status/validate/compare/snapshot recall benchmark artifacts
173
215
  openclaw engram benchmark-status # Benchmark/eval harness packs, runs, shadow recalls, latest summaries
174
216
  openclaw engram benchmark-validate <path> # Validate a benchmark manifest or pack directory
175
217
  openclaw engram benchmark-import <path> # Import a validated benchmark pack into the eval store
@@ -186,6 +228,12 @@ openclaw engram commitment-status # Commitment ledger counts and latest
186
228
  openclaw engram commitment-record # Record a typed commitment ledger entry
187
229
  openclaw engram commitment-set-state # Transition a commitment to open|fulfilled|cancelled|expired
188
230
  openclaw engram commitment-lifecycle-run # Expire overdue commitments and clean aged resolved entries
231
+ openclaw engram governance-run --mode shadow # Build review queue + audit artifacts without mutating memories
232
+ openclaw engram governance-run --mode apply # Apply reversible governance transitions and write restore metadata
233
+ openclaw engram governance-report # Read the latest or named governance artifact bundle
234
+ openclaw engram governance-restore --run-id <runId> # Restore one applied governance run
235
+ openclaw engram review-disposition <memoryId> --status rejected # Record an explicit operator review outcome
236
+ openclaw engram access http-serve --token "$OPENCLAW_ENGRAM_ACCESS_TOKEN" # Start the local access API + admin console shell
189
237
  openclaw engram work-product-status # Work-product ledger counts and latest recorded output
190
238
  openclaw engram work-product-record # Record a typed work-product ledger entry
191
239
  openclaw engram work-product-recall-search <query> # Preview reusable work products from the creation-memory ledger
@@ -194,11 +242,17 @@ openclaw engram utility-record # Record a typed utility-learning te
194
242
  openclaw engram utility-learning-status # Latest offline utility-learning snapshot and learned weight counts
195
243
  openclaw engram utility-learn # Learn bounded offline promotion/ranking weights from recorded utility events
196
244
  openclaw engram conversation-index-health # Conversation index status
245
+ openclaw engram rebuild-index # Operator-friendly alias for conversation-index-rebuild
197
246
  openclaw engram graph-health # Entity graph status
247
+ openclaw engram repair # Aggregate session repair planning + graph guidance
198
248
  openclaw engram tier-status # Hot/cold tier metrics
199
249
  openclaw engram policy-status # Lifecycle policy snapshot
200
250
  ```
201
251
 
252
+ Governance runs write durable artifacts under `{memoryDir}/state/memory-governance/runs/<runId>/`, including `summary.json`, `review-queue.json`, `kept-memories.json`, `applied-actions.json`, `metrics.json`, `manifest.json`, `report.md`, and `restore.json` for apply runs.
253
+
254
+ When the local HTTP access server is running, Engram also serves a lightweight operator UI shell at `http://127.0.0.1:4318/engram/ui/`. Paste the same bearer token into the console UI and it will use the authenticated `/engram/v1/...` endpoints for memory browsing, recall inspection, governance review, entity exploration, and maintenance status.
255
+
202
256
  ## Configuration
203
257
 
204
258
  All settings live in `openclaw.json` under `plugins.entries.openclaw-engram.config`. `openaiApiKey` is optional when local LLM or gateway fallback paths are available.
@@ -216,12 +270,11 @@ Key settings:
216
270
  | `evalShadowModeEnabled` | `false` | Record live recall decisions to the eval store without changing injected output |
217
271
  | `benchmarkBaselineSnapshotsEnabled` | `false` | Enable versioned baseline snapshot artifacts for the latest completed benchmark runs |
218
272
  | `benchmarkDeltaReporterEnabled` | `false` | Enable named-baseline delta reports against the current eval store |
219
-
220
- The repo's required benchmark check uses the committed fixture snapshot at
221
- `tests/fixtures/eval-ci/store/baselines/required-main.json` as the stable
222
- release baseline for PR gating. During the rollout PR that first introduces
223
- that file, the gate bootstraps from the candidate branch snapshot once; after
224
- that, PRs resolve the required baseline from the base branch checkout.
273
+ | `captureMode` | `implicit` | Memory write policy: `implicit`, `explicit`, or `hybrid` |
274
+ | `nativeKnowledge.enabled` | `false` | Enable curated workspace and synced native-knowledge recall without converting source docs into durable memory files |
275
+ | `nativeKnowledge.openclawWorkspace` | unset | Optional backend-agnostic adapter for OpenClaw workspace bootstrap docs, handoffs, daily summaries, and automation notes |
276
+ | `nativeKnowledge.obsidianVaults` | `[]` | Optional backend-agnostic Obsidian vault adapters that sync markdown notes, tags, aliases, links, and daily-note dates into native knowledge recall |
277
+ | `entityRetrievalEnabled` | `true` | Enable entity-oriented answer hints for direct entity questions and transcript-backed recent-turn pronoun follow-ups in the active recall namespace |
225
278
  | `evalStoreDir` | `{memoryDir}/state/evals` | Root directory for benchmark packs, run summaries, and shadow recall records |
226
279
  | `objectiveStateMemoryEnabled` | `false` | Enable the objective-state memory foundation for normalized world/tool state snapshots |
227
280
  | `objectiveStateSnapshotWritesEnabled` | `false` | Permit objective-state snapshot writers to persist typed state records |
@@ -254,24 +307,87 @@ that, PRs resolve the required baseline from the base branch checkout.
254
307
  | `workProductRecallEnabled` | `false` | Inject prompt-relevant work-product ledger entries into recall and expose `openclaw engram work-product-recall-search` |
255
308
  | `workProductLedgerDir` | `{memoryDir}/state/work-product-ledger` | Root directory for typed work-product ledger entries |
256
309
 
310
+ The repo's required benchmark check uses the committed fixture snapshot at
311
+ `tests/fixtures/eval-ci/store/baselines/required-main.json` as the stable
312
+ release baseline for PR gating. During the rollout PR that first introduces
313
+ that file, the gate bootstraps from the candidate branch snapshot once; after
314
+ that, PRs resolve the required baseline from the base branch checkout.
315
+
316
+ ### Native Knowledge Sync
317
+
318
+ Engram can search curated markdown files directly during recall without first extracting them into durable memory records. This keeps operator docs, handoff notes, and Obsidian content available as first-class recall sources while preserving the markdown files as the source of truth.
319
+
320
+ Example:
321
+
322
+ ```jsonc
323
+ {
324
+ "nativeKnowledge": {
325
+ "enabled": true,
326
+ "includeFiles": ["IDENTITY.md", "MEMORY.md", "TEAM.md"],
327
+ "openclawWorkspace": {
328
+ "enabled": true,
329
+ "bootstrapFiles": ["IDENTITY.md", "MEMORY.md", "USER.md"],
330
+ "handoffGlobs": ["handoffs/**/*.md"],
331
+ "dailySummaryGlobs": ["summaries/**/*.md"],
332
+ "automationNoteGlobs": ["automation/**/*.md"],
333
+ "sharedSafeGlobs": ["automation/shared/**/*.md"]
334
+ },
335
+ "obsidianVaults": [
336
+ {
337
+ "id": "personal",
338
+ "rootDir": "/Users/you/Documents/Obsidian",
339
+ "includeGlobs": ["**/*.md"],
340
+ "excludeGlobs": [".obsidian/**", "Templates/**"],
341
+ "namespace": "shared",
342
+ "privacyClass": "private",
343
+ "folderRules": [
344
+ { "pathPrefix": "Projects", "namespace": "work", "privacyClass": "team" }
345
+ ],
346
+ "dailyNotePatterns": ["Daily/YYYY-MM-DD", "YYYY-MM-DD"],
347
+ "materializeBacklinks": true
348
+ }
349
+ ]
350
+ }
351
+ }
352
+ ```
353
+
354
+ Direct `includeFiles` plus the OpenClaw workspace adapter both sync into backend-agnostic state under `{memoryDir}/state/native-knowledge`, preserve source metadata and deletion tombstones, and dedupe exact overlaps so bootstrap docs are not injected twice.
355
+
356
+ When an Obsidian vault adapter is enabled, Engram syncs active notes into backend-agnostic native-knowledge state under `{memoryDir}/state/native-knowledge`, preserves aliases, inline/frontmatter tags, wikilinks, optional backlinks, and daily-note dates, and then blends those chunks into the existing `Curated Workspace Knowledge` recall section with namespace filtering applied before injection.
357
+
257
358
  Full reference: [Config Reference](docs/config-reference.md)
258
359
 
360
+ Preset example:
361
+
362
+ ```jsonc
363
+ {
364
+ "memoryOsPreset": "balanced",
365
+ "localLlmEnabled": true,
366
+ "localLlmUrl": "http://localhost:1234/v1",
367
+ "localLlmModel": "qwen2.5-32b-instruct"
368
+ }
369
+ ```
370
+
259
371
  ## Documentation
260
372
 
261
373
  - [Getting Started](docs/getting-started.md) — Installation, setup, first-run verification
262
374
  - [Search Backends](docs/search-backends.md) — Choosing and configuring search engines
263
375
  - [Writing a Search Backend](docs/writing-a-search-backend.md) — Build your own adapter
264
376
  - [Config Reference](docs/config-reference.md) — Every setting with defaults
377
+ - [Local LLM Guide](docs/guides/local-llm.md) — Setup and tune local-first extraction/rerank flows
378
+ - [Cost Control Guide](docs/guides/cost-control.md) — Budget mappings, presets, and rollout discipline
379
+ - [Migration Guide](docs/guides/migrations.md) — Move from manual tuning and historical roadmap docs to the current config surface
265
380
  - [Evaluation Harness](docs/evaluation-harness.md) — Benchmark pack, shadow recall, and CI delta gate format
266
381
  - [Architecture Overview](docs/architecture/overview.md) — System design and storage layout
267
382
  - [Retrieval Pipeline](docs/architecture/retrieval-pipeline.md) — How recall works
268
383
  - [Memory Lifecycle](docs/architecture/memory-lifecycle.md) — Write, consolidation, expiry
384
+ - [Graph Reasoning](docs/architecture/graph-reasoning.md) — Opt-in graph traversal, assist, and explainability
269
385
  - [Enable All Features](docs/enable-all-v8.md) — Full-feature config profile
270
386
  - [Operations](docs/operations.md) — Backup, export, maintenance
271
387
  - [Namespaces](docs/namespaces.md) — Multi-agent memory isolation
272
388
  - [Shared Context](docs/shared-context.md) — Cross-agent intelligence
273
389
  - [Identity Continuity](docs/identity-continuity.md) — Consistent agent personality
274
- - [Agentic Memory Roadmap](docs/plans/2026-03-06-engram-agentic-memory-roadmap.md) — Benchmark-first roadmap and PR slices
390
+ - [Historical Plans Index](docs/plans/README.md) — Archived design context; GitHub Project remains the roadmap source of truth
275
391
 
276
392
  ## Developer Install
277
393