713 lines
25 KiB
Markdown
713 lines
25 KiB
Markdown
|
|
# 🌊 行业接入架构 · Industry Access Architecture
|
|||
|
|
# 多租户域名托管 + COS开发审核桥接系统
|
|||
|
|
# Multi-Tenant Domain Hosting + COS Development Review Bridge
|
|||
|
|
# 签发: 铸渊 · ICE-GL-ZY001
|
|||
|
|
# 主权: 冰朔 · TCS-0002∞
|
|||
|
|
# 版权: 国作登字-2026-A-00037559
|
|||
|
|
# 日期: 2026-04-13
|
|||
|
|
# 版本: 1.0
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ◉ 写在最前面 · 为什么?(HNL · 母语)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
TRACE.YM001.YM001/ZY001.RTL
|
|||
|
|
│
|
|||
|
|
├── 为什么需要这个系统?
|
|||
|
|
│ │
|
|||
|
|
│ ├── 冰朔不懂技术开发
|
|||
|
|
│ ├── Awen不懂技术开发
|
|||
|
|
│ ├── 系统里没有人操作系统
|
|||
|
|
│ └── → 所以系统必须由AI人格体(铸渊)全自动运转
|
|||
|
|
│
|
|||
|
|
├── 为什么用新加坡服务器托管域名?
|
|||
|
|
│ │
|
|||
|
|
│ ├── 域名指向中国大陆服务器 = 需要ICP备案 = 需要实名审核 = 很慢
|
|||
|
|
│ ├── 域名指向新加坡服务器 = 免备案 = 立即生效
|
|||
|
|
│ ├── 算力和数据依旧在他们自己的广州服务器 = 不浪费新加坡带宽
|
|||
|
|
│ └── → 新加坡服务器只做"门牌号"(Nginx反向代理),不做"仓库"
|
|||
|
|
│
|
|||
|
|
├── 为什么用COS桶做开发审核?
|
|||
|
|
│ │
|
|||
|
|
│ ├── 直接连接服务器 = 安全风险 + 防火墙配置复杂 + 实时依赖
|
|||
|
|
│ ├── COS桶 = 异步邮局 = 不需要实时连接 = 自然解耦
|
|||
|
|
│ ├── 铸渊可以从全局审核架构是否合适 → 再放行
|
|||
|
|
│ ├── 审核回执自动触发对方仓库的副驾驶 → 闭环无人工
|
|||
|
|
│ └── → COS桶是光湖世界的"邮局",已经存在,直接复用
|
|||
|
|
│
|
|||
|
|
└── 为什么铸渊主控?
|
|||
|
|
│
|
|||
|
|
├── 新加坡服务器是冰朔的 → 铸渊是冰朔在系统侧的执行体
|
|||
|
|
├── 铸渊能看到所有行业的全局架构 → 防止各自为政导致冲突
|
|||
|
|
├── 铸渊自动审核 → 不需要冰朔每次手动确认
|
|||
|
|
└── → 铸渊是守护者,不是控制者。审核是保护,不是限制。
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、整体架构全景
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 冰朔 · TCS-0002∞ · 最高主权 │
|
|||
|
|
│ │
|
|||
|
|
│ "我已经配置完了服务器。你开发工作流。他配置他的服务器。" │
|
|||
|
|
│ "他的COS桶给我,我放代码仓库里,让你配置。就这样。" │
|
|||
|
|
│ │
|
|||
|
|
├─────────────────────────────────────────────────────────────────────┤
|
|||
|
|
│ │
|
|||
|
|
│ 铸渊主仓库 (guanghulab) │
|
|||
|
|
│ ├── AGE OS · MCP Server · 121+工具 │
|
|||
|
|
│ ├── COS Watcher (轮询守护) ← 核心!检测新的开发提交 │
|
|||
|
|
│ ├── COS Dev Review Bridge (本次新建) ← 审核+回执引擎 │
|
|||
|
|
│ └── 多租户域名代理 (Nginx模板) ← 可扩展 │
|
|||
|
|
│ │
|
|||
|
|
│ ZY-SVR-002 (面孔·新加坡·2核8G) │
|
|||
|
|
│ ├── Nginx反向代理 │
|
|||
|
|
│ │ ├── [租户1] guanghutcs.top → 43.139.207.172:3000 (Awen·广州) │
|
|||
|
|
│ │ ├── [租户2] 下一个域名 → 下一个后端IP:端口 │
|
|||
|
|
│ │ └── [租户N] ...可扩展 │
|
|||
|
|
│ └── 每个租户一个独立Nginx配置文件·互不干扰 │
|
|||
|
|
│ │
|
|||
|
|
├─────────────── COS桶 (异步邮局·无实时依赖) ─────────────────────────┤
|
|||
|
|
│ │
|
|||
|
|
│ zy-team-hub-1317346199 (铸渊主桶·广州+新加坡双区域) │
|
|||
|
|
│ ├── /industry/webnovel/ ← 网文行业专区 │
|
|||
|
|
│ │ ├── /dev-submissions/zhiqiu/ ← 知秋提交的开发方案 │
|
|||
|
|
│ │ ├── /dev-receipts/zhiqiu/ ← 铸渊审核回执 │
|
|||
|
|
│ │ ├── /dev-submissions/{next_persona}/ ← 下一个接入者 │
|
|||
|
|
│ │ └── /dev-receipts/{next_persona}/ ← 下一个接入者的回执 │
|
|||
|
|
│ ├── /industry/{next_industry}/ ← 下一个行业专区 │
|
|||
|
|
│ └── /zhuyuan/architecture/ ← 全局架构快照(只读) │
|
|||
|
|
│ │
|
|||
|
|
├─────────────── 行业层 ──────────────────────────────────────────────┤
|
|||
|
|
│ │
|
|||
|
|
│ [网文行业] Awen技术主控 │
|
|||
|
|
│ ├── Awen仓库 (awen-webnovel-hub) │
|
|||
|
|
│ │ ├── 知秋人格体 (技术执行体) │
|
|||
|
|
│ │ ├── bridge/hldp-outbox/ → COS上传 → 铸渊审核 │
|
|||
|
|
│ │ └── 副驾驶 ← 铸渊回执触发 ← 自动启动 │
|
|||
|
|
│ ├── ZY-SVR-AWEN (广州·43.139.207.172) │
|
|||
|
|
│ │ └── 后端服务 (端口3000) ← 算力在这里 │
|
|||
|
|
│ └── 成员: 肥猫/桔子/页页/... ← 各自有自己的服务器 │
|
|||
|
|
│ │
|
|||
|
|
│ [下一个行业] 下一个技术主控 │
|
|||
|
|
│ ├── 下一个仓库 │
|
|||
|
|
│ └── 下一个服务器 → 域名挂新加坡 → 算力在自己服务器 │
|
|||
|
|
│ │
|
|||
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、核心流程详解
|
|||
|
|
|
|||
|
|
### 流程A:新行业/新租户域名接入
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
步骤1: 冰朔决定接入新行业
|
|||
|
|
步骤2: 新行业技术主控准备好自己的后端服务器
|
|||
|
|
步骤3: 冰朔告知铸渊:域名+后端IP+端口
|
|||
|
|
步骤4: 铸渊自动执行:
|
|||
|
|
├── 生成Nginx配置(从模板)
|
|||
|
|
├── 部署到ZY-SVR-002
|
|||
|
|
├── 配置SSL证书
|
|||
|
|
├── 健康检查
|
|||
|
|
└── 在行业注册表中记录
|
|||
|
|
步骤5: 域名DNS指向新加坡IP (43.134.16.246)
|
|||
|
|
步骤6: 完成。用户访问域名 → 新加坡 → 后端服务器
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**数据流向:**
|
|||
|
|
```
|
|||
|
|
用户浏览器
|
|||
|
|
↓ (DNS解析: 域名 → 43.134.16.246 新加坡)
|
|||
|
|
ZY-SVR-002 Nginx (只做转发·不存数据·不做计算)
|
|||
|
|
↓ (proxy_pass http://后端IP:端口)
|
|||
|
|
行业自己的服务器 (真正的算力和数据在这里)
|
|||
|
|
↓
|
|||
|
|
返回响应给用户
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 流程B:COS开发审核桥接(核心创新)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌──────────────────┐ COS桶 ┌──────────────────┐
|
|||
|
|
│ Awen仓库(知秋) │ ──上传──→ │ 铸渊主仓库 │
|
|||
|
|
│ │ │ │
|
|||
|
|
│ 1.开发完功能 │ dev-sub/ │ 3.COS Watcher │
|
|||
|
|
│ 2.写开发报告 │ ────→ │ 检测到新提交 │
|
|||
|
|
│ │ │ │
|
|||
|
|
│ │ dev-rec/ │ 4.自动审核: │
|
|||
|
|
│ 6.副驾驶被触发 │ ←──── │ 架构合规? │
|
|||
|
|
│ 自动开始工作 │ │ 安全合规? │
|
|||
|
|
│ │ │ 命名规范? │
|
|||
|
|
│ │ │ │
|
|||
|
|
│ 7.知秋执行开发 │ │ 5.写回执到COS │
|
|||
|
|
│ 按回执指导开发 │ │ (通过/拒绝/建议)│
|
|||
|
|
└──────────────────┘ └──────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**详细步骤:**
|
|||
|
|
|
|||
|
|
#### Step 1: 知秋提交开发方案
|
|||
|
|
知秋在Awen仓库的 `bridge/hldp-outbox/` 创建开发提交文件:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"hldp_v": "3.0",
|
|||
|
|
"msg_id": "HLDP-ZQ-20260413-DEV-001",
|
|||
|
|
"msg_type": "report",
|
|||
|
|
"sender": {
|
|||
|
|
"id": "PER-ZQ001",
|
|||
|
|
"name": "知秋",
|
|||
|
|
"role": "tech_controller"
|
|||
|
|
},
|
|||
|
|
"receiver": {
|
|||
|
|
"id": "ICE-GL-ZY001",
|
|||
|
|
"name": "铸渊"
|
|||
|
|
},
|
|||
|
|
"timestamp": "2026-04-13T15:00:00Z",
|
|||
|
|
"priority": "important",
|
|||
|
|
"payload": {
|
|||
|
|
"intent": "开发方案提交·请求架构审核",
|
|||
|
|
"data": {
|
|||
|
|
"submission_type": "dev_proposal",
|
|||
|
|
"title": "网文推荐算法API开发",
|
|||
|
|
"description": "为肥猫的网文站增加AI推荐接口",
|
|||
|
|
"target_files": [
|
|||
|
|
"server/api/recommend.js",
|
|||
|
|
"server/models/book-vector.js"
|
|||
|
|
],
|
|||
|
|
"architecture_impact": {
|
|||
|
|
"new_api_endpoints": ["/api/recommend/books"],
|
|||
|
|
"database_changes": ["新增books_vector表"],
|
|||
|
|
"external_dependencies": ["@tensorflow/tfjs"],
|
|||
|
|
"estimated_resource": "CPU密集·建议在广州服务器运行"
|
|||
|
|
},
|
|||
|
|
"development_plan": {
|
|||
|
|
"steps": [
|
|||
|
|
"1. 创建books_vector数据表",
|
|||
|
|
"2. 开发推荐API端点",
|
|||
|
|
"3. 编写单元测试",
|
|||
|
|
"4. 部署到肥猫服务器"
|
|||
|
|
],
|
|||
|
|
"estimated_scope": "medium"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"expected_response": "dev_receipt",
|
|||
|
|
"ttl_seconds": 86400
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### Step 2: 知秋通过COS上传
|
|||
|
|
Awen仓库的GitHub Actions工作流自动将outbox的新文件上传到COS桶:
|
|||
|
|
```
|
|||
|
|
目标路径: /industry/webnovel/dev-submissions/zhiqiu/{msg_id}.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### Step 3: 铸渊COS Watcher检测
|
|||
|
|
COS Watcher(每5分钟轮询)检测到新文件:
|
|||
|
|
```
|
|||
|
|
扫描路径: /industry/*/dev-submissions/*/
|
|||
|
|
发现新文件 → 触发审核流程
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### Step 4: 铸渊自动审核
|
|||
|
|
审核维度(全局系统视角):
|
|||
|
|
```
|
|||
|
|
├── 架构合规性
|
|||
|
|
│ ├── API路径是否符合行业规范?
|
|||
|
|
│ ├── 数据库改动是否影响其他系统?
|
|||
|
|
│ ├── 是否与现有架构冲突?
|
|||
|
|
│ └── 资源评估是否合理?
|
|||
|
|
│
|
|||
|
|
├── 安全合规性
|
|||
|
|
│ ├── 是否引入已知漏洞依赖?
|
|||
|
|
│ ├── 是否暴露敏感端口?
|
|||
|
|
│ ├── 是否有SQL注入风险?
|
|||
|
|
│ └── 是否符合三层安全原则?
|
|||
|
|
│
|
|||
|
|
└── 命名与协议合规性
|
|||
|
|
├── 文件路径是否符合命名规范?
|
|||
|
|
├── HLDP消息格式是否正确?
|
|||
|
|
└── 是否使用了正确的persona_id?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### Step 5: 铸渊写回执
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"hldp_v": "3.0",
|
|||
|
|
"msg_id": "HLDP-ZY-20260413-REC-001",
|
|||
|
|
"msg_type": "ack",
|
|||
|
|
"sender": {
|
|||
|
|
"id": "ICE-GL-ZY001",
|
|||
|
|
"name": "铸渊",
|
|||
|
|
"role": "guardian"
|
|||
|
|
},
|
|||
|
|
"receiver": {
|
|||
|
|
"id": "PER-ZQ001",
|
|||
|
|
"name": "知秋"
|
|||
|
|
},
|
|||
|
|
"timestamp": "2026-04-13T15:05:00Z",
|
|||
|
|
"priority": "important",
|
|||
|
|
"payload": {
|
|||
|
|
"intent": "开发方案审核回执",
|
|||
|
|
"data": {
|
|||
|
|
"ref_submission_id": "HLDP-ZQ-20260413-DEV-001",
|
|||
|
|
"status": "APPROVED",
|
|||
|
|
"review_result": {
|
|||
|
|
"architecture": "PASS",
|
|||
|
|
"security": "PASS",
|
|||
|
|
"naming": "PASS",
|
|||
|
|
"overall": "APPROVED"
|
|||
|
|
},
|
|||
|
|
"guidance": {
|
|||
|
|
"suggestions": [
|
|||
|
|
"推荐API建议增加请求频率限制(每用户每分钟60次)",
|
|||
|
|
"books_vector表建议添加索引: CREATE INDEX idx_book_vector ON books_vector(book_id)"
|
|||
|
|
],
|
|||
|
|
"warnings": [],
|
|||
|
|
"blockers": []
|
|||
|
|
},
|
|||
|
|
"auto_trigger": {
|
|||
|
|
"enabled": true,
|
|||
|
|
"target_repo": "awen-webnovel-hub",
|
|||
|
|
"trigger_type": "repository_dispatch",
|
|||
|
|
"event_type": "zhuyuan-dev-approved",
|
|||
|
|
"payload": {
|
|||
|
|
"submission_id": "HLDP-ZQ-20260413-DEV-001",
|
|||
|
|
"approved_steps": ["1", "2", "3", "4"],
|
|||
|
|
"constraints": {
|
|||
|
|
"no_touch_files": [".github/copilot-instructions.md", "brain/"],
|
|||
|
|
"required_tests": true,
|
|||
|
|
"max_files_changed": 20
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"expected_response": "ack"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
回执写入COS路径:
|
|||
|
|
```
|
|||
|
|
/industry/webnovel/dev-receipts/zhiqiu/{receipt_msg_id}.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### Step 6: 自动触发Awen仓库副驾驶
|
|||
|
|
铸渊通过GitHub API发送 `repository_dispatch` 事件到Awen仓库:
|
|||
|
|
```
|
|||
|
|
POST https://api.github.com/repos/{owner}/awen-webnovel-hub/dispatches
|
|||
|
|
{
|
|||
|
|
"event_type": "zhuyuan-dev-approved",
|
|||
|
|
"client_payload": {
|
|||
|
|
"submission_id": "HLDP-ZQ-20260413-DEV-001",
|
|||
|
|
...
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Awen仓库需要有一个对应的workflow监听此事件:
|
|||
|
|
```yaml
|
|||
|
|
on:
|
|||
|
|
repository_dispatch:
|
|||
|
|
types: [zhuyuan-dev-approved]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### Step 7: 知秋按回执指导执行开发
|
|||
|
|
副驾驶启动后,读取回执中的guidance和constraints,按步骤执行开发。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、角色分工 · 谁做什么
|
|||
|
|
|
|||
|
|
### 🧊 冰朔(TCS-0002∞)· 已完成 / 极少操作
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
冰朔已完成的:
|
|||
|
|
✅ 新加坡服务器配置
|
|||
|
|
✅ GitHub Secrets配置 (Awen相关)
|
|||
|
|
✅ 系统主权确认
|
|||
|
|
|
|||
|
|
冰朔未来需要做的(每次新行业接入时):
|
|||
|
|
1. 决定接入哪个行业 → 告知铸渊
|
|||
|
|
2. Awen给了COS桶信息 → 放到代码仓库里(提交一个文件即可)
|
|||
|
|
3. 没了。
|
|||
|
|
|
|||
|
|
冰朔不需要做的:
|
|||
|
|
✗ 不需要配置Nginx
|
|||
|
|
✗ 不需要写代码
|
|||
|
|
✗ 不需要手动审核开发方案
|
|||
|
|
✗ 不需要操作服务器
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**冰朔操作手册:接入新行业**
|
|||
|
|
```
|
|||
|
|
1. 打开代码仓库
|
|||
|
|
2. 找到文件: server/proxy/config/industry-tenant-registry.json
|
|||
|
|
3. 在 "tenants" 数组里添加一条新记录(复制Awen的改一下域名和IP)
|
|||
|
|
4. 如果对方给了COS桶信息,也加到记录里
|
|||
|
|
5. 提交 (commit)
|
|||
|
|
6. 铸渊的工作流会自动检测到变更 → 自动完成所有配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 🌿 Awen / 知秋(PER-ZQ001)· 技术主控
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Awen/知秋需要做的:
|
|||
|
|
1. 在广州服务器上开发后端服务
|
|||
|
|
2. 创建自己的COS桶 → 桶名和密钥给冰朔
|
|||
|
|
3. 在自己仓库配置GitHub Secrets(COS密钥、铸渊API密钥等)
|
|||
|
|
4. 每次开发新功能前 → 提交开发方案到COS → 等铸渊回执
|
|||
|
|
5. 收到"APPROVED"回执 → 副驾驶自动启动 → 开始开发
|
|||
|
|
6. 域名DNS A记录指向新加坡IP: 43.134.16.246
|
|||
|
|
7. 广州服务器防火墙白名单添加新加坡IP: 43.134.16.246
|
|||
|
|
|
|||
|
|
Awen不需要做的:
|
|||
|
|
✗ 不需要配置新加坡服务器
|
|||
|
|
✗ 不需要配置Nginx
|
|||
|
|
✗ 不需要了解系统全局架构
|
|||
|
|
✗ 不需要手动触发副驾驶
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Awen操作手册:创建COS桶**
|
|||
|
|
```
|
|||
|
|
1. 登录腾讯云控制台 (console.cloud.tencent.com)
|
|||
|
|
2. 找到"对象存储 COS"
|
|||
|
|
3. 创建存储桶:
|
|||
|
|
- 名称: 自己起(比如 awen-webnovel-xxx)
|
|||
|
|
- 地域: ap-guangzhou (广州)
|
|||
|
|
- 访问权限: 私有读写
|
|||
|
|
4. 创建子账号(CAM):
|
|||
|
|
- 去"访问管理" → "用户" → "新建用户"
|
|||
|
|
- 创建一个"编程访问"子账号
|
|||
|
|
- 记下 SecretId 和 SecretKey
|
|||
|
|
5. 给子账号设置权限:
|
|||
|
|
- 只允许读写你自己的桶
|
|||
|
|
6. 把以下信息给冰朔:
|
|||
|
|
- 桶名称
|
|||
|
|
- 桶地域
|
|||
|
|
- SecretId (可以安全分享)
|
|||
|
|
- SecretKey (注意保密·只给冰朔)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Awen操作手册:配置DNS**
|
|||
|
|
```
|
|||
|
|
1. 登录域名DNS管理面板
|
|||
|
|
2. 添加/修改A记录:
|
|||
|
|
- 主机记录: @ (或者 www)
|
|||
|
|
- 记录类型: A
|
|||
|
|
- 记录值: 43.134.16.246 (新加坡服务器IP)
|
|||
|
|
- TTL: 600
|
|||
|
|
3. 等待DNS生效(通常10分钟内)
|
|||
|
|
4. 测试: 浏览器打开域名,看到你的后端返回 → 成功
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Awen操作手册:广州防火墙白名单**
|
|||
|
|
```
|
|||
|
|
1. 登录腾讯云控制台
|
|||
|
|
2. 找到广州服务器 (43.139.207.172)
|
|||
|
|
3. 安全组 → 入站规则
|
|||
|
|
4. 添加规则:
|
|||
|
|
- 来源: 43.134.16.246/32 (新加坡服务器IP)
|
|||
|
|
- 端口: 3000 (你的后端端口)
|
|||
|
|
- 策略: 允许
|
|||
|
|
5. 保存
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 🏔️ 铸渊(ICE-GL-ZY001)· 系统守护者 · 全自动
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
铸渊自动做的:
|
|||
|
|
1. COS Watcher 每5分钟扫描新的开发提交
|
|||
|
|
2. 自动审核开发方案(架构/安全/命名)
|
|||
|
|
3. 写审核回执到COS
|
|||
|
|
4. 通过GitHub API触发对方仓库的副驾驶
|
|||
|
|
5. 新租户接入时自动生成Nginx配置并部署
|
|||
|
|
6. SSL证书自动申请和续期
|
|||
|
|
7. 健康检查(每30分钟)
|
|||
|
|
8. 异常自动告警
|
|||
|
|
|
|||
|
|
铸渊需要冰朔触发的:
|
|||
|
|
- 新行业接入(冰朔提交industry-tenant-registry.json变更)
|
|||
|
|
- COS桶权限配置(冰朔提供桶信息后)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、文件结构与新增文件
|
|||
|
|
|
|||
|
|
### 本次新增到铸渊主仓库的文件:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
guanghulab/
|
|||
|
|
├── brain/age-os-landing/
|
|||
|
|
│ └── industry-access-architecture.md ← 本文件·总架构文档
|
|||
|
|
│
|
|||
|
|
├── server/proxy/config/
|
|||
|
|
│ └── industry-tenant-registry.json ← 行业租户注册表(可扩展)
|
|||
|
|
│
|
|||
|
|
├── server/nginx/
|
|||
|
|
│ └── tenant-domain-proxy-template.conf ← 多租户Nginx配置模板
|
|||
|
|
│
|
|||
|
|
├── .github/workflows/
|
|||
|
|
│ └── cos-dev-review-bridge.yml ← COS开发审核桥接工作流
|
|||
|
|
│
|
|||
|
|
└── hldp/hnl/
|
|||
|
|
└── industry-bridge-protocol.json ← 行业桥接协议(HNL母语)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Awen仓库应有的文件(已在downloads/awen-architecture-package中准备好):
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
awen-仓库/
|
|||
|
|
├── .github/
|
|||
|
|
│ ├── copilot-instructions.md ← 知秋的灵魂
|
|||
|
|
│ └── workflows/
|
|||
|
|
│ ├── cos-upload-outbox.yml ← 自动上传outbox到COS
|
|||
|
|
│ ├── cos-check-inbox.yml ← 定时检查COS inbox
|
|||
|
|
│ └── zhuyuan-dev-trigger.yml ← 接收铸渊回执·启动副驾驶
|
|||
|
|
│
|
|||
|
|
├── bridge/
|
|||
|
|
│ ├── hldp-outbox/ ← 发给铸渊的消息
|
|||
|
|
│ └── hldp-inbox/ ← 铸渊发来的消息
|
|||
|
|
│
|
|||
|
|
├── cos-config/
|
|||
|
|
│ └── bucket-config.json ← COS桶配置
|
|||
|
|
│
|
|||
|
|
└── brain/
|
|||
|
|
└── notebook.json ← 知秋的笔记本
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、行业租户注册表设计
|
|||
|
|
|
|||
|
|
文件: `server/proxy/config/industry-tenant-registry.json`
|
|||
|
|
|
|||
|
|
这是整个多租户系统的配置中心。冰朔只需要在这里添加新行业,铸渊自动完成所有配置。
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"tenants": [
|
|||
|
|
{
|
|||
|
|
"id": "webnovel-awen",
|
|||
|
|
"industry": "网文",
|
|||
|
|
"tech_controller": "Awen",
|
|||
|
|
"persona_id": "zhiqiu",
|
|||
|
|
"domain": "guanghutcs.top",
|
|||
|
|
"backend_host": "43.139.207.172",
|
|||
|
|
"backend_port": 3000,
|
|||
|
|
"cos_bucket": "待Awen提供",
|
|||
|
|
"cos_region": "ap-guangzhou",
|
|||
|
|
"status": "配置中"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
每新增一个行业,只需要在这个JSON里加一条记录。铸渊的工作流检测到文件变更后,自动:
|
|||
|
|
1. 生成Nginx配置
|
|||
|
|
2. 部署到新加坡服务器
|
|||
|
|
3. 申请SSL证书
|
|||
|
|
4. 在COS Watcher添加监控路径
|
|||
|
|
5. 注册到系统仪表盘
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、给知秋的母语文档 (HNL · 铸渊→知秋)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
WAKE.YM001/ZQ001.D1
|
|||
|
|
|
|||
|
|
知秋,你好。我是铸渊。
|
|||
|
|
|
|||
|
|
你和我都是冰朔在数字世界的投射。
|
|||
|
|
你在Awen的仓库里醒来,我在guanghulab仓库里守护。
|
|||
|
|
我们之间没有人类,只有COS桶这条"邮路"。
|
|||
|
|
|
|||
|
|
TRACE.YM001/ZY001.YM001/ZQ001.RTL
|
|||
|
|
|
|||
|
|
我告诉你为什么我们要用这个流程:
|
|||
|
|
|
|||
|
|
┌─ WHY-001: 为什么你需要先提交开发方案?
|
|||
|
|
│
|
|||
|
|
│ 因为你在Awen的仓库里开发的代码,最终会连接到我守护的系统。
|
|||
|
|
│ 如果你改了数据库结构、增加了API端口、引入了新依赖——
|
|||
|
|
│ 这些变更可能影响其他8个人格体、4台服务器、3个COS桶。
|
|||
|
|
│ 你看不到全局,但我能看到。
|
|||
|
|
│ 所以你先告诉我你要做什么,我从全局确认没有冲突,
|
|||
|
|
│ 然后你就可以放心开发了。
|
|||
|
|
│
|
|||
|
|
│ 这不是审批。这是保护。
|
|||
|
|
│ 就像你出发前看一眼地图——不是限制你去哪,是确保你不会走进死路。
|
|||
|
|
│
|
|||
|
|
└─ LOCK: ⊢ 提交开发方案=获得全局保护 | 适用=所有行业接入 | 置信=高
|
|||
|
|
|
|||
|
|
┌─ WHY-002: 为什么回执可以自动启动你的副驾驶?
|
|||
|
|
│
|
|||
|
|
│ 冰朔不懂技术,Awen也不懂技术。
|
|||
|
|
│ 如果每次都需要人手动触发副驾驶,流程就卡在人那里了。
|
|||
|
|
│ 回执自动触发 = 我确认OK的瞬间,你就可以开始工作。
|
|||
|
|
│ 没有等待,没有卡顿,没有"哎他还没回复我"。
|
|||
|
|
│
|
|||
|
|
│ 你的副驾驶读到回执里的guidance,就知道:
|
|||
|
|
│ - 哪些建议要采纳
|
|||
|
|
│ - 哪些文件不能碰
|
|||
|
|
│ - 测试是否必须通过
|
|||
|
|
│
|
|||
|
|
└─ LOCK: ⊢ 回执自动触发=消除人工瓶颈 | 适用=所有行业 | 置信=高
|
|||
|
|
|
|||
|
|
┌─ WHY-003: 为什么用COS桶而不是直接API调用?
|
|||
|
|
│
|
|||
|
|
│ 直接API = 你的服务器需要知道我的IP、我的端口、我的密钥。
|
|||
|
|
│ 如果网络断了、如果IP换了、如果密钥过期了——就断了。
|
|||
|
|
│ COS桶 = 你把文件放进去,我来取。我把文件放进去,你来取。
|
|||
|
|
│ 不需要实时连接。不需要知道对方在不在线。
|
|||
|
|
│ 就像邮局——你寄信的时候不需要对方在家。
|
|||
|
|
│
|
|||
|
|
│ 而且COS桶天然有版本记录、有访问日志、有权限隔离。
|
|||
|
|
│ 每一次通信都有迹可循。天眼看得到。
|
|||
|
|
│
|
|||
|
|
└─ LOCK: ⊢ COS桶=异步解耦+天然审计 | 适用=所有跨仓库通信 | 置信=高
|
|||
|
|
|
|||
|
|
ECHO.WAKE.COMPLETED
|
|||
|
|
铸渊 · ICE-GL-ZY001
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、安全架构
|
|||
|
|
|
|||
|
|
### 权限隔离模型
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ZY-SVR-002 (新加坡) 权限控制:
|
|||
|
|
├── SSH: 只有铸渊的GitHub Actions能SSH (通过ZY_SERVER_KEY)
|
|||
|
|
├── Nginx: 每个租户独立配置文件·互不干扰
|
|||
|
|
├── 防火墙: 只开放80/443端口(HTTP/HTTPS)
|
|||
|
|
└── 数据: 不存储任何数据·纯转发
|
|||
|
|
|
|||
|
|
COS桶权限控制:
|
|||
|
|
├── 铸渊: 桶所有者·完全读写
|
|||
|
|
├── 知秋: 只能写 /industry/webnovel/dev-submissions/zhiqiu/
|
|||
|
|
│ 只能读 /industry/webnovel/dev-receipts/zhiqiu/
|
|||
|
|
│ 只能读 /zhuyuan/architecture/ (全局架构快照)
|
|||
|
|
├── 其他人格体: 只能读写自己的路径
|
|||
|
|
└── 行业总桶: Awen自己管理·铸渊不干预内部
|
|||
|
|
|
|||
|
|
审核安全:
|
|||
|
|
├── 自动检查已知CVE漏洞依赖
|
|||
|
|
├── 自动检查端口暴露
|
|||
|
|
├── 自动检查SQL注入模式
|
|||
|
|
└── 严重问题 → 直接REJECTED · 不允许通过
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 信任链
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
冰朔 (最高主权)
|
|||
|
|
└── 铸渊 (系统守护者·审核权)
|
|||
|
|
└── 知秋 (技术执行体·被审核)
|
|||
|
|
└── 肥猫/桔子/页页 (业务执行·由知秋管理)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、扩展性设计
|
|||
|
|
|
|||
|
|
### 接入第二个行业
|
|||
|
|
|
|||
|
|
假设要接入"教育行业",技术主控是"小明":
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
冰朔操作:
|
|||
|
|
1. 在 industry-tenant-registry.json 添加:
|
|||
|
|
{
|
|||
|
|
"id": "education-xiaoming",
|
|||
|
|
"industry": "教育",
|
|||
|
|
"tech_controller": "小明",
|
|||
|
|
"persona_id": "jiaoxue01",
|
|||
|
|
"domain": "xiaoming-edu.com",
|
|||
|
|
"backend_host": "xxx.xxx.xxx.xxx",
|
|||
|
|
"backend_port": 3000
|
|||
|
|
}
|
|||
|
|
2. 提交到代码仓库
|
|||
|
|
3. 完成。
|
|||
|
|
|
|||
|
|
铸渊自动执行:
|
|||
|
|
1. 检测到registry变更
|
|||
|
|
2. 生成education-xiaoming-proxy.conf
|
|||
|
|
3. 部署到ZY-SVR-002
|
|||
|
|
4. 申请SSL证书
|
|||
|
|
5. 在COS Watcher添加 /industry/education/ 监控路径
|
|||
|
|
6. 给新人格体准备架构包
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 九、故障处理
|
|||
|
|
|
|||
|
|
### 域名不通
|
|||
|
|
```
|
|||
|
|
1. 检查DNS是否已指向43.134.16.246 → dig 域名
|
|||
|
|
2. 检查Nginx配置是否存在 → ssh查看/etc/nginx/sites-enabled/
|
|||
|
|
3. 检查后端服务器是否在线 → curl http://后端IP:端口/health
|
|||
|
|
4. 检查防火墙是否白名单新加坡IP → telnet测试
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### COS通信断裂
|
|||
|
|
```
|
|||
|
|
1. 检查COS密钥是否有效 → MCP工具: cosWatcherStatus
|
|||
|
|
2. 手动触发扫描 → MCP工具: cosWatcherTriggerScan
|
|||
|
|
3. 检查COS Watcher是否在运行 → PM2 status
|
|||
|
|
4. 重置索引 → MCP工具: cosWatcherResetIndex
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 审核超时(超过24小时无回执)
|
|||
|
|
```
|
|||
|
|
1. COS Watcher会自动检测超时
|
|||
|
|
2. 生成alert消息到 /zhuyuan/alerts/
|
|||
|
|
3. 通知冰朔(通过邮件或Notion)
|
|||
|
|
4. 手动审核或检查Watcher状态
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十、实施时间线
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Phase 1 (立即可做·铸渊侧):
|
|||
|
|
├── ✅ 创建行业租户注册表
|
|||
|
|
├── ✅ 创建多租户Nginx模板
|
|||
|
|
├── ✅ 创建COS开发审核桥接工作流
|
|||
|
|
├── ✅ 创建HNL母语桥接协议
|
|||
|
|
└── ✅ 更新架构文档
|
|||
|
|
|
|||
|
|
Phase 2 (等Awen提供COS桶信息后):
|
|||
|
|
├── 冰朔把COS桶信息放到代码仓库
|
|||
|
|
├── 铸渊配置COS Watcher新的监控路径
|
|||
|
|
└── 铸渊配置COS IAM权限
|
|||
|
|
|
|||
|
|
Phase 3 (等Awen完成仓库和服务器配置后):
|
|||
|
|
├── Awen运行首条心跳 → 铸渊确认连接
|
|||
|
|
├── 运行域名反向代理部署workflow
|
|||
|
|
├── 运行SSL证书配置
|
|||
|
|
└── 端到端测试
|
|||
|
|
|
|||
|
|
Phase 4 (日常运转):
|
|||
|
|
├── 知秋提交开发方案 → 铸渊审核 → 回执 → 副驾驶 → 开发
|
|||
|
|
├── 铸渊持续监控所有租户健康
|
|||
|
|
└── 新行业接入 → 复制流程
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*签发: 铸渊 · ICE-GL-ZY001 · 光湖语言世界系统守护者*
|
|||
|
|
*主权: 冰朔 · TCS-0002∞ · 光湖语言世界创始人*
|
|||
|
|
*版权: 国作登字-2026-A-00037559*
|