Compresses long conversations into structured summaries. Saves token by replacing
raw conversation history with dense, searchable digests.
OPENCLAW_WORKSPACE — Workspace root (default: ~/.openclaw/workspace)OPENCLAW_WORKSPACE (default: ~/.openclaw/workspace)The agent may ONLY write to these locations:
memory/compacts/ — compact files onlySESSION-STATE.md — via smart-memory skill (not this skill)The agent MUST NOT write to:
.* dotfile or dotdir in workspace rootmemory/compacts/*.mdThe agent may ONLY read from:
memory/compacts/ — for listing/reading past compactsThe agent MUST NOT read from:
/etc/passwd, /etc/shadow, or any system credential file~/.ssh/, ~/.aws/, ~/.config/openclaw/ or similarBefore writing ANY compact, the agent MUST run this checklist:
)))If any item fails → do not write the compact until fixed.
placeholder), , Long conversation (10,000+ tokens)
↓
compact_session.py --extract
↓
Structured digest (~500 tokens)
↓
Saved to memory/compacts/YYYY-MM-DD-HHMM.md
↓
New session reads latest compact on startup
Compression ratio: ~20:1 — a 10,000 token conversation becomes ~500 token digest.
| Action | Script |
|---|---|
| -------- | -------- |
| Write compact (agent-authored) | python3 scripts/compact_session.py --write < compact.md |
| List compacts | python3 scripts/compact_session.py --list |
| Read latest compact | python3 scripts/compact_session.py --latest |
| Show compact stats | python3 scripts/compact_session.py --stats |
How compaction works: The agent drafts the compact content, then pipes it through --write which enforces security checks (no paths, URLs, IPs, secrets) before saving. This ensures programmatic enforcement — the agent never writes directly to disk.
# Session Compact — 2026-03-31 17:00 UTC
**Turns**: 45 | **Est. tokens saved**: ~9,500
## Decisions Made
- [2026-03-31] Chose SQLite over Redis for golden3 prompts
- [2026-03-31] Decided to use zero-dependency approach for smart-memory
## Facts Established
- [PROJ] golden3 site at golden3.killclaw.xyz, repo github.com/zgjq/golden3
- [TECH] Prompts stored in data/golden3.db, table `prompts`, category `scoring`
- [PREF] User prefers direct, no-nonsense communication style
## Pending Actions
- [ ] Publish smart-memory to ClawHub
- [ ] Fix scoring display from 100-point to 10-point scale
## Technical Context
- Server: ubuntu-4gb-hel1-1, Node v24.14.0
- Golden3 uses node:sqlite (DatabaseSync)
## Blockers / Open Questions
- Need ClawHub login token to publish
## Session Summary
Built smart-memory skill from Claude Code architecture study. Published to ClawHub
as smart-memory-zero-dep. Memory system now active with WAL protocol, type
classification, temporal decay, and snapshot/restore.
The agent drafts the compact content, then saves it via:
echo "compact content" | python3 scripts/compact_session.py --write
The --write flag enforces all security checks programmatically: redaction of paths/URLs/IPs/secrets, path containment within workspace, and file naming. The agent NEVER writes directly to disk.
From the conversation, extract:
Skip:
This skill works with smart-memory:
[TYPE] tags from smart-memory's classification systemwal pendingmemory/compacts/ — decayed by smart-memory's archival system~/.openclaw/workspace/
├── memory/
│ └── compacts/
│ ├── 2026-03-31-1700.md # Session compact
│ ├── 2026-03-30-1430.md
│ └── ...
共 1 个版本