Packages
@anvia/memory-sqlite: Examples
Small examples for SQLite-backed Anvia memory.
Basic memory store
import { createSqliteMemoryStore } from "@anvia/memory-sqlite";
export const memory = createSqliteMemoryStore({
path: "data/anvia-memory.sqlite",
});
Test memory
const memory = createSqliteMemoryStore();
The default path is :memory:, so each store instance uses an in-memory SQLite database.
Scoped agent
const agent = new AgentBuilder("support", model)
.memory(
createSqliteMemoryStore({
path: "data/anvia-memory.sqlite",
scope: { metadataKeys: ["tenantId"] },
}),
{ savePolicy: "turn" },
)
.build();
Load initial messages
export async function loadThread(input: LoadThreadInput) {
const agent = createSupportAgent({
model: input.model,
tools: input.tools,
});
const messages = await agent
.session(input.conversationId, {
userId: input.user.id,
metadata: { tenantId: input.user.tenantId },
})
.messages();
return { messages };
}
import type { Message } from "@anvia/core";
import { initialMessagesFromMemory, useChat } from "@anvia/react";
export function ThreadPage({
conversationId,
messages,
}: {
conversationId: string;
messages: Message[];
}) {
const chat = useChat({
endpoint: `/api/conversations/${conversationId}/chat`,
initialMessages: initialMessagesFromMemory(messages),
});
return <ChatProvider controller={chat}>{/* thread */}</ChatProvider>;
}
