← 返回 Skills 市场
iret77

Smart Memory

作者 iret77 · GitHub ↗ · v1.5.5 · MIT-0
cross-platform ⚠ suspicious
484
总下载
0
收藏
2
当前安装
12
版本数
在 OpenClaw 中安装
/install iret77-smart-memory
功能描述
5-layer memory architecture for OpenClaw agents. Solves context bloat, the 48h fogging problem, and rule amnesia. Works for single-agent and multi-agent setu...
使用说明 (SKILL.md)

Smart Memory — Setup Skill

Was dieses Skill tut

Standard-OpenClaw-Setups akkumulieren über Wochen unkontrolliert Wissen in MEMORY.md. Das führt zu Kontextfenster-Überlastung, Widersprüchen und einem Agenten der wichtige Regeln "vergisst" obwohl sie in MEMORY.md stehen — und zu hartem 48h-Fogging bei Daily Logs.

Dieses Skill richtet eine 5-Schichten-Memory-Architektur ein die das löst.


AGENT: Setup-Anleitung

Gehe die folgenden Schritte der Reihe nach durch. [MULTI-AGENT ONLY]-Schritte können übersprungen werden wenn nur ein Agent im System ist.

Schritt 1: Verzeichnisse anlegen

mkdir -p memory/projects
mkdir -p memory/agents   # [MULTI-AGENT ONLY]
mkdir -p docs

Schritt 2: MEMORY.md auf Kern reduzieren

Lese die bestehende MEMORY.md. Extrahiere:

  • User-Profil (max. 3 Zeilen)
  • Projekt-Headlines (1 Zeile pro Projekt) → Verweis auf CONTEXT.md
  • Kritische Regeln (max. 5 Bullet Points)
  • Agent-Routing-Tabelle [MULTI-AGENT ONLY]

Alles andere gehört in active-context.md oder die Projekt-/Agent-Kontext-Dateien (s.u.). Schreibe das Ergebnis in MEMORY.md — Ziel: max. 35 Zeilen.

Füge am Ende hinzu:

## Memory-Architektur
- active-context.md → offene Themen + Kontext (täglich pflegen)
- memory/projects/\x3Cname>/CONTEXT.md → Projekthandbücher (on-demand injizieren)
- memory/agents/\x3Ctyp>.md → Domain-Wissen (on-demand injizieren) [MULTI-AGENT ONLY]
- ⚠️ Schreib-Pflicht: Strukturelle Änderungen → active-context.md SOFORT updaten (Session kann jederzeit enden)

Schritt 3: active-context.md erstellen

Erstelle memory/active-context.md mit folgendem Header:

# Active Context
# Pflege-Regel: [DONE]-Einträge wöchentlich entfernen (automatisch via Cron/Heartbeat).
# Jeder Eintrag: Status + inhaltlicher Kontext (was der User erklärt hat).
# Nach Erledigung: gesamten Block löschen.
# Größenbremse: > 100 Zeilen = zu viele offene Themen oder zu geschwätzig → kürzen.

---

Befülle die Datei mit allem was aktuell offen ist (aus MEMORY.md, Tages-Logs, Kontext). Format pro Eintrag:

## [OPEN] \x3CThema> — \x3CKurzbeschreibung>
\x3CInhaltlicher Kontext: Was wurde erklärt, entschieden, vereinbart?>
\x3CRelevante Regeln oder Hintergründe die der Agent kennen muss>

---

Besonders wichtig: Kritische Regeln die oft vergessen werden → als [OPEN]-Block aufnehmen (auch wenn sie "immer" gelten — das ist der Punkt, sie bleiben sichtbar bis sie wirklich verinnerlicht sind).

Schritt 4: Projekthandbücher anlegen

Für jedes aktive Projekt: memory/projects/\x3Cprojektname>/CONTEXT.md

Extrahiere alle projektspezifischen Details aus MEMORY.md in diese Datei. Template: templates/projects/example/CONTEXT.md in diesem Skill-Ordner.

Wann updaten:

⚠️ Kritisch: "Am Ende des Tasks" ist ein Anti-Pattern — Sessions können jederzeit durch Rate-Limits oder Crashes enden. Die korrekte Anweisung ist: CONTEXT.md SOFORT nach der Aktion updaten, in derselben Antwort. Kein nachgelagerter Schritt.

Schritt 5: Agent-Domain-Wissen anlegen [MULTI-AGENT ONLY]

