168 lines
5.9 KiB
Markdown
168 lines
5.9 KiB
Markdown
|
|
# 🗄️ 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>
|