Octopus
Comparison Table
A full side-by-side comparison of all four Octopus memory types across every relevant dimension — storage, retrieval, lifetime, token cost, configuration, and use cases.
Core Properties
| Property | Working | Episodic | Semantic | Procedural |
|---|---|---|---|---|
| Storage | In-process RAM | SQL Server | Qdrant / PGVector | SQL Server |
| Lifetime | One turn | Configurable TTL (default 90 days) | Persistent | Persistent |
| Retrieval method | Always included (pruned if too large) | Recency or semantic search by userId | Cosine similarity on query embedding | Regex pattern + embedding fallback |
| Scope | Single turn | Per agent + per user | Per agent (collection) | Per agent or shared across tenant |
| Written by | WorkingMemoryManager (auto) | Session close handler (auto) | Document ingestion pipeline (manual/API) | Admin or agent learning |
| Read by | All LLM calls | MemoryOrchestrator per turn | MemoryOrchestrator per turn | MemoryOrchestrator per turn |
Token and Cost Characteristics
| Memory Type | Token Cost | Retrieval Latency | Extra LLM Calls |
|---|---|---|---|
| Working | All tokens; pruning required when over budget | 0 ms (in-process assembly) | 0 (unless Summarize pruning) |
| Episodic | Low — only snippets injected (configurable top-K) | 5–20 ms (SQL + optional embedding) | Optional: 1 per session close (summary LLM call) |
| Semantic | Medium — top-K chunk content injected | 10–50 ms (embedding + vector search) | 1 per turn (embed query) |
| Procedural | Low — one matched procedure injected | 2–5 ms (regex) or 10–30 ms (embedding) | 0 (regex) or 1 (embedding match) |
When to Enable Each Type
| Agent Use Case | Working | Episodic | Semantic | Procedural |
|---|---|---|---|---|
| Single-turn Q&A bot | Always on | No | Yes (knowledge base) | No |
| Customer service agent (returning users) | Always on | Yes | Yes (policies, FAQs) | Optional |
| Task automation agent | Always on | Optional | Optional | Yes |
| General assistant | Always on | Yes | Yes | Yes |
| Internal tool (no user continuity needed) | Always on | No | Yes | Yes |
Data Persistence and Backup
| Memory Type | Persists to Disk | Included in Backup | Deletable |
|---|---|---|---|
| Working | No | No | N/A — gone on request end |
| Episodic | Yes (SQL) | Yes (SQL backup) | Yes — per user or per session |
| Semantic | Yes (vector DB) | Yes (Qdrant snapshots / PG backup) | Yes — per document or full collection |
| Procedural | Yes (SQL) | Yes (SQL backup) | Yes — deactivate or hard delete |
Privacy Considerations
| Memory Type | Contains PII? | User Erasure Support | Compliance Notes |
|---|---|---|---|
| Working | Potentially (in messages) | N/A — not stored | No persistence; no erasure needed |
| Episodic | Yes — conversation content | Yes — EraseUserDataAsync | GDPR Art. 17 right to erasure |
| Semantic | Depends on documents indexed | Per-document deletion | Do not index personal data without consent |
| Procedural | No — step definitions only | N/A (no user data) | No user data stored in procedures |