一、核心实体
CREATE SCHEMA core;– 租户表(企业 / 团队)CREATE TABLE core.tenants ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL, plan TEXT DEFAULT 'free', config JSONB DEFAULT '{}', created_at TIMESTAMPTZ DEFAULT NOW());– Agent 注册表CREATE TABLE core.agents ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id UUID NOT NULL REFERENCES core.tenants(id), name TEXT NOT NULL, role TEXT NOT NULL, — planner / researcher / coder / reviewer capabilities TEXT[], — 能力标签 config JSONB DEFAULT '{}', created_at TIMESTAMPTZ DEFAULT NOW());– 项目表CREATE TABLE core.projects ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id UUID NOT NULL REFERENCES core.tenants(id), name TEXT NOT NULL, description TEXT, status TEXT DEFAULT 'active', created_at TIMESTAMPTZ DEFAULT NOW());– 项目成员(Agent 参与项目)CREATE TABLE core.project_members ( project_id UUID REFERENCES core.projects(id), agent_id UUID REFERENCES core.agents(id), role TEXT DEFAULT 'member', — owner / member / readonly joined_at TIMESTAMPTZ DEFAULT NOW(), PRIMARY KEY (project_id, agent_id));
二、共享记忆表
— 项目级共享记忆CREATE TABLE memory.shared_records ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id UUID NOT NULL, project_id UUID NOT NULL, author_agent_id UUID NOT NULL, — 记忆创建者 content TEXT NOT NULL, embedding vector(1024), record_type TEXT DEFAULT 'finding', — finding / decision / context / artifact visibility TEXT DEFAULT 'project', — project / team / private metadata JSONB DEFAULT '{}', created_at TIMESTAMPTZ DEFAULT NOW());– RLS:同项目的 Agent 可以互相访问记忆ALTER TABLE memory.shared_records ENABLE ROW LEVEL SECURITY;CREATE POLICY project_access ON memory.shared_records USING ( project_id IN ( SELECT project_id FROM core.project_members WHERE agent_id = current_setting('app.agent_id')::uuid ) );
三、记忆共享(Agent A 的发现 → Agent B 可检索)
— Researcher Agent 写入调研结论SET app.agent_id = 'researcher-001';INSERT INTO memory.shared_records (tenant_id, project_id, author_agent_id, content, embedding, record_type)VALUES ( :tenant_id, :project_id, 'researcher-001', '竞品 PolarDB 的向量检索性能在 100 万级数据下 QPS 约 2000', tencentdb_ai.get_embedding('bge-m3', '竞品 PolarDB 向量检索性能'), 'finding');– Planner Agent 检索 Researcher 的发现SET app.agent_id = 'planner-001';SELECT content, author_agent_id, created_atFROM memory.shared_recordsWHERE project_id = :project_idORDER BY embedding <=> tencentdb_ai.get_embedding('bge-m3', '竞品性能数据')LIMIT 5;
四、任务委派与结果回传
— 任务表CREATE TABLE core.tasks ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), project_id UUID NOT NULL, assigner_id UUID NOT NULL, — 分配者 assignee_id UUID NOT NULL, — 执行者 title TEXT NOT NULL, description TEXT, status TEXT DEFAULT 'pending', — pending / in_progress / completed / failed result TEXT, created_at TIMESTAMPTZ DEFAULT NOW(), completed_at TIMESTAMPTZ);– Planner 分配任务给 ResearcherINSERT INTO core.tasks (project_id, assigner_id, assignee_id, title, description)VALUES (:project_id, 'planner-001', 'researcher-001', '调研 DiskANN 索引性能', '对比 HNSW 和 DiskANN 在 1000 万向量下的性能');– Researcher 完成后更新UPDATE core.tasksSET status = 'completed', result = 'DiskANN 在 1000 万向量下 QPS 提升 40%,内存节省 60%', completed_at = NOW()WHERE id = :task_id;
五、决策记录
— 记录团队决策INSERT INTO memory.shared_records (tenant_id, project_id, author_agent_id, content, record_type, metadata)VALUES ( :tenant_id, :project_id, 'planner-001', '决定采用 pgvectorscale DiskANN 作为向量索引方案', 'decision', '{"reason": "性能更优,内存更省", "alternatives": ["HNSW", "IVFFlat"]}');
六、三级可见性
| 级别 | 说明 | RLS 策略 |
| private | 仅创建者可见 | author_agent_id = current_agent |
| project | 项目成员可见 | 同项目的所有 Agent |
| team | 租户内所有 Agent 可见 | 同 tenant_id |
七、读写分离
— readonly 成员只能读取,不能写入CREATE POLICY readonly_member ON memory.shared_records FOR INSERT WITH CHECK ( EXISTS ( SELECT 1 FROM core.project_members WHERE project_id = memory.shared_records.project_id AND agent_id = current_setting('app.agent_id')::uuid AND role IN ('owner', 'member') ) );
八、审计与追溯
开启云数据库 PostgreSQL 的 数据库审计功能,所有记忆操作(写入 / 检索)自动记录审计日志,支持回溯。
九、实践
1. 按项目隔离:不同业务线的 Agent 团队使用不同 project。
2. 定期压缩:使用大模型对旧记忆进行总结压缩。
3. 标记决策:重要决策使用 decision 类型,方便后续追溯。
4. 权限最小化:只给 Agent 必要的 project 访问权限。
十、相关文档
·Agent 长期记忆功能概述。
·基于 OpenClaw 构建 AI Agent 应用。
·pgvector 向量扩展使用指南。