direction: down classes: { client: { style: { fill: "#eef2ff" stroke: "#4f46e5" font-color: "#111827" border-radius: 8 } } control: { style: { fill: "#fff7ed" stroke: "#ea580c" font-color: "#111827" border-radius: 8 } } primary: { style: { fill: "#ecfdf5" stroke: "#059669" font-color: "#064e3b" border-radius: 8 stroke-width: 3 } } backup: { style: { fill: "#f0fdf4" stroke: "#16a34a" font-color: "#14532d" border-radius: 8 } } last: { style: { fill: "#fef2f2" stroke: "#dc2626" font-color: "#7f1d1d" border-radius: 8 } } legacy: { style: { fill: "#f8fafc" stroke: "#94a3b8" font-color: "#334155" border-radius: 8 stroke-dash: 4 } } } title: "AgentMeshOS 代理网络生产架构" { near: top-center style: { font-size: 24 font-color: "#111827" bold: true } } clients: "客户端层:统一订阅语义" { direction: right class: client windows: "Windows\nClash Verge Rev v2.5.7\nMihomo 核心" { class: client } android: "Android\nClash Meta for Android v2.11.35\nMihomo 核心" { class: client } ios: "iOS\nStash v3.4.1\nClash 兼容" { class: client } policy: "Auto: fallback\nMM -> d02 -> dog -> dd -> rr\n180 秒探测,lazy=false\n仅切换新连接" { class: client } windows -> policy android -> policy ios -> policy } control: "控制面:rr" { direction: right class: control entry: "管理入口\nproxy.yohan.fun\n2S-UI 自身登录" { class: control } master: "2S-UI Master v1.8.3\n节点 / 客户端 / 订阅\nClash / JSON / Base64" { class: control } nodes_api: "节点 API\nTailnet 2095\n仅 rr 可达" { class: control } console: "Console 架构页\n#proxyNetwork\n统一导航,不嵌入面板" { class: control } edge_gateway: "Edge 控制面网关\nproxy + panel CNAME\n2095/2096 + 39200" { class: control } panels: "节点面板:统一入口,独立登录" { direction: right class: control mm_panel: "panel-mm\nyohan.fun/app/" { class: control } d02_panel: "panel-d02\nyohan.fun/app/" { class: control } dog_panel: "panel-dog\nyohan.fun/app/" { class: control } dd_panel: "panel-dd\nyohan.fun/app/" { class: control } } entry -> master master -> nodes_api: "纳管" console -> entry: "Master 直达" { style.stroke-dash: 4 } console -> panels: "节点面板直达" { style.stroke-dash: 4 } edge_gateway -> panels: "Host 路由" } data: "数据面:顺序主备,不做多节点混流" { direction: right class: backup mm: "MM · 主\nVLESS + REALITY / TCP\nmm-proxy.yohan.fun:24443" { class: primary } d02: "d02 · 备用 1\nVLESS + REALITY / TCP\n公网 24443" { class: backup } dog: "dog · 备用 2\nHysteria2 / UDP\n公网 24444" { class: backup } dd: "dd · 备用 3\nSS2022 / TCP + UDP\n公网 24445" { class: backup } rr: "rr · 末位 + 控制面\nTrojan + TLS / TCP\n公网 24446" { class: last } mm -> d02: "健康检查失败" { style.stroke-dash: 4 } d02 -> dog: "健康检查失败" { style.stroke-dash: 4 } dog -> dd: "健康检查失败" { style.stroke-dash: 4 } dd -> rr: "健康检查失败" { style.stroke-dash: 4 } } clients.policy -> data.mm: "正常主路径\n客户端侧真实探测" control.master -> clients.policy: "下发新订阅" { style.stroke-dash: 4 } control.nodes_api -> data: "心跳 / 入站同步" { style.stroke-dash: 4 } control.panels.mm_panel -> data.mm: "Host -> 100.64.0.6:2095" control.panels.d02_panel -> data.d02: "Host -> 100.64.0.5:2095" control.panels.dog_panel -> data.dog: "Host -> 100.64.0.3:2095" control.panels.dd_panel -> data.dd: "Host -> 100.64.0.9:2095" legacy: "迁移期旧链路:继续在线,不进入新架构" { direction: right class: legacy old_client: "原客户端 / 360T7\n固件固定,不纳管" { class: legacy } old_ss: "ss-rust\n原端口 / 原密码 / 原订阅" { class: legacy } old_client -> old_ss: "继续使用" } data -> legacy: "不共用端口、密码、订阅和切换语义" { style.stroke: "#dc2626" style.stroke-dash: 5 style.font-color: "#b91c1c" }