用途
本技能用于把 Supabase 配置为 Mem0 开源版(自托管)模式的后端,提供从项目初始化、数据库结构、索引、安全策略到备份与迁移的完整流程。适用于需要自托管记忆存储、并希望利用 Supabase 的 PostgreSQL 与 pgvector 能力的场景。
主要能力
- 启用 pgvector 扩展并校验 PostgreSQL 版本兼容性(>= 12)。
- 创建三张核心表:memories(向量存储)、memory_relationships(图记忆)、memory_history(审计轨迹)。
- 生成自定义 schema(可指定向量维度、是否包含图与历史)。
- 创建性能索引:HNSW 向量索引、用户/智能体/会话隔离索引、复合索引、图关系索引、可选全文检索索引。
- 实现行级安全(RLS):用户隔离、多租户组织隔离、智能体专属策略。
- 配置连接池(PgBouncer,事务模式/会话模式)。
- 备份策略:时间点恢复、手动 SQL 导出、增量备份、选择性备份与恢复。
- 从 Mem0 平台导出并迁移到自托管 Supabase,含回滚方案。
- 验证与性能基准测试。
使用方式
按阶段执行脚本:
- 校验 Supabase 初始化:
bash scripts/verify-supabase-setup.sh,未初始化则运行/supabase:init。 - 配置环境变量:
SUPABASE_URL、SUPABASE_ANON_KEY、SUPABASE_SERVICE_KEY、SUPABASE_DB_URL,可选MEM0_EMBEDDING_MODEL、MEM0_VECTOR_DIMENSION。 - 启用 pgvector:
bash scripts/setup-mem0-pgvector.sh。 - 应用记忆表结构:
bash scripts/apply-mem0-schema.sh,或用bash scripts/generate-mem0-schema.sh --dimensions 1536 --include-graph true --include-history true > custom-mem0-schema.sql生成自定义 schema 后通过psql应用。 - 创建索引:
bash scripts/create-mem0-indexes.sh。 - 应用 RLS:
bash scripts/apply-mem0-rls.sh,并用bash scripts/test-mem0-rls.sh --user-id "test-user-123"测试。 - 配置连接池:
bash scripts/configure-connection-pool.sh。 - 配置备份:
bash scripts/setup-mem0-backup.sh --schedule daily --retention 30。 - 迁移(如需要):
bash scripts/export-from-platform.sh --api-key "..." --output platform-export.json,再运行bash scripts/migrate-platform-to-oss.sh --input platform-export.json --supabase-url $SUPABASE_URL --dry-run验证后正式迁移。 - 验证:
bash scripts/validate-mem0-setup.sh,性能测试:bash scripts/benchmark-mem0-performance.sh。
配置模板包括基础版、向量+图全功能版、企业多租户版(templates/mem0-basic-config.py、templates/mem0-graph-config.py、templates/mem0-enterprise-config.py)。
适用场景
- SaaS 应用的用户级记忆隔离。
- 团队/组织的多租户共享记忆。
- 跨用户共享的智能体知识库。
- 基于会话的临时对话上下文。
- 从 Mem0 平台迁移到自托管。
限制与注意事项
- 需要 PostgreSQL 版本 >= 12 才能使用 pgvector。
- 服务密钥不得暴露给客户端;连接字符串应使用环境变量。
- 大数据集(> 1M)建议调整 HNSW 参数或改用 IVFFlat。
- 连接池耗尽时需使用事务池端口 6543 或增大池大小。
- 备份与时间点恢复能力依赖 Supabase 套餐(Pro 及以上)。
- 具体收费、价格、平台支持范围等资料未提供。