20 lines
1.0 KiB
SQL
20 lines
1.0 KiB
SQL
|
|
-- Agent Memory plugin initial migration: creates agent_memories table with pgvector
|
||
|
|
CREATE TABLE IF NOT EXISTS agent_memories (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
tenant_id UUID NOT NULL,
|
||
|
|
agent_id UUID NOT NULL,
|
||
|
|
memory_type VARCHAR(50) NOT NULL DEFAULT 'fact',
|
||
|
|
content TEXT NOT NULL,
|
||
|
|
embedding vector(768),
|
||
|
|
owner_id UUID REFERENCES users(id) ON DELETE SET NULL,
|
||
|
|
deleted_at TIMESTAMPTZ,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS ix_agent_memories_tenant_agent ON agent_memories(tenant_id, agent_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS ix_agent_memories_tenant_type ON agent_memories(tenant_id, memory_type);
|
||
|
|
CREATE INDEX IF NOT EXISTS ix_agent_memories_agent_id ON agent_memories(agent_id);
|
||
|
|
|
||
|
|
-- HNSW index for fast vector similarity search on agent_memories.embedding
|
||
|
|
CREATE INDEX IF NOT EXISTS ix_agent_memories_embedding_hnsw ON agent_memories USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 200);
|