Packages
@anvia/memory-drizzle: Examples
Small examples for Drizzle-backed Anvia memory.
Schema export
import { drizzleMemorySchema } from "@anvia/memory-drizzle";
export const schema = {
...drizzleMemorySchema,
users,
conversations,
};
Basic memory store
import { createDrizzleMemoryStore } from "@anvia/memory-drizzle";
export const memory = createDrizzleMemoryStore(db);
Scoped agent
const agent = new AgentBuilder("support", model)
.memory(
createDrizzleMemoryStore(db, {
scope: { metadataKeys: ["tenantId"] },
}),
{ savePolicy: "turn" },
)
.build();
Load initial messages
export async function loadThread(input: LoadThreadInput) {
const agent = createSupportAgent({
db: input.db,
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>;
}
