@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 +126 -10
- package/dist/chunk-U5UEY7UV.js +3726 -0
- package/dist/chunk-U5UEY7UV.js.map +1 -0
- package/dist/index.js +16967 -10572
- package/dist/index.js.map +1 -1
- package/dist/storage-CR3PELFY.js +17 -0
- package/dist/storage-CR3PELFY.js.map +1 -0
- package/openclaw.plugin.json +633 -4
- package/package.json +1 -1
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
|
-
- **
|
|
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
|
|
93
|
-
openclaw engram
|
|
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
|
-
|
|
221
|
-
`
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
- [
|
|
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
|
|