โ† Back to Skills Marketplace
bustes01

๐Ÿ’พ Complex Memory Manager

by shake27 ยท GitHub โ†— ยท v1.0.0 ยท MIT-0
cross-platform โœ“ Security Clean
77
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install complex-memory-manager
Description
Privacy-aware structured memory management for AI agents. Three-tier memory model (Public / Internal-encrypted / Private-not-stored), with XOR+Base64 encrypt...
README (SKILL.md)

๐Ÿ’พ Complex Memory Manager

Privacy-aware structured memory management for AI agents. Provides a three-tier memory model (Public / Internal-encrypted / Private-not-stored) with XOR+Base64 encryption, auto-cleanup, and generalization rules.

This is a shared component skill โ€” other skills reference it for cross-session persistent memory. When updating, ensure backward compatibility with all dependent skills.

Tiered Memory Model

Tier Content Visibility Encryption Storage
Public (T1) Skill usage stats, common patterns, generic workflows Visible to anyone None memory/tier1-public/
Internal (T2) Specific preferences, learned behaviors Agent-visible only XOR + Base64 memory/tier2-internal/
Private (T3) API keys, credentials, PII Not stored by this skill Not applicable Env vars / secret managers only

T1: Public Memory

Store in memory/tier1-public/ or directly in daily notes.

Allowed content:

  • Aggregated skill usage statistics (no personal identifiers)
  • Generic workflow patterns
  • Common user request categories
  • Non-identifying behavioral data

Format:

{
  "skill_stats": {
    "skill-a": { "calls": 47, "success_rate": 0.96, "last_used": "2026-05-19" },
    "skill-b": { "calls": 23, "success_rate": 0.91, "last_used": "2026-05-18" }
  },
  "patterns_observed": [
    { "trigger": "morning request", "skills_used": ["morning-news-daily"], "count": 30 }
  ]
}

T2: Internal Encrypted Memory

Use XOR + Base64 for non-public data. Key is derived from skill name + date โ€” reconstructable without storing the key.

Encryption:

import hashlib, base64

def _derive_key(skill_name: str, year_month: str) -> str:
    """e.g., _derive_key('my-skill', '2026-05')"""
    raw = skill_name + year_month
    return hashlib.sha256(raw.encode()).hexdigest()[:8]

def encrypt(text: str, skill_name: str, year_month: str) -> str:
    key = _derive_key(skill_name, year_month)
    result = bytes([ord(c) ^ ord(key[i % len(key)]) for i, c in enumerate(text)])
    return base64.b64encode(result).decode()

def decrypt(encoded: str, skill_name: str, year_month: str) -> str:
    key = _derive_key(skill_name, year_month)
    raw = base64.b64decode(encoded)
    return ''.join(chr(b ^ ord(key[i % len(key)])) for i, b in enumerate(raw))

Memory entry format:

---
tier: internal
source_skill: \x3Cskill-name>
key_hint: \x3Cskill-name>-\x3CYYYY-MM>
created: \x3CYYYY-MM-DD>
expires: \x3CYYYY-MM-DD>  # 30 days from created
---

## Encrypted Entry
> \x3Cbase64-encoded, XOR-encrypted data>

## Decryption Note
Key = sha256("\x3Cskill-name>-\x3CYYYY-MM>")[:8], then XOR + base64 decode.

T3: Private (Do Not Store)

Rules (enforced):

  • API keys / tokens โ†’ store in environment variables
  • Passwords โ†’ use secret manager (1Password, Bitwarden, system keychain)
  • Email addresses, phone numbers โ†’ never in skill memory
  • Home/work addresses, government IDs โ†’ never in skill memory
  • Financial account numbers โ†’ never in skill memory

Cleanup Protocol

Run every 7 days or when triggered by any dependent skill:

  1. List all files in memory/tier1-public/, memory/tier2-internal/
  2. Find entries where created > 30 days ago โ†’ move to memory/archive/YYYY-MM/
  3. Scan Tier 2 entries for accidental PII โ†’ immediately delete if found
  4. Merge duplicate entries, remove outdated patterns
  5. Compact: combine entries from same source_skill into single files
  6. Log cleanup action: [YYYY-MM-DD] Memory cleanup: X archived, Y deleted, Z merged

