agentCLAWHUBUnverified

Openclaw Memory Toolkit

OpenClaw Memory Toolkit is a memory layer for AI agents. It remembers what matters across sessions: it extracts durable facts from your conversations, resolves contradictions instead of hoarding them, and lets you ask what it knew on any past date.

OpenClaw

Rank

62

Safety

84

Downloads

1.0k

Updated

Oct 11, 2026

Version

4.0.5

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/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 11, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 11, 2026
Adoption signal
1K downloadsadoption · observed Oct 11, 2026
Latest release
4.0.5release · observed Oct 11, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17bzyvy2hqcrtqhsbxdpbrrf18cpw5t:memory-toolkit
  1. Install using `clawhub skill install s17bzyvy2hqcrtqhsbxdpbrrf18cpw5t:memory-toolkit` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/mistermijarvis/memory-toolkit before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-mistermijarvis-memory-toolkit/snapshot"

Run-check

$0.02 USD

1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.

Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.

Documentation

CLAWHUB

160,000 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: memory-health
description: Complete memory management pipeline for OpenClaw agents — extraction, archiving, scoring, consolidation, health monitoring, hygiene, and ontology. Local by default (Ollama over local HTTP). Use for memory health checks, hybrid search, fact arbitration, cold-storage compaction, and memory pipeline maintenance.
---

# Memory Pipeline Skill

Complete memory management pipeline for OpenClaw agents: extraction, archiving,
scoring, consolidation, health monitoring, and ontology — local by default
(Ollama runs locally via HTTP).

⚠️ **One opt-in exception**: `trace_extractor.py` can send memory/session excerpts
to **Ollama cloud** (`https://ollama.com`) when `OLLAMA_API_KEY` is configured.
With no key it stays local; `TRACE_LLM_LOCAL_ONLY=1` refuses every cloud call. The
destination is printed before each send. See the Security Notes below.

> **⛔ MUST — releasing this skill.** Every change to this skill goes through
> `scripts/release.sh`, without exception. A change is **not done** until
> `scripts/release.sh check` passes green. Then, and only then, sync to the
> installed skill and tag via `scripts/release.sh release vX.Y.Z "msg"`.
> Never edit the installed skill directly. Never tag or publish on a red gate —
> fix the drift or the invariant, never bypass the gate.
> Pipeline: **local repo → installed skill → GitHub → ClawHub (manual).**

## Pipeline Overview

```
Nightly Cron (23h)
  │
  ├─ 1. trace_extractor.py    # Extract decisions/errors/facts from sessions
  ├─ 2. auto_archive.py       # Archive daily notes >21 days
  ├─ 3. scoring.py            # Score all memories with temporal decay
  ├─ 4. consolidate_advisor.py # Suggest consolidations (agent reviews)
  ├─ 5. conflict_resolver.py   # Arbitrate contradictory facts (NLI lifecycle)
  ├─ 6. memory_health.py       # Periodic health check (weekly)
  └─ 7. hybrid_search.py      # Hybrid search: FTS5 + sqlite-vec + RRF
```

All scripts are standalone and composable. Run individually or as a pipeline.

## Fact lifecycle (introduced in v3.0.0) — current release v4.0.5

The search DB no longer just accumulates facts: every fact carries a lifecycle
(`active` / `superseded` / `disputed`) and only `active` facts are ever
retrieved. `conflict_resolver.py` runs the four-step consistency pipeline:
atomic extraction → targeted retrieval of concurrent active facts → NLI
classification (`CONTRADICTION` / `REDUNDANT` / `COMPATIBLE`) → traceable state
update. A weak contradiction is escalated to `disputed` rather than silently
destroying an established fact; `pending` surfaces the queue and `resolve
--confirm|--reject` lifts the ambiguity. `compact.py` moves terminal facts into a
cold archive (`memories_archive` + JSONL audit) so the hot FTS5/vector indexes
stay lean without losing traceability.

## Scripts

### 1. `trace_extractor.py` — Session extraction

Extracts decisions, errors, facts, and patterns from OpenClaw session
transcripts and daily notes. Updates daily note

README.md

# 🧠 OpenClaw Memory Pipeline

**Complete memory management pipeline for OpenClaw agents: extraction, archiving,
scoring, consolidation, health monitoring, and hybrid search — local by default.**

