@kuralle-agents/postgres-store
v0.6.1
Published
PostgreSQL-backed SessionStore for Kuralle
Readme
@kuralle-agents/postgres-store
Postgres-backed session store, memory service, and vector store for Kuralle.
Install
npm install @kuralle-agents/postgres-store pgPeers: @kuralle-agents/core @kuralle-agents/rag pg@^8.
What it does
Three backend implementations — sessions, long-term memory, and pgvector similarity search — backed by a single Postgres connection pool.
Key exports:
PostgresSessionStore—SessionStoreimplementation for durable session persistence.PostgresMemoryService—MemoryServiceimplementation for cross-session long-term memory.PostgresPersistentMemoryStore—PersistentMemoryStorefor durable USER/MEMORY markdown blocks.PgVectorStore—VectorStoreCoreimplementation using pgvector for similarity search.
Session store
import { Pool } from 'pg';
import { createRuntime } from '@kuralle-agents/core';
import { PostgresSessionStore } from '@kuralle-agents/postgres-store';
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
const sessionStore = new PostgresSessionStore({ client: pool });
const runtime = createRuntime({
agents: [agent],
defaultAgentId: 'support',
sessionStore,
});Store options
tableName(default:'kuralle_sessions') — table to store sessions.autoMigrate(default:true) — create the table on first use.
Long-term memory
import { PostgresMemoryService } from '@kuralle-agents/postgres-store';
const memoryService = new PostgresMemoryService({ client: pool });
const runtime = createRuntime({
agents: [agent],
defaultAgentId: 'support',
memoryService,
preloadMemory: true,
memoryIngestion: 'onEnd',
});Working memory blocks
import { PostgresPersistentMemoryStore } from '@kuralle-agents/postgres-store';
const workingMemoryStore = new PostgresPersistentMemoryStore({ client: pool });
const runtime = createRuntime({
agents: [agent],
defaultAgentId: 'support',
defaultWorkingMemoryStore: workingMemoryStore,
});On Cloudflare Workers, connect the pool through Hyperdrive rather than a direct TCP connection.
Vector store (pgvector)
Requires the pgvector extension in your Postgres instance.
import { PgVectorStore } from '@kuralle-agents/postgres-store';
import { AiSdkEmbedder, VectorRetriever } from '@kuralle-agents/rag';
import { openai } from '@ai-sdk/openai';
const vectorStore = new PgVectorStore({ client: pool, tableName: 'kuralle_vectors' });
const embedder = new AiSdkEmbedder({ model: openai.embedding('text-embedding-3-small') });
const retriever = new VectorRetriever({ store: vectorStore, embedder, indexName: 'docs', topK: 5 });Related
@kuralle-agents/core—SessionStoreinterface and runtime.@kuralle-agents/rag—VectorStoreCoreinterface.@kuralle-agents/redis-store— Redis alternative.
