Memory Tools
Agent-controlled memory plugin for OpenClaw with confidence scoring, decay, and semantic search. The agent decides WHEN to store/retrieve memories — no auto-...
Rank
62
Safety
84
Downloads
3.5k
Updated
Oct 9, 2026
Version
2.0.4
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 3.5K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 3.5K downloadsadoption · observed Oct 9, 2026
- Latest release
- 2.0.4release · observed Feb 18, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17cc17ezh3q3w2b25qwem3dxh884zt1:memory-tools- Install using `clawhub skill install s17cc17ezh3q3w2b25qwem3dxh884zt1:memory-tools` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/gianni-dalerta/memory-tools before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-gianni-dalerta-memory-tools/snapshot"
Documentation
CLAWHUB
150,112 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: memory-tools
description: Agent-controlled memory plugin for OpenClaw with confidence scoring, decay, and semantic search. The agent decides WHEN to store/retrieve memories — no auto-capture noise. v2 uses file-based storage with optional QMD search (no external APIs required).
homepage: https://github.com/Purple-Horizons/memory-tools
metadata:
openclaw:
emoji: 🧠
kind: plugin
---
# Memory Tools v2
Agent-controlled persistent memory for OpenClaw.
## What's New in v2
- **File-based storage** — Memories stored as readable markdown files
- **No external APIs** — No OpenAI dependency, everything runs locally
- **QMD search (optional)** — BM25 + vector + reranking via local GGUF models
- **Auto-migration** — Seamlessly upgrades from v1 SQLite/LanceDB storage
## Why Memory-as-Tools?
Traditional memory systems auto-capture everything, flooding context with irrelevant information. Memory Tools follows the [AgeMem](https://arxiv.org/abs/2409.02634) approach: **the agent decides** when to store and retrieve memories.
## Features
- **6 Memory Tools**: `memory_store`, `memory_update`, `memory_forget`, `memory_search`, `memory_summarize`, `memory_list`
- **Confidence Scoring**: Track how certain you are (1.0 = explicit, 0.5 = inferred)
- **Importance Scoring**: Prioritize critical instructions over nice-to-know facts
- **Decay/Expiration**: Temporal memories automatically become stale
- **Human-readable storage**: Markdown files with YAML frontmatter
- **Conflict Resolution**: New info auto-supersedes old (no contradictions)
## Installation
### Step 1: Install from ClawHub
```bash
clawhub install memory-tools
```
### Step 2: Build the plugin
```bash
cd skills/memory-tools
npm install
npm run build
```
### Step 3: Activate the plugin
```bash
openclaw plugins install --link .
openclaw plugins enable memory-tools
```
### Step 4: Restart the gateway
```bash
openclaw gateway restart
```
### Optional: Install QMD for better search
```bash
npm install -g @tobilu/qmd
```
Without QMD, basic filtering works. With QMD, you get semantic search (BM25 + vector + reranking).
### Node Compatibility (QMD)
- QMD may not be compatible with the newest Node ABI immediately.
- If QMD fails (for example `NODE_MODULE_VERSION` mismatch), memory-tools falls back to basic mode.
- To force basic mode: `MEMORY_TOOLS_DISABLE_QMD=true`.
- For best QMD stability, use a Node LTS version supported by your installed QMD build.
## Security Model
- No API keys or external credentials are required.
- Data is stored locally in `~/.openclaw/memories` (or configured `memoriesPath`).
- The plugin can prepend standing-instruction context at `before_agent_start` when `autoInjectInstructions=true`.
- The plugin can auto-migrate legacy v1 data from `~/.openclaw/memory/tools/memory.db` when `autoMigrateLegacy=true`.
- Defaults are conservative: both `autoInjectInstructions` and `autoMigrateLegacy` are `false`.
## Storage Format
Memories are stored as markdown README.md
<p align="center">
<img src="header.png" alt="memory-tools" width="100%">
</p>
# OpenClaw Memory Tools v2
Agent-controlled memory plugin for OpenClaw with confidence scoring, decay, and semantic search.
## What's New in v2
- **File-based storage** - Memories stored as readable markdown files
- **No external APIs** - No OpenAI dependency, everything runs locally
- **QMD search (optional)** - BM25 + vector + reranking via local GGUF models
- **Auto-migration** - Seamlessly upgrades from v1 SQLite/LanceDB storage
## Why Memory-as-Tools?
Traditional AI memory systems auto-capture everything, flooding context with irrelevant information. **Memory-as-Tools** follows the [AgeMem](https://arxiv.org/abs/2409.02634) approach: the agent decides **when** to store and retrieve memories.
```
Traditional: Agent -> always retrieves -> context flooded
Memory-as-Tools: Agent -> decides IF/WHAT to remember -> uses tools explicitly
```
## Features
- **6 Memory Tools**: `memory_store`, `memory_update`, `memory_forget`, `memory_search`, `memory_summarize`, `memory_list`
- **Confidence Scoring**: Track how certain you are about each memory (1.0 = explicit, 0.5 = inferred)
- **Importance Scoring**: Prioritize critical instructions over nice-to-know facts
- **Decay/Expiration**: Temporal memories (events) automatically become stale
- **Human-readable storage**: Markdown files with YAML frontmatter
- **Semantic Search**: Optional QMD-powered hybrid search (BM25 + vector + reranking)
- **Zero External Dependencies**: Everything runs locally, no API keys needed
- **Standing Instructions**: Auto-inject category="instruction" memories at conversation start
## Installation
### Step 1: Install from ClawHub
```bash
clawhub install memory-tools
```
### Step 2: Build the plugin
```bash
cd skills/memory-tools
npm install
npm run build
```
### Step 3: Activate the plugin
```bash
openclaw plugins install --link .
openclaw plugins enable memory-tools
```
### Step 4: Restart the gateway
```bash
openclaw gateway restart
```
### Optional: Install QMD for better search
```bash
npm install -g @tobilu/qmd
```
Without QMD, basic category/tag filtering works. With QMD, you get semantic search (BM25 + vector + reranking using local GGUF models).
### Node Compatibility (QMD)
- `memory-tools` works without QMD on modern Node versions.
- QMD dependencies (notably `better-sqlite3`) may lag behind the latest Node ABI.
- If QMD fails on startup (for example `NODE_MODULE_VERSION` mismatch on Node v25), the plugin now falls back to basic mode.
- To force basic mode explicitly, set `MEMORY_TOOLS_DISABLE_QMD=true`.
- Recommended for full QMD stability: use a Node LTS version supported by your installed QMD build.
## Configuration
Add to `~/.openclaw/openclaw.json`:
```json
{
"plugins": {
"slots": {
"memory": "memory-tools"
},
"entries": {
"memory-tools": {
"enabled": true,
"config": {
"memoriesPath": "~/.openclaw/memories",
_meta.json
{
"ownerId": "kn7ajybsnj998tbfcgvrc7731s803brp",
"slug": "memory-tools",
"version": "2.0.4",
"publishedAt": 1771442420054
}CLAUDE.md
# CLAUDE.md
Project context for Claude Code.
## Project
**memory-tools v2** - Agent-controlled memory plugin for OpenClaw/ClawHub.
- **Repo**: `Purple-Horizons/memory-tools`
- **ClawHub slug**: `memory-tools`
- **Owner**: gianni-dalerta
## Architecture (v2)
- **File-based storage** - Memories stored as markdown files with YAML frontmatter
- **QMD search** - Optional BM25 + vector + reranking via local GGUF models
- **No external APIs** - No OpenAI dependency, everything runs locally
- **Auto-migration** - Seamlessly upgrades from v1 SQLite/LanceDB storage
### Storage Structure
```
~/.openclaw/memories/
├── facts/
│ └── abc123.md
├── preferences/
│ └── def456.md
├── instructions/
│ └── ghi789.md
└── .deleted/
└── old-memory.md
```
### Memory File Format
```markdown
---
id: abc123-def4-5678-90ab-cdef12345678
category: preference
confidence: 0.9
importance: 0.7
created_at: 2024-01-15T10:30:00Z
tags: [ui, settings]
---
User prefers dark mode in all applications.
```
## Key Decisions
- **v2 rewrote storage layer**: Switched from SQLite + LanceDB + OpenAI to file-based + QMD
- **QMD is optional**: Works without QMD (basic file listing), better search with QMD installed
- **Auto-migration**: v2 detects v1 databases and automatically exports to markdown files
- **Backward compatible API**: Tools interface unchanged, existing integrations work
## QMD Integration
QMD provides hybrid search (BM25 + vector + reranking) using local GGUF models:
- `npm install -g @tobilu/qmd` to install
- Models download on first use (~2GB total)
- Without QMD: basic category/tag filtering only
- With QMD: semantic search across all memories
## Publishing to ClawHub
```bash
clawhub publish . --slug memory-tools --version X.Y.Z --changelog "description"
```
Always use `--slug memory-tools` to update the correct skill.
## Build & Test
```bash
npm run build # TypeScript compile
npm test # Run vitest (uses MEMORY_TOOLS_DISABLE_QMD=true in CI)
```
## Environment Variables
- `MEMORY_TOOLS_DISABLE_QMD=true` - Disable QMD for testingclawdbot.plugin.json
{
"id": "memory-tools",
"kind": "memory",
"name": "Memory Tools",
"description": "Agent-controlled memory with file-based storage and optional QMD search. No external APIs required.",
"version": "2.0.4",
"uiHints": {
"memoriesPath": {
"label": "Memories Path",
"placeholder": "~/.clawdbot/memories",
"advanced": true,
"help": "Directory for storing memory files"
},
"autoInjectInstructions": {
"label": "Auto-Inject Instructions",
"help": "Inject standing instructions (category='instruction') at conversation start"
},
"autoMigrateLegacy": {
"label": "Auto-Migrate Legacy DB",
"advanced": true,
"help": "Automatically migrate v1 database to markdown files on startup"
},
"qmdCollection": {
"label": "QMD Collection",
"advanced": true,
"help": "QMD collection name for semantic search index"
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"memoriesPath": {
"type": "string",
"description": "Directory for storing memory markdown files"
},
"autoInjectInstructions": {
"type": "boolean",
"default": false
},
"autoMigrateLegacy": {
"type": "boolean",
"default": false
},
"qmdCollection": {
"type": "string",
"default": "memories"
}
}
}
}AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/gianni-dalerta/skills/memory-tools",
"sourceUrl": "https://clawhub.ai/gianni-dalerta/skills/memory-tools",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T07:47:19.347Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-gianni-dalerta-memory-tools/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-gianni-dalerta-memory-tools/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T07:47:19.347Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "3.5K downloads",
"href": "https://clawhub.ai/gianni-dalerta/memory-tools",
"sourceUrl": "https://clawhub.ai/gianni-dalerta/memory-tools",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T07:47:19.347Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "2.0.4",
"href": "https://clawhub.ai/gianni-dalerta/memory-tools",
"sourceUrl": "https://clawhub.ai/gianni-dalerta/memory-tools",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-18T19:20:20.054Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-gianni-dalerta-memory-tools/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-gianni-dalerta-memory-tools/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 2.0.4",
"description": "Security hardening: changed high-impact behaviors to opt-in defaults (autoInjectInstructions=false, autoMigrateLegacy=false), removed startup systemPrompt override path, and kept explicit config-based enablement for instruction context injection and legacy migration.",
"href": "https://clawhub.ai/gianni-dalerta/memory-tools",
"sourceUrl": "https://clawhub.ai/gianni-dalerta/memory-tools",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-18T19:20:20.054Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