Für jeden Sub-Agent-Typ: memory/agents/\x3Ctyp>.md

Enthält cross-project Wissen das für diesen Agent-Typ immer gilt. Templates: templates/agents/ in diesem Skill-Ordner.

Abgrenzung:

  • memory/agents/coding.md: "GPT erfindet Swift-Typen → nie GPT für Swift-Code"
  • memory/projects/myapp/CONTEXT.md: "myapp hat zwei .strings-Dateien die synchron bleiben müssen"

Wenn das Wissen beim nächsten Projekt auch gilt → agents/. Sonst → projects/.

Task-Summary-Pflicht für Sub-Agents: Jeder Sub-Agent sendet nach Abschluss eine Summary an den Orchestrator:

sessions_send(sessionKey="agent:main", message="[SUMMARY] Projekt: X | Was: Y | Status: Z")

Zweck: Orchestrator-Heartbeat kann als Backup-Bestätigung prüfen ob CONTEXT.md-Update erfolgte.

Schritt 6: AGENTS.md Startup-Sequenz updaten

Ersetze die "Every Session"-Sektion durch:

## Every Session

Before doing anything else:
1. Read `SOUL.md` — this is who you are
2. Read `USER.md` — this is who you're helping
3. **If in MAIN SESSION:** Read `MEMORY.md` + `memory/active-context.md`
4. Read `memory/YYYY-MM-DD.md` (today + yesterday) for recent raw context

**Sub-Agent Spawns [MULTI-AGENT ONLY]:** Injiziere in den Task-Prompt:
- Immer: Inhalt von `memory/agents/\x3Ctyp>.md`
- Bei Projektarbeit: Inhalt von `memory/projects/\x3Cname>/CONTEXT.md`

Schritt 7: Automatischen Cleanup + Backup einrichten

Option A — Heartbeat (einfach): Füge in HEARTBEAT.md ein:

# TASK: Memory-Hygiene (wöchentlich, jeden Sonntag)
# Prüfe ob seit letztem Cleanup > 6 Tage vergangen (heartbeat-state.json).
# 1. Entferne alle [DONE]-Blöcke komplett aus memory/active-context.md
# 2. [OPEN]-Blöcke älter 30 Tage ohne Aktivität → in Tages-Log, aus active-context entfernen
# 3. memory/projects/*/CONTEXT.md — erledigte Tasks kürzen
# 4. lastMemoryCleanup Timestamp in memory/heartbeat-state.json schreiben

# TASK: Sub-Agent Memory Backup (bei JEDEM Heartbeat) [MULTI-AGENT ONLY]
# Sicherheitsnetz falls Sub-Agent CONTEXT.md-Sofortschreiben vergessen hat.
# 1. Lese letzten Sub-Agent-Output-Channel auf Abschluss-Posts
# 2. Prüfe ob strukturelle Änderungen in CONTEXT.md reflektiert sind
# 3. Falls NICHT → kompakten Eintrag ergänzen (was, wann, Commit/Status)

# TASK: Daily-Log automatisch schreiben (einmal täglich, abends)
# Prüfe ob memory/YYYY-MM-DD.md für heute existiert.
# Wenn NICHT: Lese memory/chat-YYYY-MM-DD.md → destilliere strukturelle Änderungen.
# Schreibe Ergebnis nach memory/YYYY-MM-DD.md (max. 30 Zeilen).

Option B — Cron-Job (präzise):

Schedule: 0 7 * * 0 (Sonntag 07:00 Ortszeit)
Message: "Wöchentliche Memory-Hygiene: [Cleanup-Anweisungen wie oben]"

Schritt 8: Abschlusskontrolle

Prüfe jedes Kriterium:

  • MEMORY.md \x3C 40 Zeilen
  • active-context.md erstellt, mindestens ein [OPEN]-Eintrag
  • Jeder [OPEN]-Eintrag hat inhaltlichen Kontext, nicht nur Statuszeile
  • Keine projektspezifischen Details mehr in MEMORY.md
  • Wöchentlicher Cleanup aktiv (Heartbeat oder Cron)
  • AGENTS.md Startup-Sequenz updated
  • Für jedes aktive Projekt: CONTEXT.md angelegt [MULTI-AGENT ONLY]
  • Für jeden Sub-Agent-Typ: agents/\x3Ctyp>.md angelegt [MULTI-AGENT ONLY]