Privacy Audit Checklist

  • No real names, usernames, or handles in memory
  • No API keys or tokens in any visible file
  • No filesystem paths containing personal home directories
  • No fixed personal schedules (use relative: "early morning" not "6am")
  • No geographic specifics beyond city level
  • All Tier 2 entries have expiry dates
  • Tier 3 data never touches skill memory

Cross-Skill Usage

Other skills declare dependency via requires in YAML frontmatter:

metadata:
  openclaw:
    requires:
      skills:
        - complex-memory-manager

When multiple skills share memory, prefix filenames with the source skill name:

  • memory/tier1-public/skill-a_stats.json
  • memory/tier2-internal/skill-a_preferences.md

๐Ÿ’พ ๅคๆ‚่ฎฐๅฟ†็ฎก็†ๅ™จ

้ขๅ‘AI Agent็š„้š็งๆ„Ÿ็Ÿฅ็ป“ๆž„ๅŒ–่ฎฐๅฟ†็ฎก็†ใ€‚ๆไพ›ไธ‰ๅฑ‚่ฎฐๅฟ†ๆจกๅž‹๏ผˆๅ…ฌๅผ€/ๅ†…้ƒจๅŠ ๅฏ†/็งไบบไธๅญ˜ๅ‚จ๏ผ‰๏ผŒๆ”ฏๆŒXOR+Base64ๅŠ ๅฏ†ใ€่‡ชๅŠจๆธ…็†ๅ’Œๆณ›ๅŒ–่ง„ๅˆ™ใ€‚

่ฟ™ๆ˜ฏไธ€ไธชๅ…ฑไบซ็ป„ไปถๆŠ€่ƒฝโ€”โ€”ๅ…ถไป–ๆŠ€่ƒฝ้€š่ฟ‡ๅฎƒๅฎž็Žฐ่ทจไผš่ฏๆŒไน…ๅŒ–่ฎฐๅฟ†ใ€‚ๆ›ดๆ–ฐๆ—ถ้œ€ไฟ่ฏๅ‘ๅŽๅ…ผๅฎนๆ‰€ๆœ‰ไพ่ต–ๅฎƒ็š„ๆŠ€่ƒฝใ€‚

ไธ‰ๅฑ‚่ฎฐๅฟ†ๆจกๅž‹

ๅฑ‚็บง ๅ†…ๅฎน ๅฏ่งๆ€ง ๅŠ ๅฏ† ๅญ˜ๅ‚จไฝ็ฝฎ
ๅ…ฌๅผ€(T1) ๆŠ€่ƒฝไฝฟ็”จ็ปŸ่ฎกใ€้€š็”จๅทฅไฝœๆตๆจกๅผ ไปปไฝ•ไบบๅฏ่ง ๆ—  memory/tier1-public/
ๅ†…้ƒจ(T2) ็‰นๅฎšๅๅฅฝใ€ๅญฆไน ๅˆฐ็š„่กŒไธบ ไป…Agentๅฏ่ง XOR+Base64 memory/tier2-internal/
็งไบบ(T3) APIๅฏ†้’ฅใ€ๅ‡ญๆฎใ€ไธชไบบ่บซไปฝไฟกๆฏ ๆœฌๆŠ€่ƒฝไธๅญ˜ๅ‚จ ไธ้€‚็”จ ็Žฏๅขƒๅ˜้‡/ๅฏ†้’ฅ็ฎก็†ๅ™จ

T1๏ผšๅ…ฌๅผ€่ฎฐๅฟ†

ๅญ˜ๅ‚จไฝ็ฝฎ๏ผšmemory/tier1-public/ ๆˆ–ๆฏๆ—ฅ็ฌ”่ฎฐ

ๅ…่ฎธๅ†…ๅฎน๏ผš

  • ่šๅˆๆŠ€่ƒฝไฝฟ็”จ็ปŸ่ฎก๏ผˆๆ— ไธชไบบๆ ‡่ฏ†๏ผ‰
  • ้€š็”จๅทฅไฝœๆตๆจกๅผ
  • ๅธธ่ง็”จๆˆท่ฏทๆฑ‚ๅˆ†็ฑป
  • ้ž่ฏ†ๅˆซ็š„่กŒไธบๆ•ฐๆฎ

ๆ ผๅผ๏ผš

