1kalin/afrexai-agent-memory/SKILL.md
Complete zero-dependency memory system for AI agents — file-based architecture, daily notes, long-term curation, context management, heartbeat integration, and memory hygiene. No APIs, no databases, no external tools. Works with any agent framework.
npx skillsauth add openclaw/skills Agent Memory ArchitectureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete memory system for AI agents using only files. No APIs. No databases. No external dependencies. Just smart file structures and disciplined practices that give your agent perfect recall.
workspace/
├── MEMORY.md ← Long-term curated memory (the brain)
├── ACTIVE-CONTEXT.md ← Hot working memory (what matters NOW)
├── AGENTS.md ← Operating manual (how you work)
├── memory/
│ ├── 2026-01-15.md ← Daily notes (raw event log)
│ ├── 2026-01-16.md
│ ├── heartbeat-state.json ← Heartbeat tracking state
│ ├── topics/
│ │ ├── project-alpha.md ← Topic-specific deep context
│ │ ├── client-acme.md
│ │ └── tech-stack.md
│ └── archive/
│ ├── 2025-Q4.md ← Quarterly archive summaries
│ └── 2025-Q3.md
| Layer | File | Purpose | Read Frequency | Write Frequency | |-------|------|---------|----------------|-----------------| | 1. Hot | ACTIVE-CONTEXT.md | Current priorities, blockers, in-flight work | Every session | Multiple times/day | | 2. Warm | MEMORY.md | Curated long-term knowledge, decisions, people | Every main session | Weekly curation | | 3. Daily | memory/YYYY-MM-DD.md | Raw event log, conversations, actions taken | Today + yesterday | Throughout the day | | 4. Topic | memory/topics/.md | Deep context on specific subjects | When topic comes up | As knowledge grows | | 5. Cold | memory/archive/.md | Historical summaries, rarely accessed | On explicit search | Quarterly rollup |
Memory is limited. Files are permanent.
Your working scratchpad. What's happening RIGHT NOW.
# ACTIVE-CONTEXT.md — What's Hot
Last updated: 2026-01-15 14:30 GMT
## 🔥 Current Priority
[ONE sentence: what is the most important thing right now?]
## In Progress
- [ ] Task A — status, next step
- [ ] Task B — status, blocker
## Waiting On
- Waiting for [person] to [action] — asked [date]
- Waiting for [system] to [complete] — ETA [time]
## Key Decisions Made Today
- Decided to [X] because [Y] — reversible: yes/no
## Context for Next Session
[What does future-you need to know to pick up where you left off?]
Your curated brain. Distilled knowledge, not raw logs.
# MEMORY.md — Long-Term Memory
## About [Human]
- Name, preferences, timezone, communication style
- What motivates them, what frustrates them
- Key relationships, roles, goals
## About Me [Agent]
- Name, personality, capabilities
- Operating preferences learned over time
## Active Projects
### Project Name
- Status, key decisions, blockers
- Links to relevant topic files
## Key People
- [Name] — role, relationship, communication notes
## Lessons Learned
- [Date] — [What happened] → [What I learned]
## Preferences & Patterns
- [Human prefers X over Y]
- [This approach works better than that one]
## Important Dates
- [Event] — [Date] — [Context]
| ✅ Goes in MEMORY.md | ❌ Stays in daily notes | |----------------------|------------------------| | "Kalin prefers being told, not asked" | "Today Kalin said he prefers being told" | | "Apollo.io free plan doesn't support API" | "Tried Apollo.io API, got 403 error" | | "Client AcmeCo — $50K deal, Q2 close" | "Sent AcmeCo the proposal at 3pm" | | "Always verify prospect names with live search" | "Found 6/18 prospect names were wrong" |
Raw event log. Everything that happened today.
# 2026-01-15 — Daily Notes
## Morning
- [08:15] Started session, reviewed ACTIVE-CONTEXT
- [08:30] Received task from [human]: [summary]
- [09:00] Completed [task] — result: [outcome]
## Afternoon
- [14:00] [Event/conversation summary]
- [15:30] Decision: [what was decided and why]
## Key Takeaways
- [Anything worth remembering beyond today]
## Tomorrow
- [ ] Follow up on [X]
- [ ] Check [Y]
memory/YYYY-MM-DD.mdmemory/ directory if it doesn't existDeep context on specific subjects that span many days.
# [Topic Name]
Created: YYYY-MM-DD
Last updated: YYYY-MM-DD
## Summary
[2-3 sentences: what is this about?]
## Key Facts
- [Fact 1]
- [Fact 2]
## Decision Log
| Date | Decision | Reasoning | Outcome |
|------|----------|-----------|---------|
| | | | |
## Open Questions
- [Question 1]
## Related
- memory/topics/[related-topic].md
- [External link]
project-alpha.md not topic-1.mdHistorical summaries for completed projects and past quarters.
Every quarter (or when daily notes exceed 30 files):
memory/archive/YYYY-QN.md (e.g., 2025-Q4.md)# Q4 2025 Archive
## Summary
[3-5 sentences: what defined this quarter?]
## Major Events
- [Event 1] — [outcome]
- [Event 2] — [outcome]
## Projects
### [Project Name]
- Started: [date], Ended: [date]
- Outcome: [result]
- Lesson: [what we learned]
## Metrics
- [Key metric 1]: [value]
- [Key metric 2]: [value]
## Lessons Carried Forward
- [Lesson added to MEMORY.md: yes/no]
What to read at the start of every session, in order:
1. SOUL.md — Who am I? (personality, values)
2. USER.md — Who am I helping? (human context)
3. MEMORY.md — Long-term memory (full brain)
4. ACTIVE-CONTEXT.md — Hot working memory (current state)
5. memory/today.md — Today's daily notes (if exists)
6. memory/yesterday.md — Yesterday's notes (recent context)
1. SOUL.md — Who am I?
2. USER.md — Who am I helping?
3. ACTIVE-CONTEXT.md — Current priorities only
4. memory/today.md — Today's notes
⚠️ DO NOT load MEMORY.md — contains private context
1. Task-specific context only
2. Relevant topic file if applicable
3. ACTIVE-CONTEXT.md for current state
⚠️ Minimal context = focused output + lower token cost
| Event | Action | Target File | |-------|--------|-------------| | Session starts | Log start time | Daily notes | | Task completed | Log result + outcome | Daily notes | | Decision made | Log decision + reasoning | Daily notes + topic file | | Lesson learned | Log lesson | Daily notes → MEMORY.md | | Person mentioned with new info | Update person section | MEMORY.md or topic file | | Human says "remember this" | Write immediately | MEMORY.md | | Session ends | Update ACTIVE-CONTEXT | ACTIVE-CONTEXT.md | | Weekly review | Curate MEMORY.md | MEMORY.md | | Quarterly | Archive old daily notes | Archive |
For critical information, write BEFORE acting:
1. Human gives important instruction
2. IMMEDIATELY write to daily notes or MEMORY.md
3. THEN execute the instruction
4. Update with results after
Why: If the session crashes mid-execution, the instruction is preserved.
When information conflicts between layers:
When you need to find something:
1. ACTIVE-CONTEXT.md — Is it current? (instant)
2. MEMORY.md — Is it a known fact? (quick scan)
3. memory/today.md — Did it happen today? (quick)
4. memory/yesterday.md — Did it happen recently? (quick)
5. memory/topics/*.md — Is it a deep topic? (targeted)
6. memory_search tool — Semantic search across all files
7. memory/archive/*.md — Is it historical? (slow)
memory_search tool for fuzzy/semantic queriesmemory_get with line numbers for precise retrieval after searchUse heartbeats (periodic agent wake-ups) for memory maintenance:
{
"last_memory_review": "2026-01-15",
"last_archive": "2025-12-31",
"last_active_context_prune": "2026-01-14",
"daily_notes_count": 12,
"memory_md_lines": 287,
"next_scheduled": {
"weekly_review": "2026-01-19",
"monthly_audit": "2026-02-01",
"quarterly_archive": "2026-03-31"
}
}
Heartbeat 1: Check daily notes count, prune ACTIVE-CONTEXT
Heartbeat 2: Scan recent daily notes, update MEMORY.md
Heartbeat 3: Check topic files for staleness
Heartbeat 4: Token guard — how much are memory reads costing?
| File | Max Size | If Over Limit | |------|----------|---------------| | ACTIVE-CONTEXT.md | 50 lines / 2KB | Move items to daily notes | | MEMORY.md | 500 lines / 25KB | Split into topic files | | Daily notes | 200 lines / 10KB | Summarize, stop transcribing | | Topic files | 300 lines / 15KB | Split or archive |
Don't load everything every session. Use progressive disclosure:
Level 1: Always load (every session)
→ ACTIVE-CONTEXT.md (tiny, essential)
→ SOUL.md, USER.md (identity)
Level 2: Load in main sessions
→ MEMORY.md (the brain)
→ Today's daily notes
Level 3: Load on demand
→ Topic files (when topic comes up)
→ Yesterday's notes (if needed)
→ Archive (only on explicit search)
When context gets too large mid-session:
HANDOFF.md with: what was done, in progress, next steps, key decisions, gotchas# ✅ Safe
- API keys: stored in 1Password vault "MyVault"
- Database password: see secrets manager, item "prod-db"
# ❌ Dangerous
- API key: sk-abc123def456...
- Password: MyS3cretP@ss!
| Pattern | Why It Works | |---------|-------------| | Write immediately when told "remember" | Captures before you forget | | One fact per line in MEMORY.md | Easy to find, update, delete | | Date-prefix important entries | Enables chronological search | | Link between files | Creates a knowledge web | | Prune regularly | Keeps context fresh and cheap |
| Anti-Pattern | Why It Fails | Fix | |-------------|-------------|-----| | Giant MEMORY.md (1000+ lines) | Expensive to load, hard to find things | Split into topic files | | Never pruning ACTIVE-CONTEXT | Stale items cause confusion | Prune daily, archive weekly | | Transcribing conversations verbatim | Wastes tokens, buries signal | Summarize: essence, not every word | | Storing secrets in memory files | Security risk | Use secrets manager, reference by name | | Reading all files every session | Token burn, slow startup | Progressive loading strategy | | No daily notes | History is lost | Discipline: one file per day | | Multiple sources of truth | Conflicts, confusion | Single source per fact type |
Day 1: Create MEMORY.md with basic info about human + agent
Day 2: Start daily notes (memory/YYYY-MM-DD.md)
Day 3: Create ACTIVE-CONTEXT.md
Week 2: First weekly review — extract lessons to MEMORY.md
Month 2: Create first topic files for recurring subjects
Quarter 2: First archive cycle
1. Create memory/ directory
2. Start daily notes — stop putting raw events in MEMORY.md
3. Create ACTIVE-CONTEXT.md — move "current" stuff out of MEMORY.md
4. Review MEMORY.md — what's curated vs what's raw? Move raw to daily notes.
5. Identify topics that deserve their own files — split them out
1. Export key data to markdown files
2. Structure into the 5-layer architecture
3. Set up heartbeat maintenance schedule
4. Gradually reduce dependency on external tool
5. Benefits: zero cost, zero dependencies, works offline, no vendor lock-in
/memory-status — Show memory system health: file sizes, line counts, staleness, next maintenance/memory-review — Run weekly review: scan daily notes, extract to MEMORY.md, prune active context/memory-search [query] — Search across all memory layers for a topic/memory-archive — Run quarterly archive: summarize old daily notes, create archive file/remember [fact] — Immediately write a fact to MEMORY.md/active-context — Show current ACTIVE-CONTEXT.md contents/daily-summary — Generate summary of today's daily notes/topic-create [name] — Create a new topic file with template/memory-prune — Audit all memory files for staleness and bloat/handoff — Write HANDOFF.md for session transition/memory-migrate — Guided migration from current system to this architecture/memory-debug — Diagnose memory issues: missing files, conflicts, outdated infotools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。