Package Exports
- @agentskit/memory
Readme
@agentskit/memory
Persistent and vector memory backends for AgentsKit.
Install
npm install @agentskit/memoryThen install the backend(s) you need:
npm install better-sqlite3 # for sqliteChatMemory
npm install vectra # for fileVectorMemory (default, pure JS)
npm install redis # for redisChatMemory / redisVectorMemoryBackends
| Factory | Contract | Underlying lib | Native? |
|---|---|---|---|
sqliteChatMemory({ path }) |
ChatMemory | better-sqlite3 | Yes |
redisChatMemory({ url }) |
ChatMemory | redis | No |
redisVectorMemory({ url }) |
VectorMemory | redis + RediSearch | No |
fileVectorMemory({ path }) |
VectorMemory | vectra | No (pure JS) |
Quick example
import { sqliteChatMemory, fileVectorMemory } from '@agentskit/memory'
// Chat persistence
const chatMemory = sqliteChatMemory({ path: './chat.db' })
// Vector search
const vectorMemory = fileVectorMemory({ path: './vectors' })
await vectorMemory.store([{
id: 'doc-1',
content: 'AgentsKit is awesome',
embedding: [0.1, 0.2, 0.3, ...],
}])
const results = await vectorMemory.search([0.1, 0.2, 0.3, ...], { topK: 5 })Custom vector store
Bring your own vector backend (LanceDB, usearch, Pinecone, etc.):
import type { VectorStore } from '@agentskit/memory'
const myStore: VectorStore = {
async upsert(docs) { /* your logic */ },
async query(vector, topK) { /* your logic */ },
async delete(ids) { /* your logic */ },
}
const memory = fileVectorMemory({ path: './vectors', store: myStore })