Agent Memory Persistence
Provide long-term memory persistence for AI agents with SQLite-backed storage, structured metadata, vector embeddings, semantic retrieval, lifecycle manageme...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 215 · 1 current installs · 1 all-time installs
by@imgolye
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description, SKILL.md, and source files all describe a local SQLite-backed memory manager with embeddings and semantic search — this is coherent. However, the registry metadata declares no required binaries or environment, while the package includes Node TypeScript source and a package.json that depends on better-sqlite3. In practice this requires a Node.js runtime and dependency installation (and better-sqlite3 is a native module that may need a C toolchain). The skill also needs filesystem access for the SQLite DB path. These runtime requirements are not declared in the registry and should be noted.
Instruction Scope
SKILL.md stays within scope: create a MemoryManager with a SQLite path, CRUD, vector search, and cleanup. The runtime instructions and code do not read unrelated system files, access environment variables, or call external network endpoints. Tests use temporary directories only. No instructions request sending data to third parties.
Install Mechanism
The registry lists no install spec, but the package includes source files and package.json with a dependency on better-sqlite3. There is no URL download or remote script; installation is via npm (implicit). That npm dependency may invoke native compilation (better-sqlite3) which requires tooling and may fail on constrained environments. Absence of an explicit install spec or declared required binaries (node/npm) is an incoherence to be aware of, but not malicious.
Credentials
The skill does not request any environment variables, secrets, or unrelated credentials. The code likewise does not read environment variables or attempt to access credentials. Its data access is limited to the SQLite DB path you provide.
Persistence & Privilege
The skill does not request permanent/always-on inclusion and will not modify other skills or global agent settings. It persists data only to the SQLite database you instantiate (default :memory: unless you pass a filesystem path). Autonomous invocation is permitted by default (normal), but that is not combined with other concerning privileges here.
Assessment
This package appears to do what it says: a local SQLite-backed memory store with vector search implemented in TypeScript. Before installing, confirm you have Node.js and a C toolchain available (better-sqlite3 is a native module and may compile during npm install). Because the registry entry doesn't declare Node/npm or filesystem write access, verify the runtime environment and run it in a sandbox if you have sensitive data. Review or pin the dependency versions, and consider encrypting or limiting sensitive data stored in the DB since memories are stored locally in plain JSON by default. If you need networked persistence or large-scale vector search, plan for replacing the in-memory TS vector search with an ANN index or a proper vector-enabled DB.Like a lobster shell, security has layers — review code before you run it.
Current versionv0.1.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Agent Memory Persistence
Use this skill when an agent needs durable memory storage across sessions.
What it provides
- SQLite-backed persistence for text, metadata, and embedding vectors
- CRUD operations for memory items
- Semantic retrieval with cosine-similarity vector search
- Memory lifecycle operations including expiration cleanup
- Filters by user, session, type, and time window
Project structure
src/MemoryStore.ts: low-level SQLite storage enginesrc/VectorIndex.ts: vector similarity search over stored embeddingssrc/MemoryManager.ts: high-level API used by agentssrc/types.ts: shared TypeScript contracts
Usage pattern
- Create a
MemoryManagerwith a SQLite path. - Write memories with
content, optionalmetadata, and optionalembedding. - Query memories by session/user or use
searchByVector()for semantic lookup. - Periodically call
cleanupExpired()to delete stale memories.
Notes
- Embeddings are stored as JSON arrays in SQLite.
- Vector search is implemented in TypeScript using cosine similarity, which keeps deployment simple and avoids SQLite extensions.
- If memory volume grows substantially, replace
VectorIndexwith an ANN index or SQLite vector extension while preserving theMemoryManagerAPI.
Files
10 totalSelect a file
Select a file to preview.
Comments
Loading comments…
