Memory that
manages itself

Conversation context + knowledge retrieval. Auto-trimming, persistence, and vector search. Zero dependencies.

4KB
gzip
0
dependencies
2
layers
GitHub Try it โ†“
$ npm i agentic-memory copy

Try it live

Send messages and watch auto-trimming in action. Set max to 500 tokens, then flood it.

0
Tokens
0
Messages
0
Turns
โ€”
Summary

Simple by design

Manages the messages array so you don't have to.

Basic usage
import { createMemory } from 'agentic-memory' const mem = createMemory({ maxTokens: 8000, systemPrompt: 'You are a helpful assistant.', }) await mem.user('What is quantum computing?') await mem.assistant('Quantum computing uses qubits...') mem.messages() // โ†’ ready for any LLM API
With agentic-core
import { ask } from 'agentic-core' import { createMemory } from 'agentic-memory' const mem = createMemory({ maxTokens: 8000 }) async function chat(prompt) { await mem.user(prompt) const result = await ask(prompt, { history: mem.history(), // โ† multi-turn context apiKey: '...', }) await mem.assistant(result.answer) return result.answer } await chat('Explain CRISPR') await chat('How does it compare to older methods?') // has context!
Persistence
// Browser createMemory({ storage: 'localStorage:my-chat' }) // Node.js createMemory({ storage: 'file:./chats/session.json' }) // Custom adapter createMemory({ storage: { save(d) { ... }, load() { ... }, clear() { ... } } })

Everything you need

๐Ÿ”„ Auto-trimming

Sliding window drops oldest pairs. Or summarize mode compresses old context. You choose.

๐Ÿ“Š Token estimation

CJK-aware token counter. No tiktoken dependency (40MB). ~90% accurate, good enough for budget management.

๐Ÿ’พ Persistence

localStorage, file, or custom adapter. Conversations survive page reloads and server restarts.

๐Ÿ”€ Fork

Branch a conversation to explore different paths. Like git branch for chat context.

๐Ÿ“ค Export / Import

Serialize full state to JSON. Move conversations between clients, backup, or analyze.

๐Ÿ—๏ธ Multi-conversation

createManager() handles multiple chats. Get by ID, list, delete. Each with its own storage.