Seven standalone Python scripts that form a complete memory lifecycle pipeline for
[OpenClaw](https://github.com/openclaw/openclaw) agents. Everything runs on this
machine out of the box: Ollama over local HTTP, no cloud account, no paid dependency
— works with any local LLM (Ollama, LM Studio, etc.) or fully without LLM in fallback
mode.

> **One exception, and it is opt-in:** `trace_extractor.py` can use **Ollama cloud**
> (`https://ollama.com`) when an API key is configured, because that content leaves
> the machine. With **no key configured it stays local**, and
> **`TRACE_LLM_LOCAL_ONLY=1` refuses every cloud call outright**. Every run prints its
> destination first (`[Security] ⚠️ CLOUD TRANSMISSION: …`). See
> [Security Notes](#security-notes).

Built for local-first OpenClaw setups (Ollama/GLM, nomic-embed-text).

## Pipeline

```
Nightly Cron (23h)
  │
  ├─ 1. trace_extractor.py     # Extract decisions/errors/facts from sessions
  ├─ 2. auto_archive.py        # Archive daily notes >21 days
  ├─ 3. scoring.py             # Score all memories with temporal decay
  ├─ 4. consolidate_advisor.py # Suggest consolidations (agent reviews)
  ├─ 5. conflict_resolver.py   # Arbitrate contradictory facts (NLI lifecycle)
  ├─ 6. memory_health.py       # Periodic health check (weekly)
  └─ 7. ontology_compact.py    # GC the ontology op-log (weekly)
```

All scripts are standalone and composable. Run individually or as a pipeline.

## Contributing

This README is written for **users**. If you are **maintaining this repository**
(working on the release pipeline, the gate, or the repo↔skill sync), read
[CONTRIBUTING.md](CONTRIBUTING.md) instead — it documents the full
repo → skill → GitHub → ClawHub flow and the invariants the release gate enforces.

> **MUST — every memory-skill change goes through `scripts/release.sh`.**
> A change to `skills/memory-health/**` is not "done" until
> `scripts/release.sh check` passes green. Never edit the installed skill
> directly; never let the repo and the skill drift. Full detail in
> [CONTRIBUTING.md](CONTRIBUTING.md).

## Scripts

### 1. `trace_extractor.py` — Session extraction

Extracts decisions, errors, facts, and patterns from OpenClaw session transcripts
and daily notes. Updates daily notes, appends entities to the ontology graph.

```bash
# Nightly (pattern-based, fast ~5s)
python3 scripts/trace_extractor.py --days 1

# Deep extraction (LLM-powered, ~60-180s)
python3 scripts/trace_extractor.py --days 3 --llm

# With a specific session transcript file (opt-in, explicit)
python3 scripts/trace_extractor.py --days 1 --llm --session-file /path/to/session.jsonl

# Preview only
python3 scripts/trace_extractor.py --days 1 --llm --dry-run
```

**Categories:** 🟢 DECISIONS, 🔴 ERRORS, 🔵 FACTS, ⬆️ PROMOTIONS

### 2. `auto_ar

_meta.json

{
  "ownerId": "kn7d3dpn3e5ys39cpa1y06kvq18cp3rk",
  "slug": "memory-toolkit",
  "version": "4.0.5",
  "publishedAt": 1791716344723
}

CHANGELOG.md

# Changelog — OpenClaw Memory Toolkit

All notable changes to the OpenClaw Memory Toolkit skill.

## v4.0.5 — Dates are validated before they reach the graph (2026-10-11)

### Real fix

**The extraction pipeline trusted the LLM's date and folded it into ids.**
`stable_id('tl', what, today)` concatenated the string blindly, and the
decision write took `dec.get('date')` verbatim. A model asked for `YYYY-MM-DD`
still returns `2026-05-31-0913` (date + time), `2026-05-26-roadmap-updates`
(date + free text) or `2026-04` (month only).

Blind concatenation produced the unmatchable nodes `day_202605310913` /
`day_20260526roadmapupdates` / `day_202604` — targets no edge can ever match.
That is the **dangling-target** defect the 10/10 backfill had to repair by hand
(158 edge targets pointing at nodes that did not exist). It is now fixed at
the source, so it cannot recur.

### Change

`normalize_date()` is the single gate every date passes before it is written
or folded into an id:

- **Parse first, build second.** A real calendar date is required —
  `datetime()` rejects `2026-13-01` and `2026-02-30`; a regex alone would not.
- A leading `YYYY-MM-DD` in a longer string is kept
  (`2026-05-31-0913` → `2026-05-31`), the trailing noise is dropped.
- Anything else falls back — the honest answer for "undated decision" is today,
  not a fabricated date.

It gates both the id builder (`stable_id`) and the decision-date write. 12 unit
cases cover the boundary.

### Note on the source of truth

`trace_extractor.py` is the one skill file whose **live copy leads**: the fix
was written against the running skill then ported live → repo. `release.sh`
section 2 asserts the two copies are identical.

## v4.0.4 — No decision enters the ontology as an orphan (2026-10-10)

### Real fix

**M6: every extracted decision now carries an edge.** The ontology held
**889 orphan entities out of 928, with only 34 relations** — a list of
disconnected blocks, not a graph. Root cause: `trace_extractor` created
Decision / TimelineEvent nodes with no relation at all.

Two changes, both at the source:

- The extraction prompt now REQUIRES a `related_to` on every item — the id of an
  existing entity it attaches to, grounded in the note text, never invented.
  When nothing fits, the item anchors to the catch-all root `daily_notes`.
- `write_ontology_entities()` appends a `relate` fact for every decision it
  writes, resolving the root via `_norm_related_to()` (grounded anchors only)
  then `_root_id_for()`. An invented anchor is refused, not wired.

Nothing is deleted: the graph stays append-only, and every auto-link is
reversible.

### New guard

`hybrid-search/test_orphan_link.py`, wired into `scripts/release.sh`. It asserts
both directions: a grounded anchor links, an ungrounded decision still links to
`daily_notes`, and an INVENTED anchor is refused. A gate that accepted invented
roots would silently wire the graph wrong.

## v4.0.3 — MEMORY.md can no longer grow unbounded (2026-10-10)

#

CONTRIBUTING.md

# Contributing — OpenClaw Memory Toolkit

This file is for **maintainers of this repository**. It documents how a change
travels from the repo to the published artifact, and the invariants the release
gate enforces. If you only want to *use* the skill, read the [README](README.md)
instead.

## Release Pipeline (repo → skill → GitHub → ClawHub)

> **MUST — every memory-skill change goes through `scripts/release.sh`.**
> No exception. A change to `skills/memory-health/**` is not "done" until
> `scripts/release.sh check` passes green. Do not tag, do not push a release,
> do not hand anything to ClawHub before that. If the gate fails, fix the drift
> or the invariant — never bypass the gate.

One artifact, one direction, four stages. **Never edit the installed skill directly;
never let the repo and the skill drift.**

```
  local repo          installed skill            GitHub            ClawHub
  .work/mh-v213  ──▶  skills/memory-health/  ──▶  push main + tag ──▶  manual (Stéphane)
```

1. **Edit in the repo** (`.work/mh-v213`). Commit there.
2. **Sync repo → skill.** The installed skill is what the agent and the nightly
   cron actually load, so it must be updated from the repo, never the reverse.
   `SKILL.md` is the one exception: the skill copy carries a YAML frontmatter
   (`name:` / `description:`) that the repo omits, so its **body** is synced while
   the frontmatter is preserved.
3. **Run the gate:** `scripts/release.sh check`. It refuses to pass until
   repo↔skill files are byte-identical (SKILL body), `trace_extractor` is a single
   source, version markers and OLLAMA_* loopback invariants hold, every script
   parses, the loopback test passes and the tree is clean.
4. **Tag + push:** `scripts/release.sh release vX.Y.Z "message"`, then create the
   GitHub release.

> **MUST — a git tag is NOT a release. Create the GitHub Release too.** The
> operator had to point this out on 2026-10-05: v3.2.1 had its tag pushed but
> appeared nowhere in the repo's Releases tab. The tag is a bare pointer; the
> Release is the readable, dated entry a human actually sees. After pushing the
> tag, always run:
> ```bash
> gh release create vX.Y.Z \
>   --title "vX.Y.Z — <title>" \
>   --notes "<same content as the CHANGELOG entry>"
> ```
> Verify with `gh release list` — the new version must appear as `Latest`. A
> release is not "done" until it is in that list.

5. **ClawHub** is published by the operator, from the repo.

> **MUST — every release updates the CHANGELOG *and* the README.** The operator
> asked for this explicitly (2026-10-05): a release is not just a tag. Before
> tagging, always:
> - **CHANGELOG.md** — add a new entry at the top: `## vX.Y.Z — <title> (<date>)`
>   with `### Added` / `### Changed` / `### Fixed` sections as applicable. Cite
>   the cause, not just the change (what broke, why, how it was found). Never
>   rewrite history: correct an older entry only to fix a factual error.
> - **README.md** — update anything the release makes 
Github ReposUpdated 2d agoRank 70

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!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

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/mistermijarvis/skills/memory-toolkit",
      "sourceUrl": "https://clawhub.ai/mistermijarvis/skills/memory-toolkit",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-11T16:14:28.850Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-mistermijarvis-memory-toolkit/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-mistermijarvis-memory-toolkit/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-11T16:14:28.850Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1K downloads",
      "href": "https://clawhub.ai/mistermijarvis/memory-toolkit",
      "sourceUrl": "https://clawhub.ai/mistermijarvis/memory-toolkit",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-11T16:14:28.850Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "4.0.5",
      "href": "https://clawhub.ai/mistermijarvis/memory-toolkit",
      "sourceUrl": "https://clawhub.ai/mistermijarvis/memory-toolkit",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-11T10:59:04.723Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-mistermijarvis-memory-toolkit/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-mistermijarvis-memory-toolkit/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 4.0.5",
      "description": "- Added three new ontology maintenance scripts: `ontology_backfill_llm.py`, `ontology_backfill_orphans.py`, and `ontology_fix_day_nodes.py`. - Removed the obsolete `skill-card.md` file. - No user-facing pipeline or interface changes; core skill logic remains unchanged. - Documentation and version updated to reflect v4.0.5.",
      "href": "https://clawhub.ai/mistermijarvis/memory-toolkit",
      "sourceUrl": "https://clawhub.ai/mistermijarvis/memory-toolkit",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-11T10:59:04.723Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 11, 2026.

Sponsored

Ads related to Openclaw Memory Toolkit and adjacent AI workflows.