107 lines
8.3 KiB
Markdown
107 lines
8.3 KiB
Markdown
|
|
---
|
||
|
|
created: 2026-07-02
|
||
|
|
updated: 2026-07-02
|
||
|
|
sources:
|
||
|
|
- other/2026-07-02_agent-memory-taxonomy-seven-types.md
|
||
|
|
tags: [concept, agents, memory, taxonomy, plur1bus, letta, cognee, graphiti, voyager, llama-index, unsloth, reme]
|
||
|
|
---
|
||
|
|
|
||
|
|
# Agent Memory Taxonomy — The Seven Kinds
|
||
|
|
|
||
|
|
> *"Do not try to build all seven. Most agents need working memory plus one or two others chosen by the job."*
|
||
|
|
> — r/WebAfterAI
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
A structured taxonomy of seven distinct agent memory types, each mapped to a representative open-source repository. The taxonomy distinguishes memory by **function** (what kind of knowledge it stores) and **time** (short-term vs. long-term), not by implementation.
|
||
|
|
|
||
|
|
The core guidance: **pick by workflow, not by taxonomy.** Most agents need working memory (unavoidable) plus one or two others.
|
||
|
|
|
||
|
|
## The Seven Memory Types
|
||
|
|
|
||
|
|
| # | Type | What It Stores | Representative Repo | License | Verified Recipe |
|
||
|
|
|---|------|---------------|---------------------|---------|-----------------|
|
||
|
|
| 1 | **In-context (working)** | Current context window — "RAM" | [letta-ai/letta](https://github.com/letta-ai/letta) (MemGPT) | Apache-2.0 | — |
|
||
|
|
| 2 | **Semantic** | Durable facts + relationships | [topoteretes/cognee](https://github.com/topoteretes/cognee) | OSS | — |
|
||
|
|
| 3 | **Episodic** | Dated events, "what happened when" | [getzep/graphiti](https://github.com/getzep/graphiti) | OSS | `graphiti-temporal-graph-memory` |
|
||
|
|
| 4 | **Procedural** | Learned skills, reusable how-to | [MineDojo/Voyager](https://github.com/MineDojo/Voyager) | MIT | `voyager-skill-library-pattern` |
|
||
|
|
| 5 | **External / Retrieval** | Knowledge pulled in on demand (RAG) | [run-llama/llama_index](https://github.com/run-llama/llama_index) | MIT | — |
|
||
|
|
| 6 | **Parametric** | Knowledge baked into model weights | [unslothai/unsloth](https://github.com/unslothai/unsloth) | Apache-2.0 core | `unsloth-parametric-finetune-config` |
|
||
|
|
| 7 | **Prospective** | Future intentions, reminders, schedules | [agentscope-ai/ReMe](https://github.com/agentscope-ai/ReMe) | OSS | `reme-prospective-schedule` |
|
||
|
|
|
||
|
|
**Companion:** [NirDiamant/Agent_Memory_Techniques](https://github.com/NirDiamant/Agent_Memory_Techniques) — all seven types in runnable code.
|
||
|
|
|
||
|
|
### Design Catches (from the post)
|
||
|
|
|
||
|
|
- **Episodic (graphiti):** Temporal knowledge graph is heavy infrastructure. Overkill for simple apps; reach for it when the timeline truly matters.
|
||
|
|
- **Procedural (Voyager):** Research project in Minecraft — concept demo, not a drop-in library. Saved skills can be over-fit or subtly wrong; needs review before trust.
|
||
|
|
- **Parametric (unsloth):** Expensive to write, static once written. Updating means retraining. Risks catastrophic forgetting. Use for stable, always-needed knowledge only.
|
||
|
|
- **Prospective (ReMe):** Least standardized of the seven. Most implementations are just cron + a stored list of intentions, not a distinct memory engine.
|
||
|
|
|
||
|
|
### Selection Guide (from the post)
|
||
|
|
|
||
|
|
| Workflow | Memory Types Needed |
|
||
|
|
|----------|-------------------|
|
||
|
|
| Knowledge is big and changeable | Working + Retrieval |
|
||
|
|
| Long-lived personal assistant | Working + Semantic + Episodic |
|
||
|
|
| Agent should learn repeatable tasks | Working + Procedural |
|
||
|
|
| Knowledge stable enough to train in | Working + Parametric |
|
||
|
|
| Agent needs scheduled actions | Working + Prospective |
|
||
|
|
|
||
|
|
## What the Post Does NOT Mention: Consolidation & Forgetting
|
||
|
|
|
||
|
|
The taxonomy covers seven *types* of memory but is silent on **memory management** — the processes that distinguish a memory system from a dump:
|
||
|
|
|
||
|
|
- **Consolidation:** Merging related memories, promoting important ones, compressing episodic sequences into semantic facts
|
||
|
|
- **Forgetting / Decay:** Weighted relevance scores that degrade over time (Ebbinghaus curve), GC of stale or low-value memories
|
||
|
|
- **Emotional Tiers / Priority Flags:** Different retention rules for emotionally significant or explicitly flagged (`neverForget`) memories
|
||
|
|
- **Merging with Thresholds:** Combining near-duplicate memories when similarity exceeds a threshold
|
||
|
|
|
||
|
|
These are **not an 8th memory type** — they are the management layer that makes any of the seven types useful over time. Without consolidation and forgetting, memory grows unbounded and signal-to-noise degrades.
|
||
|
|
|
||
|
|
## plur1bus Einordnung
|
||
|
|
|
||
|
|
plur1bus (Hector's memory system via PLUR1BUS plugin) covers several of the seven types, with different maturity levels:
|
||
|
|
|
||
|
|
| Memory Type | plur1bus Coverage | Implementation |
|
||
|
|
|------------|-------------------|----------------|
|
||
|
|
| **Semantic** | ✅ Strong | Vector search over LanceDB. Entity-memories, facts, preferences, decisions. Like cognee but without a knowledge graph — pure vectors + full-text instead of graph triples. |
|
||
|
|
| **Episodic** | ✅ Strong | Conversation memories with timestamps. Daily notes. `autoCapture` stores every turn automatically. Episodic chains via temporal metadata. |
|
||
|
|
| **External / Retrieval** | ✅ Strong | LanceDB as external searchable vector store. `autoRecall` injects matching memories into context at inference time. |
|
||
|
|
| **Procedural** | ⚠️ Partial | `skillMiner` extracts skills from conversations, but it's more experiment than core function. Skill Workshop is the manual path. |
|
||
|
|
| **In-context / Working** | ⚠️ Indirect | OpenClaw's context window + LCM (Lossless Context Management) handles this. plur1bus feeds into it via `autoRecall`. Not plur1bus's own function. |
|
||
|
|
| **Prospective** | ❌ Not plur1bus | OpenClaw Cron handles scheduled tasks and reminders. Not a memory-system responsibility. |
|
||
|
|
| **Parametric** | ❌ Out of scope | Would require model fine-tuning. Not a memory-system function. |
|
||
|
|
|
||
|
|
### plur1bus's Key Differentiator: Consolidation & Forgetting
|
||
|
|
|
||
|
|
The post's taxonomy has a blind spot: **none of the seven repos implement memory management**. plur1bus does:
|
||
|
|
|
||
|
|
- **GC with Decay:** Relevance scores degrade over time (Ebbinghaus-curve inspired). Low-value memories are garbage-collected.
|
||
|
|
- **Merging with Threshold:** Near-duplicate memories are merged when similarity exceeds a threshold, preventing memory bloat.
|
||
|
|
- **`neverForget` Flags:** Explicitly marked memories are exempt from decay/GC — user-defined permanent retention.
|
||
|
|
- **Emotion Tiers:** Memories tagged with emotional significance get different retention rules — a biologically-inspired priority system.
|
||
|
|
- **autoCapture:** Every conversation turn is automatically captured as episodic memory — no manual ingestion needed.
|
||
|
|
- **autoRecall:** Relevant memories are automatically injected into the context window at inference time — the retrieval layer is built-in.
|
||
|
|
|
||
|
|
This is what distinguishes plur1bus from a "memory dump": it actively manages the lifecycle of memories. The seven repos each handle one *type* of storage, but none handles the full lifecycle.
|
||
|
|
|
||
|
|
### Architecture Cross-Reference
|
||
|
|
|
||
|
|
- **plur1bus vs. letta (MemGPT):** Both handle memory beyond the context window, but letta focuses on paging (in-context → external), while plur1bus focuses on lifecycle management (capture → consolidate → decay → forget).
|
||
|
|
- **plur1bus vs. cognee:** Both do semantic memory, but cognee uses knowledge graphs (triples), while plur1bus uses pure vector + full-text search. Trade-off: graph gives relationship queries, vectors give simpler scaling.
|
||
|
|
- **plur1bus vs. graphiti:** Both do episodic memory with temporal awareness. graphiti needs a graph database; plur1bus uses timestamps + vector search — lighter infrastructure.
|
||
|
|
- **plur1bus vs. Voyager:** Both have a "skill" concept, but Voyager saves executable code; plur1bus's skillMiner extracts procedural knowledge from conversation. Different maturity: Voyager is a proven research demo; plur1bus's skillMiner is experimental.
|
||
|
|
|
||
|
|
## Related Pages
|
||
|
|
|
||
|
|
- [[plur1bus-memory-model.md]] — Detailed plur1bus memory model (5 components: LanceDB, episodic links, emotional states, Ebbinghaus curve, active forgetting)
|
||
|
|
- [[../../architecture/memory-system.md]] — Hector's layered memory architecture (S1 flat-file, S2 OpenClaw built-in, S3 LanceDB removed)
|
||
|
|
- [[subconscious-agent.md]] — Hector's background process for ideation
|
||
|
|
- [[ai-agents-2026.md]] — Agent trends 2026
|
||
|
|
- [[../llm/llm-knowledge-base.md]] — The RamaDama Wiki as an alternative to RAG (Karpathy pattern)
|
||
|
|
|
||
|
|
## Source
|
||
|
|
|
||
|
|
- [Reddit r/WebAfterAI post](https://www.reddit.com/r/WebAfterAI/comments/1ukr9fb/the_seven_kinds_of_agent_memory_each_mapped_to_an/)
|
||
|
|
- Raw file: [other/2026-07-02_agent-memory-taxonomy-seven-types.md](../../../raw/other/2026-07-02_agent-memory-taxonomy-seven-types.md)
|