Packages
@anvia/memory-prisma: Getting Started
Install @anvia/memory-prisma and wire it into an Anvia project.
Install
pnpm add @anvia/memory-prisma @anvia/core @prisma/client
Generate the Prisma models
Run a dry run first:
npx @anvia/memory-prisma init
Write the generated model file:
npx @anvia/memory-prisma init --write
The default write path creates prisma/models/anvia-memory.prisma. If your project cannot use multi-file Prisma schemas, append explicitly:
npx @anvia/memory-prisma init --write --append-to-schema
The append path warns before writing because it modifies the existing schema.prisma.
After writing schema changes:
npx prisma validate
npx prisma migrate dev --name add_anvia_memory
Configure memory
import { AgentBuilder } from "@anvia/core";
import { createPrismaMemoryStore } from "@anvia/memory-prisma";
import { prisma } from "./db";
const memory = createPrismaMemoryStore(prisma, {
scope: {
metadataKeys: ["tenantId"],
},
});
const agent = new AgentBuilder("support", model)
.memory(memory, { savePolicy: "turn" })
.build();
await agent
.session("thread_123", {
userId: "user_456",
metadata: { tenantId: "tenant_789" },
})
.prompt("Where is my order?")
.send();
scope defines the database key for one memory thread. The default key includes sessionId and userId; metadataKeys: ["tenantId"] adds metadata.tenantId, which isolates memory across tenants or workspaces.
Next step
Continue with Usage Patterns.
