返回顶部
s

smart-memory

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.2
安全检测
已通过
70
下载量
0
收藏
概述
安装方式
版本历史

smart-memory

# Smart Memory Enhanced memory management for OpenClaw. Zero external dependencies. Inspired by Claude Code's memdir architecture. ## Requirements - **Runtime**: Python 3.10+ (standard library only), Bash 4.0+ (health/extract scripts only) - **OS**: Linux, macOS - **Environment variables** (all optional, with defaults): - `OPENCLAW_WORKSPACE` — Workspace root (default: `~/.openclaw/workspace`) - `OPENCLAW_SESSION_ID` — Session identifier for temp cache (default: `default`) ## Security ### Sensitive Data Protection All write commands (`session_state.py`, `session_cache.py`) automatically reject inputs matching: - API keys/tokens (OpenAI `sk-*`, GitHub `ghp_*`, ClawHub `clh_*`) - Passwords (`password=`, `passwd:`, etc.) - Private keys (`-----BEGIN PRIVATE KEY-----`) This is a **hard block** at the script level — the agent cannot bypass it. The regex patterns are conservative (high precision, may miss exotic formats); the agent should additionally avoid extracting any credential-like text even if not matched. ### Input Sanitization - Control characters stripped from all inputs - Session ID sanitized to alphanumeric/hyphen/underscore only (prevents path traversal) - Python-based scripts eliminate shell injection risks ### Data Isolation - All data stays local — no network calls, no cloud uploads - Session cache uses `/tmp/` with sanitized session ID filenames - No external dependencies or third-party packages ## Memory Layers | Layer | File | Purpose | Lifetime | |-------|------|---------|----------| | **HOT RAM** | `SESSION-STATE.md` | Current task, context, decisions | Session (survives compaction) | | **DAILY** | `memory/YYYY-MM-DD.md` | Raw daily notes with type tags | 90 days → archive | | **CURATED** | `MEMORY.md` | Promoted long-term facts | Permanent | | **ARCHIVE** | `memory/archive/YYYY-MM/` | Stale daily files | Forever (compressed) | | **CACHE** | `/tmp/openclaw-session-*.json` | Session temp data | Session end / reboot | ## Quick Reference | Action | Script | |--------|--------| | WAL shortcut (any command) | `scripts/wal task/decide/context/pending/done/blocker/get/snapshot/restore` | | Set current task | `scripts/wal task "description"` | | Log a decision | `scripts/wal decide "chose X over Y"` | | Add context | `scripts/wal context key value` | | Snapshot & restore | `scripts/wal snapshot` / `scripts/wal restore` | | Session cache | `python3 scripts/session_cache.py set/get/list/clear` | | Classify (summary) | `python3 scripts/classify_memory.py --summary` | | Decay (promote only) | `python3 scripts/memory_decay.py --promote-only` | | Health report | `bash scripts/memory_health.sh` | ## WAL Protocol (Write-Ahead Log) **Critical rule: Write BEFORE responding.** When the user provides information that should be remembered: 1. **Write to SESSION-STATE.md** (via `session_state.py`) 2. **Then** respond to the user This prevents context loss if compaction, crash, or restart happens between response and write. | User Action | WAL Write | |-------------|-----------| | States a preference | `session_state.py context "pref" "value"` | | Makes a decision | `session_state.py decide "chose X"` | | Gives a deadline | `session_state.py context "deadline" "date"` | | Corrects agent | `session_state.py decide "correction: X not Y"` | | Assigns task | `session_state.py task "description"` | | Mentions blocker | `session_state.py blocker "description"` | ## Memory Types All entries tagged with a type prefix: - `[PREF]` — User preferences, habits, style - `[PROJ]` — Project context, active work, goals - `[TECH]` — Technical details, configs, system knowledge - `[LESSON]` — Lessons learned, errors, corrections - `[PEOPLE]` — People, relationships, social context - `[TEMP]` — Session-scoped, auto-expires ## Core Workflows ### Session Start 1. Read `SESSION-STATE.md` for current task/context 2. Run `memory_search` for relevant prior context 3. Check `memory/YYYY-MM-DD.md` for today's activity ### During Conversation (WAL) 1. User provides actionable info → write to SESSION-STATE.md FIRST 2. Important facts → append to `memory/YYYY-MM-DD.md` with type tag 3. Use `session_cache.py` for transient session data ### Session End 1. Update `SESSION-STATE.md` with final state 2. Promote durable items from daily notes to `MEMORY.md` 3. Run `memory_health.sh` periodically to check hygiene ### Periodic Maintenance - Run `memory_decay.py` when MEMORY.md > 200 lines or 50+ daily files - Run `classify_memory.py` to tag orphaned entries - Archive daily files older than 90 days ## Agent Behavior ### Auto-Extract When - User shares preference, opinion, or personal fact - Project decision is made or changed - Error encountered and resolved (→ LESSON) - New people, tools, or workflows mentioned ### Extraction Modes - **Keyword mode** (default): `extract_memories.sh --auto "text"` — zero token cost, pure Python - **LLM mode** (opt-in): Use `references/extraction_prompt.md` template — costs tokens, better quality - Use keyword mode for most conversations; LLM mode only for long/complex sessions (20+ turns) ### Do NOT Extract - Passwords, tokens, API keys, credentials (scripts hard-block these) - Private conversations about third parties not relevant to work - Speculation or uncertain information ("user might prefer X") - Transient state ("user is currently looking at page X") - Information the user explicitly said not to remember ### Auto-Decay When - MEMORY.md exceeds 200 lines - memory/*.md totals > 50 files - On heartbeat if configured ## File Format ### MEMORY.md ```markdown ## [PREF] Preferences - Favorite color: 深蓝色 ## [PROJ] Active Projects - 黄金三章: /root/黄金三章/, golden3.killclaw.xyz ## [LESSON] Lessons Learned - Verify Telegram target before building notification workflows ``` ### Daily Notes ```markdown # 2026-03-31 ## [PROJ] 黄金三章 - Fixed scoring display to 10-point scale ``` ### SESSION-STATE.md ```markdown ## Current Task Building smart-memory skill ## Key Context - **platform**: ClawHub ## Recent Decisions - **2026-03-31**: Use zero-dependency approach ## Pending Actions - [ ] Publish to ClawHub ``` ## Scripts | Script | Language | Purpose | Security | |--------|----------|---------|----------| | `session_state.py` | Python | HOT RAM working memory (WAL protocol) | Sensitive data filter + sanitization | | `session_cache.py` | Python | Session-scoped temp key-value cache | Sensitive data filter + path-safe IDs | | `extract_memories.sh` | Bash | Memory extraction guide and daily file init | Read-only output | | `memory_health.sh` | Bash | Health report (stats, orphans, token estimate) | Read-only | | `memory_decay.py` | Python | Temporal decay and archival of stale files | Dry-run mode available | | `classify_memory.py` | Python | Keyword-based type classification | Dry-run mode available | ## References - `references/extraction_prompt.md` — LLM prompt for auto-extraction - `references/memory_schema.md` — Full schema and format spec - `references/decay_rules.md` — Decay/archival rule set

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 smart-memory-zero-dep-1775910082 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 smart-memory-zero-dep-1775910082 技能

通过命令行安装

skillhub install smart-memory-zero-dep-1775910082

下载 Zip 包

⬇ 下载 smart-memory v1.1.2

文件大小: 22.58 KB | 发布时间: 2026-4-12 11:27

v1.1.2 最新 2026-4-12 11:27
UX: wal shortcut alias (--help: 20 chars vs 70), classify --summary for stats-only output, decay --promote-only for quick LESSON promotion, health now shows actionable suggestions

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部