# 系统架构图模板 > ⚠️ **本模板生成的是位图(PNG),不是可编辑的 SVG / draw.io / mermaid 图**。 > 如果你需要可编辑、可对齐、可版本化的工程图,请用 mermaid / draw.io / excalidraw / Figma。 > 如果你需要的是「README 头图 / blog 配图 / 文档插图 / PPT 封面」级别的视觉呈现,本模板适合。 本文件用于生成"工程感系统架构图": - 整体系统架构(前端 + 后端 + DB + 缓存 + 队列 + 外部服务) - 微服务架构概览 - 多区域 / 多 zone 部署架构 - AI 系统 / 数据管道架构 - 云原生架构图 特征: - 暗色背景 (#0F172A slate-900) + 细 grid - 节点 = 圆角矩形 + 半透明深色填充 + 1.5px 边框 + 等宽字体标签 - 配色按"角色"分类(用户层 / 业务层 / 数据层 / 基础设施 / 安全 / 中间件 / 外部) - 有向数据流箭头:实箭头 = 同步,虚线 = 异步 / 回调 - 区域用虚线大框包围(VPC / 云区 / Trust boundary) - 字体:JetBrains Mono / SF Mono 等宽 ## 适用范围 - 系统总览架构图 - 微服务 / 分布式系统架构 - 多区域 / 多云部署架构 - 数据管道 / AI 系统架构 - 文档 / blog 配图 / README 头图 ## 何时使用 - 用户提到 "系统架构 / 微服务 / 分布式 / 部署架构 / 数据管道 / AI 系统架构 / 云架构" - 用户希望视觉「工程感、暗色、grid 网格、像 baoyu-diagram 那种」 - 用户接受这是位图(不要求可编辑) 不要使用: - 用户要的是「业务流程图 / 决策图」 → 用 `technical-diagrams/flowchart-decision.md` - 用户要的是「时序图 / API 调用流」 → 用 `technical-diagrams/sequence-diagram.md` - 用户要的是「网络拓扑」(机房 / 路由器 / 设备)→ 用 `technical-diagrams/network-topology.md` - 用户要的是「ER 图 / 数据模型」 → 用 `technical-diagrams/er-diagram.md` - 用户要的是「论文方法 pipeline」 → 用 `academic-figures/method-pipeline-overview.md` - 用户要的是「神经网络架构」 → 用 `academic-figures/neural-network-architecture.md` ## 缺失信息优先提问顺序 1. 系统名称 + 一句话定位("我们要画 XX 平台的整体架构") 2. 主要分层 / 区域(如"前端 / 网关 / 业务服务 / 数据层 / 基础设施") 3. 每层有哪些节点(最多 8-15 个总节点,超过会拥挤) 4. 主要数据流方向(用户请求 → ... → 响应) 5. 是否有外部服务(第三方 API / SaaS) 6. 是否有"安全 / 鉴权 / 监控"相关组件需要单独标 7. 主题色偏好(默认 dark;是否要 light variant) 8. 比例(默认 16:9 横版;架构图很少竖版) ## 主模板:分层暗色系统架构图 📖 描述 整张图按层 / 按区域划分,每层是一组带相同色系的节点,节点之间用箭头连接表达数据流,整体在深色 grid 背景上呈现工程感。 📝 提示词 ```json { "type": "技术系统架构图(暗色工程感)", "goal": "生成一张用于 README / blog / 设计文档的工程感系统架构图", "canvas": { "aspect_ratio": "{argument name=\"aspect_ratio\" default=\"16:9\"}", "background": "{argument name=\"background\" default=\"deep slate #0F172A with subtle 1px grid lines #1E293B at 32px spacing\"}", "outer_padding": "60px" }, "title_strip": { "title": "{argument name=\"title\" default=\"System Architecture Overview\"}", "subtitle": "{argument name=\"subtitle\" default=\"v1.0 · 2026\"}", "position": "top-left, large mono font (JetBrains Mono / SF Mono), light gray text" }, "color_semantics": { "rule": "颜色按'角色'编码,不按'技术'编码", "palette": [ { "role": "User / Client / Edge", "color": "cyan #22D3EE", "use_for": "终端用户、Web、Mobile、CLI" }, { "role": "Gateway / API / BFF", "color": "blue #60A5FA", "use_for": "API 网关、负载均衡、CDN、BFF" }, { "role": "Business Services", "color": "emerald #34D399", "use_for": "微服务、应用层、业务逻辑" }, { "role": "Data / Persistence", "color": "violet #A78BFA", "use_for": "数据库、缓存、对象存储、搜索" }, { "role": "Middleware / Queue", "color": "orange #FB923C", "use_for": "MQ、Kafka、Redis Stream、Pub/Sub" }, { "role": "Infra / Platform", "color": "amber #FBBF24", "use_for": "K8s、容器运行时、云平台" }, { "role": "Security / Auth", "color": "rose #FB7185", "use_for": "鉴权、密钥、审计、防火墙" }, { "role": "External / 3rd Party", "color": "slate #94A3B8", "use_for": "外部 SaaS、第三方 API" } ] }, "regions": { "rule": "用大虚线框包围属于同一'部署单元'的节点,框上方有 region label", "items": [ { "id": "R1", "label": "{argument name=\"region1_label\" default=\"Public Edge\"}", "color_border": "cyan dashed" }, { "id": "R2", "label": "{argument name=\"region2_label\" default=\"VPC · ap-northeast-1\"}", "color_border": "amber dashed" }, { "id": "R3", "label": "{argument name=\"region3_label\" default=\"Data Plane\"}", "color_border": "violet dashed" } ] }, "nodes": { "count_total": "{argument name=\"node_count\" default=\"10\"}", "items": [ { "id": "N1", "label": "Web App", "role": "User / Client", "region": "R1" }, { "id": "N2", "label": "Mobile App", "role": "User / Client", "region": "R1" }, { "id": "N3", "label": "CDN", "role": "Gateway / API", "region": "R1" }, { "id": "N4", "label": "API Gateway", "role": "Gateway / API", "region": "R2" }, { "id": "N5", "label": "Auth Service", "role": "Security / Auth", "region": "R2" }, { "id": "N6", "label": "Order Service", "role": "Business Services", "region": "R2" }, { "id": "N7", "label": "User Service", "role": "Business Services", "region": "R2" }, { "id": "N8", "label": "Kafka", "role": "Middleware / Queue", "region": "R2" }, { "id": "N9", "label": "PostgreSQL", "role": "Data / Persistence", "region": "R3" }, { "id": "N10", "label": "Redis", "role": "Data / Persistence", "region": "R3" } ] }, "node_style": { "shape": "rounded rectangle, corner radius 8px", "size": "auto-fit text + 24px horizontal padding, ~ 140px wide × 56px tall typical", "fill": "background color of role × 12% opacity (semi-transparent)", "border": "1.5px solid in role color (full opacity)", "label": "label text in JetBrains Mono / SF Mono 12pt, color = role color (lighter shade) for readability on dark bg", "icon": "small icon in top-left corner of node (optional, generic geometric glyph for the role — circle for service, cylinder for DB, hex for queue)" }, "edges": { "sync_call": { "style": "solid line 1.5px in slate #64748B, with small filled triangle arrowhead at the target end", "use_for": "同步请求 / 调用" }, "async_event": { "style": "dashed line 1.5px in slate #64748B, with hollow triangle arrowhead", "use_for": "异步事件 / 消息发布订阅 / 回调" }, "data_flow_label": { "rule": "edges 上可选标小标签(如 'POST /orders' / 'order.created event'),用 mono 字体 9pt,背景与画布融合" }, "rule_routing": "尽量正交(水平 / 垂直)走线;如果必须斜线,控制在 ≤ 30°;边不要穿过节点" }, "legend": { "enabled": "{argument name=\"legend_enabled\" default=\"true\"}", "position": "bottom-right", "content": "color → role mapping (8 swatches), and edge style → meaning (sync solid vs async dashed)", "style": "small panel with semi-transparent background, mono font 10pt" }, "constraints": { "must_keep": [ "暗色背景 + 细 grid", "颜色按 role 编码,不要按技术品牌(如 PostgreSQL 用 violet 因它是 data,不是因为 PG 官方蓝)", "节点统一圆角和尺寸基线", "等宽字体(mono)贯穿全图", "edges 不穿过节点,标签不与边重叠", "区域虚线框颜色与区域含义匹配", "legend 必须画出(即使简化)" ], "avoid": [ "彩虹色 / 高饱和霓虹色(除 cyan 之外其它色都要 muted)", "用 emoji 当节点图标(用极简几何 glyph)", "技术 logo 直接贴上去(除非是商标对照说明)", "3D 立方体 / 透视效果 / 玻璃质感", "同一种颜色既表'安全'又表'业务'", "节点超过 15 个(请拆分到多张子图)", "声称这张图可编辑 / 可导出 SVG(它是位图)", "用花哨字体 / 手写体(破坏工程感)" ] } } ``` ### 参数策略 - **必问**:`title`、节点列表(含每个节点的 role 归属)、主要 edges - **可默认**:`background`(暗色 grid)、`color_semantics`(8 角色调色板)、`node_style`、`legend_enabled`(true) - **可随机**:节点摆放位置(基于区域 / role 自动布局)、icon glyph 具体造型 ### 自动补全策略 - 用户给 "Web + API + DB" 三层简化 → 自动用 3 个 region (Edge / Service / Data) + 5-7 个节点 - 用户没说 region → 默认按 role 自动聚类 + 加 region 框 - 用户没说要不要 light 变体 → 默认 dark;用户说要 light 时切换到变体 1 - 用户给具体技术("用 PostgreSQL")→ 节点 label 直接写技术名,但配色仍按 role 选 ## 变体 1:浅色 / Light 模式系统架构图 ```json { "modify": { "background": "warm off-white #F8FAFC with very faint grid #E2E8F0", "node_fill": "role color × 8% opacity", "node_border": "1.5px solid role color (full opacity)", "label_color": "role color (full opacity, dark enough for white bg) — e.g. cyan label uses cyan-700 not cyan-300", "title_color": "deep slate #0F172A", "edges_color": "slate #475569", "vibe": "看起来像 light theme 文档配图(适合 Notion / GitHub / 白底文档)" } } ``` 适用:白底文档站、印刷版文档、对比 dark 版本提供的 light alternative。 ## 变体 2:极简 monochrome 系统架构图 ```json { "modify": { "color_semantics": "all roles use slate #94A3B8 except 'highlight current focus' uses single accent (e.g. cyan #22D3EE)", "use_case": "强调结构本身,不强调角色分类(如教学讲解、概念示意)", "vibe": "克制、非分散注意力、像 The Verge / Stripe blog 的极简插图" } } ``` 适用:概念性示意(不需要强调角色)、blog hero 图、教学。 ## 变体 3:Hero / Marketing 风系统架构图 ```json { "modify": { "background": "渐变深蓝紫 + 远景星点 + 主体节点带柔和发光", "node_style": "节点保留圆角和等宽字体,但加微妙发光(drop shadow + glow)", "title": "更大、加副标语", "use_case": "产品官网 hero / 投资人 deck / 发布会主图", "vibe": "Stripe / Linear / Vercel 官网风的视觉冲击力" } } ``` 适用:产品官网、技术品牌官网 hero、产品发布会主图。 ## 避免事项 - 节点 > 15 个 → 视觉拥堵,建议拆分到多张图("高层架构" + "细分模块图") - 用 PostgreSQL / Redis / Kafka 真实 logo → 容易侵权 + 破坏统一视觉 - 颜色按"技术"分(如 PG 用蓝、Redis 用红)→ 失去 role 语义 - 用 emoji 节点图标 - 3D 透视 / 玻璃质感 / 渐变填充节点 - 边穿过节点 / 标签碰撞 / 斜线乱飞 - 没有 legend → 读者不知道颜色含义 - 没有 region 框(即使逻辑上有分层)→ 失去"部署单元"信息 - 假装这是可导出可编辑的 SVG → 别误导用户 - 把神经网络结构 / 业务流程 / 时序 也塞到这张图(应该用对应模板)