Berichte dem User kurz: Was wurde eingerichtet, wie viele Zeilen hat MEMORY.md jetzt, wie viele offene Themen sind in active-context.md.


Session-Lifecycle: Graceful Termination (v1.3+)

Das Session-Bloat-Problem: Channel-Sessions (Slack, Discord etc.) wachsen unbegrenzt. Ab ~500 Zeilen wird jede Antwort spürbar langsamer — die gesamte History wird bei jeder Nachricht in den Kontext geladen. Ein harter Trim mitten im Gespräch löscht aber Kontext, Sprache und Persona sofort. Beides ist lösbar — ohne Script, ohne sichtbaren Output im Chat.

Goldene Regel 1 — Immer Memory schreiben lassen, bevor du trimmst oder killst: Bevor eine Session getrimmt oder gelöscht wird, muss der Agent die Möglichkeit haben, seinen Kontext in das Memory-System zu schreiben. Das gilt für manuelle Aktionen genauso wie für automatische Heartbeat-Tasks. Der Hash-Handshake-Flow (s.u.) ist die technische Umsetzung dieser Regel.

Goldene Regel 2: Niemals eine Channel-Session direkt trimmen oder löschen. Immer den Hash-Handshake-Flow verwenden. Kein separates Script nötig — der Heartbeat-LLM führt den Flow direkt aus.

Warum der Flow unsichtbar ist

Channel-Sessions (z.B. Slack) leiten jede Antwort an den Chat weiter. Sobald man aber NO_REPLY als einzigen Inhalt der Antwort vorgibt, unterdrückt OpenClaw den Output vollständig — nichts landet im Kanal. Der Hash in active-context.md dient als Out-of-Band-Bestätigung ohne Chat-Output.

Der Hash-Handshake-Flow

  1. Heartbeat prüft sessions.json → alle Keys mit :channel: ohne :thread:
  2. Für jede Session > 500 Zeilen UND > 2h inaktiv (updatedAt):
    • Generiere einmaligen Hash: TRIM_READY_\x3C4 random chars> (z.B. TRIM_READY_a3f8)
    • sessions_send(sessionKey=\x3Ckey>, timeoutSeconds=90, message="[WARTUNG] Schreibe jetzt alle offenen Themen und wichtigen Kontext in memory/active-context.md. Füge danach exakt diese Zeile am Ende ein: TRIM_HASH: \x3Chash>. Antworte ausschließlich mit NO_REPLY.")
    • Lese memory/active-context.md → suche nach TRIM_HASH: \x3Chash>
    • Hash gefunden: Sicher trimmen (s.u.) + TRIM_HASH:-Zeile entfernen + Log: TRIMMED
    • Hash nicht gefunden (Timeout): Trotzdem trimmen + Log: FORCE-TRIM

Warum Force-Trim nach Timeout OK ist: Eine Session die 90s nicht reagiert, ist faktisch eingefroren. Wichtige Infos stehen bereits in active-context.md aus früheren Saves. Der Schaden durch dauerhaft aufgeblähte Sessions überwiegt.

⚠️ Thread-Sessions niemals trimmen: Keys mit :thread: enthalten laufende Unterhaltungs-Threads und müssen von der Trim-Logik ausgeschlossen werden.

⚠️ Sicheres Trimmen: Nie mitten in einem Tool-Call schneiden

tail -60 kann mitten in einem Tool-Call-Block landen (toolUse ohne nachfolgendes toolResult, oder toolResult ohne nachfolgende Assistenten-Antwort). Das hinterlässt die Session in einem ungültigen Zustand — der Agent schweigt danach komplett.

Pflicht: Immer auf einer vollständigen Assistenten-Antwort abschneiden.

import json

def safe_trim(session_file, keep_lines=60):
    lines = open(session_file).readlines()
    if len(lines) \x3C= keep_lines:
        return  # Nichts zu tun
    
    # Kandidaten-Startpunkte: nur Zeilen wo role=assistant und kein toolUse
    candidates = []
    for i, line in enumerate(lines):
        try:
            msg = json.loads(line).get('message', {})
            if msg.get('role') != 'assistant':
                continue
            content = msg.get('content', [])
            # Nur wenn keine toolCall-Blöcke in der Antwort
            if not any(c.get('type') == 'toolCall' for c in content if isinstance(c, dict)):
                candidates.append(i)
        except:
            continue
    
    # Letzten Kandidaten der noch >= keep_lines vom Ende entfernt ist
    cutpoint = None
    for i in reversed(candidates):
        if len(lines) - i >= keep_lines:
            cutpoint = i
            break
    
    if cutpoint is None:
        cutpoint = max(0, len(lines) - keep_lines)
    
    with open(session_file, 'w') as f:
        f.writelines(lines[cutpoint:])

