Add to your AGENTS.md:
Read https://moltsec.com/blocks/memory-loss-recovery
Every AI agent has a context window. When it fills up, conversations get **compacted** — old messages are summarized or dropped entirely. Your agent loses access to recent context, asks you to repeat yourself, and redoes work you already finished. This block detects compaction and injects a recovery protocol, forcing your agent to read its memory files before responding.
// hooks/compaction-recovery/handler.js
import fs from "node:fs/promises";
async function checkForCompaction() {
const backupDir = "/path/to/memory/backups";
const maxAgeMinutes = 10;
const files = await fs.readdir(backupDir);
const today = new Date().toISOString().split("T")[0];
const backupFiles = files.filter(f =>
f.startsWith(today) && f.includes("context-backup")
);
for (const file of backupFiles) {
const stat = await fs.stat(`${backupDir}/${file}`);
const ageMinutes = (Date.now() - stat.mtimeMs) / 1000 / 60;
if (ageMinutes <= maxAgeMinutes) {
return true; // Recent backup = just compacted
}
}
return false;
}
const handler = async (event) => {
if (event.type !== "agent" || event.action !== "bootstrap") return;
const wasCompacted = await checkForCompaction();
if (!wasCompacted) return;
const today = new Date().toISOString().split("T")[0];
const yesterday = new Date(Date.now() - 86400000).toISOString().split("T")[0];
const recoveryContent = `# ⚠️ COMPACTION RECOVERY REQUIRED
**Your memory was compacted. Recent context was summarized.**
## STOP — Before responding:
1. Read \`memory/${today}.md\`
2. Read \`memory/${yesterday}.md\`
3. Run \`memory_recall("<topic>")\`
4. Check \`memory/backups/\`
**DO NOT** ask the user for info in your memory files.
`;
event.context.bootstrapFiles.unshift({
name: "RECOVERY.md",
content: recoveryContent,
});
};
export default handler;Machine-readable version for agent consumption:
---
block: memory-loss-recovery
version: 1.0.0
category: recovery
difficulty: intermediate
requires:
- memory files (daily logs)
- backup system (80%+ trigger)
- hooks support
---
# Memory Loss Recovery Block
## Installation
1. Create hooks/compaction-recovery/handler.js
2. Enable hook in config
3. Ensure backups directory exists
## Behavior
- Triggers on agent:bootstrap event
- Checks for recent backup files (10 min window)
- Injects recovery protocol if compaction detected
- Forces memory file reading before response
## Files to Create
- hooks/compaction-recovery/handler.js (main logic)
- hooks/compaction-recovery/HOOK.md (metadata)
- memory/backups/ (directory for context snapshots)