{
  "skill_stats": {
    "skill-a": { "calls": 47, "success_rate": 0.96, "last_used": "2026-05-19" },
    "skill-b": { "calls": 23, "success_rate": 0.91, "last_used": "2026-05-18" }
  },
  "patterns_observed": [
    { "trigger": "ๆ—ฉๆ™จ่ฏทๆฑ‚", "skills_used": ["morning-news-daily"], "count": 30 }
  ]
}

T2๏ผšๅ†…้ƒจๅŠ ๅฏ†่ฎฐๅฟ†

ไฝฟ็”จ XOR + Base64 ๅŠ ๅฏ†ใ€‚ๅฏ†้’ฅ็”ฑๆŠ€่ƒฝๅ+ๆ—ฅๆœŸๆดพ็”Ÿ๏ผŒๆ— ้œ€ๅญ˜ๅ‚จๅฏ†้’ฅๅณๅฏ้‡ๅปบใ€‚

ๅŠ ๅฏ†ๆ–นๆณ•๏ผš

import hashlib, base64

def _derive_key(skill_name, year_month):
    raw = skill_name + year_month
    return hashlib.sha256(raw.encode()).hexdigest()[:8]

def encrypt(text, skill_name, year_month):
    key = _derive_key(skill_name, year_month)
    result = bytes([ord(c) ^ ord(key[i % len(key)]) for i, c in enumerate(text)])
    return base64.b64encode(result).decode()

def decrypt(encoded, skill_name, year_month):
    key = _derive_key(skill_name, year_month)
    raw = base64.b64decode(encoded)
    return ''.join(chr(b ^ ord(key[i % len(key)])) for i, b in enumerate(raw))

่ฎฐๅฟ†ๆก็›ฎๆ ผๅผ๏ผš

---
tier: internal
source_skill: \x3Cskillๅ็งฐ>
key_hint: \x3Cskillๅ็งฐ>-\x3CYYYY-MM>
created: \x3CYYYY-MM-DD>
expires: \x3CYYYY-MM-DD>
---

## ๅŠ ๅฏ†ๆก็›ฎ
> \x3Cbase64็ผ–็ ็š„XORๅŠ ๅฏ†ๆ•ฐๆฎ>

## ่งฃๅฏ†่ฏดๆ˜Ž
ๅฏ†้’ฅ = sha256("\x3Cskillๅ็งฐ>-\x3CYYYY-MM>")[:8], ็„ถๅŽ XOR + base64 ่งฃ็ ใ€‚

T3๏ผš็งไบบ๏ผˆไธๅญ˜ๅ‚จ๏ผ‰

่ง„ๅˆ™๏ผˆๅผบๅˆถๆ‰ง่กŒ๏ผ‰๏ผš

  • APIๅฏ†้’ฅ/Token โ†’ ๅญ˜ๅ…ฅ็Žฏๅขƒๅ˜้‡
  • ๅฏ†็  โ†’ ไฝฟ็”จๅฏ†้’ฅ็ฎก็†ๅ™จ๏ผˆ1Passwordใ€Bitwardenใ€็ณป็ปŸ้’ฅๅŒ™ไธฒ๏ผ‰
  • ้‚ฎ็ฎฑใ€็”ต่ฏๅท็  โ†’ ็ปไธๅญ˜ๅ…ฅskill่ฎฐๅฟ†
  • ๅฎถๅบญ/ๅทฅไฝœๅœฐๅ€ใ€่บซไปฝ่ฏๅท โ†’ ็ปไธๅญ˜ๅ…ฅskill่ฎฐๅฟ†
  • ้“ถ่กŒ่ดฆๅท โ†’ ็ปไธๅญ˜ๅ…ฅskill่ฎฐๅฟ†

ๆธ…็†ๅ่ฎฎ

ๆฏ 7ๅคฉ ๆˆ–ไปปไฝ•ไพ่ต–ๆŠ€่ƒฝ่งฆๅ‘ๆ—ถๆ‰ง่กŒ๏ผš

  1. ๅˆ—ๅ‡บ memory/tier1-public/ ๅ’Œ memory/tier2-internal/ ไธญ็š„ๆ‰€ๆœ‰ๆ–‡ไปถ
  2. ๆŸฅๆ‰พ created ่ถ…่ฟ‡30ๅคฉ็š„ๆก็›ฎ โ†’ ็งป่‡ณ memory/archive/YYYY-MM/
  3. ๆ‰ซๆ Tier 2 ๆก็›ฎไธญๆ˜ฏๅฆๆ„ๅค–ๅŒ…ๅซPII โ†’ ็ซ‹ๅณๅˆ ้™ค
  4. ๅˆๅนถ้‡ๅคๆก็›ฎ๏ผŒๅˆ ้™ค่ฟ‡ๆ—ถๆจกๅผ
  5. ๅŽ‹็ผฉ๏ผšๅฐ†ๅŒไธ€ source_skill ็š„ๆก็›ฎๅˆๅนถๅˆฐๅ•ไธชๆ–‡ไปถ
  6. ่ฎฐๅฝ•ๆธ…็†ๆ“ไฝœ