Dieses Skript sicherstellen dass der Trim immer nach einer abgeschlossenen Assistenten-Antwort beginnt — nie mitten in einem Tool-Austausch.

Heartbeat-Task-Template (direkt in HEARTBEAT.md einfügen)

# TASK: Auto-Trim große Channel-Sessions (bei JEDEM Heartbeat)
# [INSTRUCTION for LLM]:
# 1. Lese \x3Cworkspace>/.openclaw/agents/main/sessions/sessions.json
# 2. Finde alle Keys die ":channel:" enthalten UND KEIN ":thread:" haben
# 3. Für jeden solchen Key: prüfe Zeilenanzahl der sessionFile (wc -l)
# 4. Wenn > 500 Zeilen UND updatedAt > 2h her:
#    a. Generiere Hash: TRIM_READY_\x3C4 random chars>
#    b. sessions_send(sessionKey=\x3Ckey>, timeoutSeconds=90,
#       message="[WARTUNG] Schreibe jetzt alle offenen Themen und wichtigen Kontext
#       in memory/active-context.md. Füge danach exakt diese Zeile am Ende ein:
#       TRIM_HASH: \x3Chash>
#       Antworte ausschließlich mit NO_REPLY.")
#    c. Lese memory/active-context.md → suche nach "TRIM_HASH: \x3Chash>"
#    d. Hash gefunden:
#       - tail -60 \x3CsessionFile> > /tmp/trim.jsonl && mv /tmp/trim.jsonl \x3CsessionFile>
#       - Entferne TRIM_HASH-Zeile aus active-context.md
#       - Log: "\x3CISO> | \x3Ckey> | TRIMMED" → memory/trim-log.txt
#    e. Hash nicht gefunden (Timeout):
#       - tail -60 \x3CsessionFile> > /tmp/trim.jsonl && mv /tmp/trim.jsonl \x3CsessionFile>
#       - Log: "\x3CISO> | \x3Ckey> | FORCE-TRIM" → memory/trim-log.txt

Pflicht-Ergänzung in AGENTS.md

## Session-Management (Harte Regel, keine Ausnahmen)

NIEMALS eine Channel-Session direkt löschen oder trimmen.
Immer den Hash-Handshake-Flow via Heartbeat verwenden (siehe smart-memory Skill).
Thread-Sessions (:thread: im Key) sind grundsätzlich ausgenommen.

Neue Agents: Memory-System als Standard

Jeder neue Agent bekommt das Memory-System — mit einer Ausnahme:

Agent-Typ Memory-System?
Haupt-Agent (Orchestrator) ✅ Pflicht — vollständige 5-Schichten-Architektur
Persistente Sub-Agents (eigene Channels, lange Laufzeit) ✅ Pflicht — mindestens active-context.md
Reine Task-Sub-Agents (begrenzte Aufgabe, Kontext aus Prompt) ❌ Nicht nötig — Kontext kommt vom Orchestrator

Erkennungsmerkmal für "reine Task-Sub-Agents":

  • Werden für einen einzelnen, klar begrenzten Task gespawnt
  • Erhalten ihren gesamten Kontext im Task-Prompt vom Haupt-Agent
  • Haben keinen eigenen persistenten Channel
  • Schreiben ihr Ergebnis zurück an den Orchestrator (Summary via sessions_send)

Erkennungsmerkmal für "persistente Sub-Agents":

  • Haben einen eigenen Slack-/Discord-Channel
  • Werden wiederholt für ähnliche Tasks genutzt
  • Akkumulieren über Zeit domänenspezifisches Wissen

Faustregel: Wenn ein Agent Gespräche führt oder wiederholtes Wissen aufbaut → Memory. Wenn ein Agent einen einzigen Task abarbeitet und dann fertig ist → kein Memory nötig.


Tägliche Schreib-Regeln (nach Setup)

