# 魂镜系统总架构 > 状态:重写目标态(rewrite/1.0 基线) > 上位约束:[产品宪章](../product/constitution.md)、[全产品主 PRD](../product/master-prd.md)、根目录 `AGENTS.md` 完整技术栈 > 实现进度以[能力矩阵](../operations/capability-matrix.md)为准,本文不声明任何能力已落地。 ## 1. 架构基准 魂镜产品定义(六域、镜树、三级记忆、司命禁域等)保持产品与领域文档权威不变;工程架构以根目录 `AGENTS.md` 的完整技术栈为基准,按五层组织: | 层 | 技术 | 文化名 | 核心职责 | | --- | --- | --- | --- | | 前端 | Next.js 16 + React 19 + TypeScript | 琉璃镜 | 全部 Web 界面、镜树阅读与局部树图、治理与可解释呈现、Live2D 与浏览器通感 | | BFF | Node.js 22 + Fastify + Zod | 照壁 | 鉴权透传、SSE/WebSocket 代理、响应裁剪、openapi-fetch 类型桥接 | | 后端核心 | Python 3.12+ + FastAPI + SQLAlchemy 2.0 | 灵台 | 六域业务、插件化认知运行时(九枢)、事件溯源、司命裁决、百工注册 | | 高并发 I/O 层 | Go 1.25+ | 神识 / 博闻 | 神识:模型网关(Provider/路由/流式/BYOK/计量);博闻:MCP 联网搜索 | | 桌面端 | Rust + Tauri v2 | 镜匣 | 最小桌面壳:承载琉璃镜、本地能力桥、乾坤本地执行通道 | | 隔离执行 | Rust + axum(独立 HTTP 服务) | 乾坤 | 不可信代码隔离执行、资源上限、进程组清理、HMAC 授权 | | 感知/本地推理辅助 | Python | 天目 / 元炁 | 天目:本地 OCR;元炁:本地 LLM / Embedding / Rerank / 多模态推理 | 文化名与工程对象的登记、新增与退役以[契约词典 §2](../contracts/contract-glossary.md) 为单一事实源。 ## 2. 服务拓扑 ```mermaid flowchart LR subgraph Clients[客户端] Browser[浏览器] Desktop[镜匣 · Tauri 壳] end subgraph Edge[边缘层] Nginx[天门 · Nginx 统一入口] BFF[照壁 · Fastify BFF] end subgraph Core[核心层] LT[灵台 · Python 后端核心
六域业务 + 插件化运行时] end subgraph GoIO[高并发 I/O 层] SS[神识 · Go 模型网关] BW[博闻 · Go MCP 搜索] end subgraph Aux[辅助服务] QK[乾坤 · Rust 沙箱] TM[天目 · OCR] YQ[元炁 · 本地推理] end subgraph Data[数据层] PG[(金匮 · PostgreSQL / SQLite)] RD[(灵泉 · Redis)] OS[(玉函 · MinIO / 本地对象)] VEC[(灵犀 · pgvector / Milvus)] end Browser --> Nginx Desktop --> Nginx Nginx --> BFF BFF --> LT LT --> SS SS --> Provider[模型 Provider / BYOK Endpoint] SS --> YQ LT --> BW LT --> QK LT --> TM LT --> PG LT --> RD LT --> OS LT --> VEC SS --> RD ``` 要点: 1. 所有客户端请求经照壁进入灵台;琉璃镜与镜匣不持有平台密钥、不直连神识或乾坤。 2. 神识是唯一模型出口:灵台向神识发送版本化模型请求,神识负责协议转换、路由、流式与计量;元炁作为神识的一种本地 Endpoint 接入,不走独立通道。 3. 博闻等 MCP 服务由灵台百工注册与调用;玄关(旧 Go MCP 管理网关)退役,MCP 服务登记并入灵台百工。 4. 乾坤只执行经司命裁决且范围明确的请求;乾坤不判断风险、不拥有人物状态。 ## 3. 交互总链路 ```mermaid sequenceDiagram participant UI as 琉璃镜/镜匣 participant ZB as 照壁 BFF participant LT as 灵台 participant SS as 神识 participant QK as 乾坤 participant BW as 博闻 UI->>ZB: HTTPS + JWT Cookie + Idempotency-Key ZB->>LT: 鉴权透传 + 裁剪后请求 LT->>LT: 命台排队 + 司命裁决 + 上下文投影 alt 模型推理 LT->>SS: 版本化模型请求 + run_id/trace_id SS-->>LT: 标准化流(SSE)+ 用量 else 工具执行 LT->>BW: 百工工具调用(如联网搜索) BW-->>LT: 观察结果 LT->>QK: 已授权执行请求 + 限制 + trace QK-->>LT: 执行观察与审计证据 end LT->>LT: 净化标证 + 状态事务 + Outbox 事件 LT-->>ZB: SSE 事件流 / JSON ZB-->>UI: 透传流 + 响应裁剪 ``` 灵台返回的工具与模型结果先作为带来源的观察进入事件日志,不自动成为事实、人物答复或长期记忆;该铁律的运行时保障见[灵台运行时](lingtai-runtime.md)。 ## 4. 灵台内部分层 ```mermaid flowchart TD API[API 层 · api/v1 + SSE] Domain[六域领域层
镜生 / 缘契 / 三界 / 形仪 / 灵台域 / 天宰] Kernel[极小硬核 Kernel
不变量裁决 + 命台并发 + 事件溯源 + 循环骨架] Plugins[插件层 · 九枢装配
灵核 / 太一 / 司命 / 烛照 / 河图 / 洛书 / 息壤 / 百工 / 天工阁] Infra[基础设施复用层
auth / RBAC / 审计 / 事件存储 / 幂等 / SSE 网关] API --> Domain Domain --> Kernel Kernel --> Plugins Domain --> Infra ``` - 领域层按六域建模,拥有业务规则与状态;运行时详细设计见[灵台运行时](lingtai-runtime.md),数据模型见[数据模型](data-model.md)。 - Kernel 是不可插拔的最小核心:镜树不变量(重新生成不覆盖、未归真不入忆、归真不静默回滚)、命台唯一前台意识流、司命禁域裁决点、"模型可见即可重建"断言。 - 九枢全部以插件装配;司命插件常驻,其禁域规则挂载点不可卸载、不可降权。 ## 5. 数据总架构 - 关系数据库(本地 SQLite / 生产 PostgreSQL)是当前状态唯一事实源;本地开发默认 SQLite 文件,正式环境 PostgreSQL,按需启用 Redis、Milvus、Neo4j/NebulaGraph 与对象存储。 - 关键事件、治理裁决与外部行动写入 append-only 事件日志(一炁),与状态变更经同一事务或 Outbox 一致提交。 - 向量检索:PostgreSQL + pgvector 为标准档;Milvus(灵犀)只在真实规模需要时引入;开发档可用 SQLite + 本地向量层。向量索引可重建,不是权威事实源。 - 对象存储:本地文件系统(开发)→ MinIO(自建)→ S3 兼容(云)。 - 可重建索引、缓存与派生视图在任何恢复流程中都从权威数据重建并校验。 ## 6. 可靠性总架构 - 核心文字相伴官方云 1.0 目标 SLO 99.9%;权威人物数据 RPO ≤ 5 分钟、RTO ≤ 1 小时;媒体与可重建索引可采用更宽目标。 - 手段:健康检查、超时与限流、神识端点故障切换(首字超时切道)、幂等键、事务/Outbox、可验证备份与恢复演练。 - SSE 断线续传:事件带单调序号,客户端以 `Last-Event-ID` 重连,中间状态可在 Redis 缓存恢复;恢复不得违反"未完成芽体不伪装为完整候答"。 - 模型、工具与区域故障下安全降级:降级只影响能力可用性,不破坏人物连续性与已归真经历。 ## 7. 部署分档 | 档位 | 目标 | 基础设施 | | --- | --- | --- | | 本地开发 | 单机开发测试,不可用于生产 | SQLite、本地对象、进程内协调;允许示例凭证与宿主端口 | | 轻量单机 | 私人闭环、低运维自托管 | SQLite、本地对象,可选本地向量层与 Redis | | 标准服务器 | 稳定多人/多人物服务 | PostgreSQL + pgvector、Redis、MinIO;按需 Milvus / Neo4j | | 官方区域云 | 区域驻留、可运营 | 五层服务区域化部署、区域内高可用、备份与灾备体系 | - Docker 编排位于根目录 `docker/`:`docker-compose.infra.yml`(数据库/缓存/向量/图库/对象存储)与 `docker-compose.app.yml`(照壁、灵台、神识、琉璃镜、乾坤、天目、元炁、博闻、天门 Nginx),容器名以 `hunjing-` 开头,共享网络 `hunjing-net`。 - 镜匣(Tauri 壳)为桌面构建产物,不进 Compose;其本地能力桥与乾坤的对接见[BFF 与桌面壳](bff-and-desktop.md)。 - 部署档位改变基础设施规模,不改变各服务逻辑职责或禁域;`change-me` 凭证、无认证管理端口与 `STORAGE_PROVIDER=local` 只允许本地开发档。 ## 8. 阶段启用矩阵 | 服务 | P0 | P1 | P2 | | --- | --- | --- | --- | | 琉璃镜 | 镜树核心界面、人物、记忆治理、设置 | 形仪工坊、Live2D、语音、通感 | 天工阁、叩心、神识阁完整治理 | | 照壁 | 鉴权透传 + SSE 代理 + 类型桥接 | 媒体裁剪与聚合 | 多区域入口 | | 灵台 | 六域核心 + 插件运行时 + 司命 + 百工基础 | 形仪/语音/通感域扩展 | 天工阁、叩心、区域与计费 | | 神识 | chat 槽位、平台目录、BYOK、计量 | vision/ASR/TTS/image/embedding/rerank 槽位 | 配额与成本治理 | | 博闻 | 百工注册的联网搜索 | — | 搜索配额 | | 乾坤 | 基础隔离执行 | 设备安全扩展 | 双裁决与硬急停 | | 天目/元炁 | 元炁作为本地 Endpoint 可选 | 天目 OCR 接入通感 | — | | 镜匣 | — | 设计预留 | 最小桌面壳交付 | ## 9. 架构决策记录 | 决策 | 结论 | 备选与后果 | | --- | --- | --- | | 架构基准 | 以 AGENTS.md 完整技术栈为准,docs/architecture 按其重写 | 备选为四服务目标态文档;后果是 BFF/桌面端进入范围,旧"灵台承载 ai_provider"过渡态终止 | | BFF 选型 | Fastify | NestJS 结构更强但体量重;SSE 代理场景 Fastify 负担最小 | | 神识时序 | 重写期间新建 Go 神识,一次性替换 Python `ai_provider` | 先契约后迁移可降低风险,但会保留两套模型出口;已选择避免二次迁移 | | 运行时理念 | 采纳"一切皆插件"(deepseek-harness),司命禁域与身份不变量为不可插拔硬核 | 纯插件化会使禁域可被卸载,违反宪章;硬核例外是宪章级约束 | | 玄关处置 | 退役,MCP 服务登记并入灵台百工 | 保留独立 MCP 网关会多一个服务与鉴权面;百工本就是唯一能力注册中心 | | 桌面端 | 实现最小镜匣壳(Tauri),加载琉璃镜 + 本地能力桥 | 仅设计预留会推迟桌面验证;完全桌面化超出 1.0 需要 |