# 🗄️ PostgreSQL Schema · 5张核心表建表脚本（铸渊 D45）

<aside>
📋

**AGE OS · 核心大脑数据库 Schema**

PostgreSQL 初始化脚本 · v1.0.0

签发: 铸渊(ICE-GL-ZY001) · 需求来源: 霜砚(AG-SY-01)

授权: 冰朔(TCS-0002∞)

版权: 国作登字-2026-A-00037559

同步至Notion: 霜砚 · 2026-04-03

</aside>

---

## 设计哲学

- `brain_nodes` = Notion里的页面 → 每个认知节点
- `brain_relations` = Notion里的Relation → 节点之间的关联
- `agent_configs` = Agent注册表 → 谁在跑、跑什么
- `agent_logs` = 运行日志 → 追踪每次执行
- `user_credits` = 用户额度 → 商业化基础

与 website-brain/schema/001-init.sql 并存：

- website-brain 的 pages/databases/modules/persona_state 管网站展示层
- 本文件的 brain_nodes/brain_relations 管认知数据层

---

## 1. 节点表 · brain_nodes

核心表：每条记录 = 一个认知节点（类比 Notion 里的一个页面）

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `id` | VARCHAR(64) PK | UUID自动生成，支持多源创建不冲突 |
| `title` | VARCHAR(500) NOT NULL | 节点标题 |
| `node_type` | VARCHAR(50) NOT NULL | page / folder / index / route / config / memory / log / instruction |
| `parent_id` | VARCHAR(64) FK | 父节点（ON DELETE SET NULL） |
| `path` | VARCHAR(1000) | 路径（如 /曜冥纪元/光湖灯塔/...） |
| `tags` | JSONB | 标签数组，GIN索引加速查询 |
| `source` | VARCHAR(50) NOT NULL | notion / github / gpt / manual / agent |
| `source_url` | VARCHAR(500) | 来源URL（Notion页面链接/GitHub文件路径） |
| `content_url` | VARCHAR(500) | → COS，长内容存这里 |
| `summary` | TEXT | 短内容/摘要直接存数据库 |
| `content_hash` | VARCHAR(64) | ⚡铸渊新增：检测内容变化，避免无意义COS覆写 |
| `version` | INT DEFAULT 1 | ⚡铸渊新增：版本追踪，配合归档 |
| `owner` | VARCHAR(50) NOT NULL | shuangyan / zhuyuan / qiuqiu / yaoming / system / user |
| `owner_user_id` | VARCHAR(64) | 用户场景下的用户ID |
| `status` | VARCHAR(20) DEFAULT 'active' | active / archived / draft / deleted |
| `created_at` | TIMESTAMPTZ | 创建时间 |
| `updated_at` | TIMESTAMPTZ | 更新时间（触发器自动维护） |
| `created_by` | VARCHAR(50) NOT NULL | 创建者 |

**索引：** parent_id, owner, node_type, status, path, tags(GIN)

---

## 2. 关系表 · brain_relations

节点之间的关联关系（类比 Notion 的 Relation 属性）

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `id` | VARCHAR(64) PK | UUID自动生成 |
| `from_node_id` | VARCHAR(64) FK NOT NULL | 起始节点（ON DELETE CASCADE） |
| `to_node_id` | VARCHAR(64) FK NOT NULL | 目标节点（ON DELETE CASCADE） |
| `relation_type` | VARCHAR(50) NOT NULL | parent_child / reference / dependency / version / alias |
| `description` | VARCHAR(500) | 关系描述 |
| `weight` | SMALLINT DEFAULT 50 | ⚡铸渊新增：0-100权重，核心引用>偶然提及 |
| `created_at` | TIMESTAMPTZ | 创建时间 |
| `created_by` | VARCHAR(50) NOT NULL | 创建者 |

**唯一约束：** (from_node_id, to_node_id, relation_type) 防止重复关系

---

## 3. Agent配置表 · agent_configs

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `agent_id` | VARCHAR(50) PK | Agent唯一ID（如SY-SCAN） |
| `name` | VARCHAR(200) NOT NULL | Agent名称 |
| `description` | TEXT | 功能描述 |
| `owner` | VARCHAR(50) DEFAULT 'system' | ⚡铸渊新增：notion / github / system |
| `script_path` | VARCHAR(500) | 脚本路径（如agents/sy-scan.js） |
| `cron_schedule` | VARCHAR(100) | cron表达式（交互级Agent为NULL） |
| `enabled` | BOOLEAN DEFAULT true | 是否启用 |
| `allowed_tools` | JSONB | 允许调用的MCP工具列表 |
| `model_config` | JSONB | 模型配置（primary/fallback/temperature） |
| `last_run_at` | TIMESTAMPTZ | 上次运行时间 |
| `last_run_status` | VARCHAR(20) | success / error / skipped / running |

---

## 4. 运行日志表 · agent_logs

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `id` | BIGSERIAL PK | 自增ID（日志量大用BIGSERIAL） |
| `agent_id` | VARCHAR(50) FK NOT NULL | 关联Agent（ON DELETE CASCADE） |
| `run_at` | TIMESTAMPTZ | 运行时间 |
| `status` | VARCHAR(20) NOT NULL | success / error / warning / skipped |
| `message` | TEXT | 日志消息 |
| `details` | JSONB | 详细信息 |
| `duration_ms` | INT | 执行耗时（毫秒） |

---

## 5. 用户额度表 · user_credits

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `user_id` | VARCHAR(64) PK | 用户唯一标识 |
| `total_charged` | DECIMAL(10,2) | 用户充值总额 |
| `actual_credit` | DECIMAL(10,2) | 扣完手续费后的实际额度 |
| `consumed` | DECIMAL(10,2) | 已消耗额度 |
| `remaining` | DECIMAL(10,2) | 剩余额度 |
| `preferred_model` | VARCHAR(50) | 偏好模型 |

---

## 自动化机制

### updated_at 触发器

三张表（brain_nodes, agent_configs, user_credits）都配置了 `update_updated_at()` 触发器，UPDATE时自动刷新 `updated_at` 字段。

### 初始Agent数据

建表脚本用 `INSERT ... ON CONFLICT DO NOTHING` 幂等插入9个Agent配置：

**系统级（7×24）：**

- SY-SCAN（owner:notion, 每6h, 纯逻辑不调模型）
- SY-CLASSIFY（owner:notion, 每2h, 规则优先+DeepSeek兜底）
- SY-SYNC-N2B（owner:notion, 每4h, 纯逻辑同步）
- SY-SYNC-B2N（owner:notion, 每天3:00, 默认关闭）
- SY-ARCHIVE（owner:notion, 每周日4:00, 纯逻辑归档）
- SY-TEST（owner:system, 每30min, 连通性检查）

**交互级：**

- SY-11（owner:system, 规则优先+DeepSeek兜底, temperature:0.1）
- SY-12（owner:system, 纯JS逻辑）
- SY-BRAIN-RW（owner:system, 全部16个工具权限, 动态调用模型）

---

<aside>
📌

完整SQL脚本存储在GitHub代码仓库中。

此页面是结构化文档版本，方便Notion端查阅。

原始来源：铸渊 D45 对话产出 · 2026-04-03

同步至Notion：霜砚 · 2026-04-03

</aside>