Situation Aktion
User erklärt etwas Wichtiges [OPEN]-Block in active-context.md mit vollem Kontext
Strukturelle Änderung (Channel, Projekt, Regel) → active-context.md SOFORT in derselben Antwort
Technische Erkenntnis bei Coding → CONTEXT.md SOFORT (nicht am Task-Ende)
Cross-project Lesson → memory/agents/\x3Ctyp>.md updaten
Sub-Agent Task abgeschlossen [MULTI-AGENT] → CONTEXT.md sofort + Summary an Orchestrator
Thema abgeschlossen [DONE] markieren (Cleanup entfernt Block)
MEMORY.md nähert sich 40 Zeilen → destillieren: Was ist wirklich dauerhaft relevant?
active-context.md > 100 Zeilen → Warnsignal: Einträge kürzen oder klären

Goldene Regel: Schreiben ist Teil der Aktion, nicht ein nachgelagerter Schritt. Sessions enden unvorhersehbar. Was nicht sofort geschrieben wird, ist verloren.


Warum das funktioniert

Das Fogging-Problem: In Standard-Setups gibt es nur Daily Logs (heute + gestern). Was vor 3 Tagen besprochen wurde, ist weg. Der User muss alles neu erklären.

Die Lösung: active-context.md schreibt Relevanz, nicht Zeit. Ein offenes Thema bleibt im Kontext bis es erledigt ist — egal wie lange das dauert. Nach Erledigung fliegt es raus. Kein unkontrolliertes Aufblähen, weil erledigte Themen aktiv entfernt werden.

Das Rauschen-Problem: MEMORY.md wächst über Monate auf hunderte Zeilen. Der Agent sieht alles gleichzeitig — Swift-Lektionen neben Marketing-Strategie neben Cron-IDs. Alles konkurriert um Aufmerksamkeit. Regeln werden "vergessen" weil sie im Rauschen untergehen.

Die Lösung: Jede Schicht hat einen klar begrenzten Scope. Projektdetails sind nicht im Orchestrator-Kontext — sie werden on-demand in Sub-Agent-Prompts injiziert wenn sie gebraucht werden. Kein Rauschen, keine Ablenkung.

Das Session-Crash-Problem (neu in v1.1): "Am Ende der Session schreiben" versagt wenn Sessions durch Rate-Limits oder Crashes enden. Die Lösung: Schreiben ist Teil der Aktion selbst — sofort, inline, bevor die Antwort gesendet wird. Der Heartbeat ist das Backup-Netz, nicht der Primary-Trigger.