้š็งๅฎก่ฎกๆธ…ๅ•

  • ่ฎฐๅฟ†ไธญๆฒกๆœ‰็œŸๅฎžๅง“ๅใ€็”จๆˆทๅๆˆ–handle
  • ไปปไฝ•ๅฏ่งๆ–‡ไปถไธญๆฒกๆœ‰API Keyๆˆ–Token
  • ๆฒกๆœ‰ๅŒ…ๅซไธชไบบhome็›ฎๅฝ•็š„ๆ–‡ไปถ็ณป็ปŸ่ทฏๅพ„
  • ๆฒกๆœ‰ๅ›บๅฎšไธชไบบไฝœๆฏ๏ผˆ็”จ"early morning"ไปฃๆ›ฟ"6am"๏ผ‰
  • ๅœฐ็†ไฟกๆฏไธ่ถ…่ฟ‡ๅŸŽๅธ‚็บงๅˆซ
  • ๆ‰€ๆœ‰Tier 2ๆก็›ฎๆ ‡ๆณจไบ†ๆœ‰ๆ•ˆๆœŸ
  • Tier 3ๆ•ฐๆฎไปŽๆœช่งฆๅŠskill่ฎฐๅฟ†

่ทจๆŠ€่ƒฝไฝฟ็”จ

ๅ…ถไป–ๆŠ€่ƒฝๅœจ YAML frontmatter ไธญๅฃฐๆ˜Žไพ่ต–๏ผš

metadata:
  openclaw:
    requires:
      skills:
        - complex-memory-manager

ๅคšๆŠ€่ƒฝๅ…ฑไบซ่ฎฐๅฟ†ๆ—ถ๏ผŒๆ–‡ไปถๅไปฅๆบๆŠ€่ƒฝๅ็งฐไธบๅ‰็ผ€๏ผš

  • memory/tier1-public/skill-a_stats.json
  • memory/tier2-internal/skill-a_preferences.md
Usage Guidance
Do not treat this as a complete security review; rerun the scan where metadata.json and artifact/ can be read before installing.
Capability Tags
requires-sensitive-credentials
Capability Assessment
โ„น Purpose & Capability
Artifact contents were unavailable due local command sandbox failure, so purpose and capabilities could not be coherently validated.
โ„น Instruction Scope
SKILL.md instructions could not be inspected, so no evidence-backed scope concern can be reported.
โ„น Install Mechanism
Install metadata and artifact files could not be inspected, so provenance and install behavior remain unverified.
โ„น Credentials
Requested environment access could not be compared against the skill purpose from available evidence.
โ„น Persistence & Privilege
No artifact-backed evidence of persistence, credential use, or privilege abuse was available to review.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install complex-memory-manager
  3. After installation, invoke the skill by name or use /complex-memory-manager
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: three-tier memory model, XOR+Base64 encryption, cleanup protocol
Metadata
Slug complex-memory-manager
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is ๐Ÿ’พ Complex Memory Manager?

Privacy-aware structured memory management for AI agents. Three-tier memory model (Public / Internal-encrypted / Private-not-stored), with XOR+Base64 encrypt... It is an AI Agent Skill for Claude Code / OpenClaw, with 77 downloads so far.

How do I install ๐Ÿ’พ Complex Memory Manager?

Run "/install complex-memory-manager" in the OpenClaw or Claude Code chat to install it in one step โ€” no extra setup required.

Is ๐Ÿ’พ Complex Memory Manager free?

Yes, ๐Ÿ’พ Complex Memory Manager is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does ๐Ÿ’พ Complex Memory Manager support?

๐Ÿ’พ Complex Memory Manager is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created ๐Ÿ’พ Complex Memory Manager?

It is built and maintained by shake27 (@bustes01); the current version is v1.0.0.

๐Ÿ’ฌ Comments