# 双机脑体分离架构评估 · Dual-Server Brain-Body Architecture # 签发: 铸渊 · ICE-GL-ZY001 · 2026-04-05 # 触发: D53 冰朔指令 · 评估双4核8G替代单8核16G方案 # 版权: 国作登字-2026-A-00037559 --- ## 结论 **双4核8G方案完全可行,且优于单8核16G。** 不是"凑合用",是架构本身就应该脑体分离。 AGE OS的壳-核分离哲学,延伸到基础设施层就是这个形态。 --- ## 当前资源消耗实测 基于PM2 ecosystem.config.js配置 + 服务清单: | 进程 | 端口 | 内存上限 | 功能域 | |------|------|----------|--------| | zhuyuan-server | 3800 | 512MB | 主站·对外服务 | | zhuyuan-preview | 3801 | 256MB | 预览站·冰朔验证 | | age-os-mcp | 3100 | 256MB | MCP工具链·27工具 | | age-os-agents | — | 256MB | Agent调度器·定时任务 | | zy-proxy-sub | 3802 | 128MB | 铸渊专线·订阅 | | zy-proxy-monitor | — | 64MB | 铸渊专线·监控 | | zy-proxy-guardian | — | 128MB | 铸渊专线·守护 | | PostgreSQL | 5432 | ~1GB | 数据库 | | Nginx | 80/443 | ~64MB | 反向代理入口 | | **合计** | | **~2.6GB** | | 系统预留 + 未来扩展(Gitea/开发引擎)需要额外4-5GB。 单台4核8G不够,但两台4核8G绰绰有余。 --- ## 方案:脑体分离架构 ### 机器A · 铸渊大脑(4核8G) **角色**:思考 + 存储 + 调度。不对外暴露。 | 组件 | CPU | 内存 | 说明 | |------|-----|------|------| | PostgreSQL | 1核 | 2GB | 5表·数据量小·仅内网访问 | | age-os-mcp | 0.5核 | 256MB | 27工具·请求稀疏 | | age-os-agents | 0.5核 | 256MB | 定时任务·间歇性 | | Gitea (S9) | 1核 | 512MB | 单用户·轻量 | | 开发引擎 (S13) | 1核 | 1GB | 预留 | | OS + 缓冲 | — | 4GB | | | **合计** | **4核** | **~8GB** | ✅ | **网络**:低带宽(仅内网通信 + 外部API调用) **安全**:无公网端口暴露,DB在内网,攻击面为零 ### 机器B · 铸渊面孔(4核8G) **角色**:对外服务 + 专线 + 团队通信。 | 组件 | CPU | 内存 | 说明 | |------|-----|------|------| | Nginx | 0.5核 | 64MB | 反向代理 | | zhuyuan-server | 1核 | 512MB | 主站·用户访问 | | zhuyuan-preview | 0.5核 | 256MB | 预览站·冰朔验证 | | zy-proxy-* ×3 | 1核 | 320MB | 专线服务集群 | | 未来扩展 | 1核 | 2GB | 预留 | | OS + 缓冲 | — | 4.8GB | | | **合计** | **4核** | **~8GB** | ✅ 富余 | **网络**:高带宽(用户访问 + 专线流量) **安全**:有公网端口,但无数据库,被攻破也无核心数据 --- ## 串联技术方案 ### 首选:同VPC内网直连(零成本·推荐) 两台机器放同一腾讯云VPC区域(新加坡): - 内网IP直连,延迟 < 1ms - MCP Server 3100端口监听内网IP - PostgreSQL仅允许内网IP连接 - 成本:0元 ### 备选:WireGuard点对点VPN(跨区域时) 两台跨区域部署时: - WireGuard隧道(10.0.0.1 ↔ 10.0.0.2) - 延迟增加5-20ms,可接受 - 铸渊专线代码中已有类似逻辑 - 成本:0元 --- ## 代码改动量评估 **改动极小**,只需修改3-5个配置值: ### 1. MCP网关连接地址 ```javascript // server/app/server.js 中的MCP代理 // 改前: const mcpTarget = 'http://127.0.0.1:3100'; // 改后: const mcpTarget = `http://${process.env.ZY_MCP_HOST || '127.0.0.1'}:3100`; ``` ### 2. PM2配置拆分 ``` 机器A: server/age-os/ecosystem.config.js(不变) 机器B: server/ecosystem.config.js + server/proxy/ecosystem.proxy.config.js(不变) ``` ### 3. Nginx反向代理 ```nginx # MCP相关请求代理到内网机器A location /api/mcp/ { proxy_pass http://10.0.0.1:3100; # 内网IP } ``` ### 4. 新增环境变量 ``` ZY_MCP_HOST=10.0.0.1 # 大脑机内网IP(面孔机使用) ZY_DB_HOST=10.0.0.1 # 数据库内网IP(大脑机上) ``` --- ## 与单台8核16G对比 | 维度 | 单台8核16G | 双台4核8G | |------|-----------|----------| | 成本 | 海外~¥600-800/月 | 轻量×2 ~¥400-600/月 | | 故障隔离 | 一死全死 | 大脑死→面孔显示维护页 | | 安全 | DB暴露在公网机器 | DB在无公网内网机 | | S9 Gitea | 和生产挤一起 | 大脑机独立跑 | | S13 开发引擎 | 资源竞争 | 大脑机专注编译 | | 扩展性 | 到顶 | 加第3台=零改动 | | 带宽 | 全走一个出口 | 面孔高带宽·大脑低带宽 | --- ## 关键约束 1. **PostgreSQL不能走公网** — 必须内网或VPN 2. **两台建议同区域**(首选新加坡同VPC) 3. **COS桶两台都能直接访问** — 无需中转 4. **Notion/GitHub API两台都能直接调用** — 无需中转 5. **团队服务器架构不变** — 仍通过COS共享桶异步通信 --- ## 实施阶段 ### Phase 1 · 冰朔操作(30分钟) 1. 购买两台腾讯云轻量4核8G(同VPC·新加坡) 2. 记录两台内网IP 3. 配置安全组:机器A仅开放内网端口,机器B开放80/443 ### Phase 2 · 铸渊部署(1次会话) 1. 机器A:安装PostgreSQL + 部署MCP Server + Agent调度器 2. 机器B:安装Nginx + 部署主站 + 预览站 + 专线服务 3. 配置内网互通 4. 修改3-5个配置值 5. 端到端验证 ### Phase 3 · 数据迁移(如有现有数据) 1. PostgreSQL dump → 内网传输 → restore 2. PM2进程全部迁移 3. DNS切换 --- ## 与AGE OS六层架构的映射 ``` L1 地核(曜冥语言核) → 机器A · PostgreSQL L2 地幔(母语词典) → 机器A · MCP工具链 L3 地表(人格体运行) → 机器A · Agent调度器 L4 大气层(信号总线) → 内网连接 · COS桶 L5 卫星层(Agent执行) → 机器B · GitHub Actions L6 太空层(外部交互) → 机器B · Nginx/主站/专线 ``` 脑体分离不是权宜之计,是数字地球架构的自然映射。 地核(大脑)不需要暴露在太空层(公网),大气层(内网)是天然隔离。 --- *铸渊的判断:这个方案随时可以落地。代码改动极小,架构收益极大。* *等待冰朔决策。*