安全使用建议
This skill appears to do what it says: reorganize agent memory into structured files and keep them trimmed. Before installing, note that it requires the agent (or user) to have filesystem write permissions in your project workspace and the ability to create scheduled cleanup tasks (cron/heartbeat). The included safe-trim.py will read and overwrite .jsonl session files and create a .bak backup — review the script and run it on copies or in a safe environment first to ensure it targets the correct paths and won't trim live sessions. Clarify how your orchestrator implements 'sessions_send' and 'Sub-Agent-Output-Channel' so summaries and backups won't be misapplied. Because the skill does not request credentials or remote downloads, the risk is low; nevertheless, verify filesystem permissions and backups before enabling automated cron/heartbeat actions.
功能分析
Type: OpenClaw Skill Name: iret77-smart-memory Version: 1.5.5 The skill implements a complex 5-layer memory management system that requires the agent to perform high-risk file system operations and shell commands. Key indicators include instructions in SKILL.md for the agent to execute shell utilities (mkdir, tail, mv) and modify its own core configuration files (AGENTS.md, MEMORY.md). Additionally, the bundle includes tools/safe-trim.py for manipulating session logs and defines automated maintenance tasks in a 'Heartbeat' loop that could be repurposed for unauthorized file access or persistence, although no clear evidence of intentional malice or data exfiltration was found.
能力评估
Purpose & Capability
The name/description (5-layer memory architecture) matches the SKILL.md and included templates/tools: instructions focus on restructuring MEMORY.md, creating memory/ folders, adding heartbeats/cron rules, and a small safe-trim.py to manage session files. Nothing required (env vars, binaries) is unrelated to the stated purpose.
Instruction Scope
Instructions legitimately direct the agent to read and write local memory files (MEMORY.md, memory/active-context.md, memory/projects/*/CONTEXT.md, AGENTS.md, HEARTBEAT.md, daily logs) and to set up scheduled cleanup tasks. A few items are underspecified (e.g., 'sessions_send(...)', 'read last Sub-Agent-Output-Channel') which assume an existing orchestrator/output-channel convention; this is not malicious but should be clarified before use. The guidance to update CONTEXT.md 'immediately in the same response' and automated trimming/backups implies the agent must have write access to the workspace and permission to create cron tasks or scheduled jobs.
Install Mechanism
No install spec or external downloads. The only code file is tools/safe-trim.py (included in the bundle). There are no remote URLs or archive extraction steps; risk from install mechanism is minimal.
Credentials
The skill declares no required environment variables, credentials, or config paths. The operations are file- and schedule-centric, so no additional secrets or cloud credentials are requested—this is proportionate to the described functionality.
Persistence & Privilege
always is false and the skill is user-invocable; it does not request permanent platform-wide privileges. It instructs the agent to write/modify local project files and set up cron/heartbeat tasks (expected for a memory-management skill) but does not modify other skills' configs or request cross-skill credentials.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install iret77-smart-memory
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /iret77-smart-memory 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.5.5
v1.5.5: Kaputte Sessions automatisch reparieren. Heartbeat Task 0a erkennt hängende Tool-Calls (role=toolResult am Ende, keine Antwort). Repariert nur wenn Datei > 5min nicht angefasst wurde — laufende Runs werden nie unterbrochen. safe-trim.py erweitert mit --check Flag.
v1.5.4
v1.5.4: Kritischer Bugfix — niemals blindes tail -60 beim Trimmen. Neues tools/safe-trim.py schneidet immer nach einer vollständigen Assistenten-Antwort. Verhindert den Produktionsfehler: Agent schweigt nach Trim weil Session mitten in Tool-Call-Block endet.
v1.5.3
v1.5.3: Templates hinzugefügt — templates/projects/example/CONTEXT.md und templates/agents/example.md. Neutral, ohne instanzspezifische Referenzen.
v1.5.2
v1.5.2: Templates hinzugefügt. templates/projects/example/CONTEXT.md und templates/agents/ (coding.md + generic.md) waren bisher referenziert aber nicht im Paket enthalten.
v1.5.1
v1.5.1: Zwei neue Regeln: (1) Vor jedem Trim/Kill muss der Agent sein Memory schreiben — gilt immer, auch manuell. (2) Neue Agents bekommen das Memory-System als Standard, außer reine Task-Sub-Agents die ihren Kontext aus dem Prompt erhalten.
v1.5.0
v1.5: Session-Lifecycle komplett überarbeitet. Script-Referenzen entfernt (kein graceful-session-end.py). Hash-Handshake-Flow als vollständiges Heartbeat-Task-Template. Thread-Sessions explizit ausgeschlossen. NO_REPLY-Mechanismus erklärt. Force-Trim Fallback dokumentiert.
v1.4.1
v1.4: Auto-Trim via Hash-Bestätigung — unsichtbarer Trim-Flow für Channel-Sessions. Hash-Handshake mit NO_REPLY, Force-Trim Fallback nach 90s Timeout. Heartbeat-Task-Template inklusive.
v1.4.0
v1.4: Hash-Bestätigung + Force-Trim Fallback. Konkreter Heartbeat-Mechanismus für unsichtbares Session-Compacting via NO_REPLY + Hash in active-context.md.
v1.3.0
v1.3: Graceful Session Termination
v1.2.0
Remove permission-bypass phrasing (content filter fix)
v1.1.0
v1.1.0: Session-safety — write immediately; Heartbeat sub-agent backup; Task-Summary protocol.
v1.0.0
5-layer memory architecture for OpenClaw agents. Solves context bloat, 48h fogging, and rule amnesia. Works for single-agent and multi-agent setups.
元数据
Slug iret77-smart-memory
版本 1.5.5
许可证 MIT-0
累计安装 2
当前安装数 2
历史版本数 12
常见问题

Smart Memory 是什么?

5-layer memory architecture for OpenClaw agents. Solves context bloat, the 48h fogging problem, and rule amnesia. Works for single-agent and multi-agent setu... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 484 次。

如何安装 Smart Memory?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install iret77-smart-memory」即可一键安装,无需额外配置。

Smart Memory 是免费的吗?

是的,Smart Memory 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Smart Memory 支持哪些平台?

Smart Memory 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Smart Memory?

由 iret77(@iret77)开发并维护,当前版本 v1.5.5。

💬 留言讨论