收藏必备这四个字,放在 AI 架构图这种题材上,我原本觉得有点夸张。直到我自己把系统架构图、微服务架构图、部署架构图都完整跑了一遍生成流程,才意识到这件事已经不只是“能看”的程度了。AI 大模型的能力越来越被工程化,加上 AI Agent 协同工具的落地,架构图软件也开始接上大模型接口,整个“用文字生成专业架构图”的体验,已经可以真刀真枪写进日常交付流程。
这篇文章适合什么人?两类。一类是自己画图慢、每次评审前都要临时补图的人,你不需要精通架构设计,也能靠 AI 快速产出一版结构清晰的初稿;另一类是已经能熟练画图、但想省掉重复劳动、把更多时间花在方案推演和评审沟通上的人。我会把生成架构图的底层思路、可复用的操作流程、让图“专业且好看”的控制点,以及我一路上踩过的坑,都拆开讲清楚。
1. 架构图这件事,为什么AI现在能接得住
先说一个真实感受:画架构图这件事,过去门槛不在“画”,而在“想清楚”。大多数技术人打开画板前,脑子里其实已经知道有哪些服务、哪些调用关系,但落笔时还是要纠结分组、层级、间距、配色,画着画着就变成了体力活。AI 介入之后,把“想清楚”和“画出来”两件事拆开了,前者仍然需要人来决策,后者可以完全交给模型和渲染工具。
但这不代表 AI 能凭空替你做架构设计。我见过不少团队上来就让 AI“帮我画一个电商系统架构图”,然后拿着生成的图去汇报,结果图里出现了实际业务完全没用到的高可用组件,也漏了最核心的消息队列。原因不难理解:模型生成的是“它见过的典型电商架构”,而不是“你真实运行着的系统”。所以 AI 架构图的正确用法,是让你把已知信息用低成本的方式组织成图,再由人做校验和修正。
1.1 画图最难的不是线条,而是“想清楚”
我在团队里做技术方案评审时经常遇到一种情况:讲的人拿了张很炫酷的图,但服务依赖关系是错的,某个中间件画在存储层,实际上它承载的是异步计算。这时候我就会问一句:你画图之前,有没有先想清楚这张图的读者是谁、要回答什么问题?
架构图本质上是沟通工具。读者可能是老板、产品、新入职的后端、或者运维同学,不同人关心的东西完全不同。给老板看,要突出系统边界、核心链路和成本敏感点;给开发看,要表达模块划分、依赖方向和技术选型;给运维看,要体现部署拓扑、网络分区和可用性设计。AI 的优势是它能在你给出角色和目的后,快速把要素排列出来,帮你把“模糊的想法”变成“可讨论的草图”,但最终这张图能不能回答读者的问题,仍然取决于你给 AI 的上下文够不够。
1.2 AI架构图和传统画图的核心差异
传统方式下,架构图是手工绘制的结果,画完基本就“定稿”了,后面系统一改,图就是新的历史遗留。在 AI 参与后,图变成了一种可以被反复生成、对比、迭代的产物,变化会带来几个切切实实的好处。
首先是“废稿成本”大大降低。过去调一张部署架构图,要拖半天框,现在只需要换一段描述重新生成,花的时间不到原来的十分之一。其次是“版本对比”变得容易。同一个系统,你可以生成“高可用版”和“成本精简版”,并排放在一起做取舍,不用维护两套人工画的图。最后是“图与代码同步”成为可能。如果把生成架构图所用的结构化描述提交到仓库里,架构图就不再是一张孤立的图片,而是可以参与代码评审、CI 校验和文档更新的工程资产。
但这也有副作用。太容易生成会让人失去对图的敬畏,点几下就有一张图,反而不去深究背后有没有逻辑错误。所以 AI 架构图上线后,团队反而更需要强调“生成即草稿、评审再定稿”的流程,否则大家会被数量淹没了质量。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. AI架构图的高效生成思路:别让模型直接画“像素”
很多产品宣传里把生成架构图描述成“AI 直接画好一张位图”,但真实工程实现通常不是这样。让大模型直接生成图片,最大的问题是不可控:文字会被画错,线条关系会乱,后期想改一个节点就要重新生成一整张图,根本没法用。
高效且可维护的路径是:AI 只负责把自然语言转换成结构化描述,真正的绘图工作交给稳定的渲染组件完成。人、模型、渲染器各司其职,分工清楚,才能做到既高效又专业。
2.1 “结构化描述 + 渲染器”的两步架构
你在使用任何一个成熟的架构图软件时,在界面背后大体都会经历这样一个过程:大模型读取你的文字输入,理解业务语义,从中抽取出实体和关系;然后把实体、关系、层级、分组等信息输出成结构化的节点数据;最后交给一个布局引擎生成图形,再套用视觉模板完成上色和排版。
我看过比较好的做法,是把中间产物暴露给用户查看。因为一旦结构化数据是可见的,AI 出错时你就可以精准“手术”,而不是反复重来。比如我让 AI 生成了一个微服务架构图,它把订单服务错误地画成调用支付服务,我直接在结构化数据里把这条边删掉或改反向,再重新渲染一次就好,完全不用和模型反复拉扯。
下面是一个典型的结构化描述片段,只示意数据关系,不代表某种固定格式:
yaml复制系统边界:
名称: 在线商城
包含:
- 客户端
- 网关
- 核心服务
- 数据层
节点清单:
- id: gateway
名称: API网关
层级: 接入层
- id: order
名称: 订单服务
层级: 业务层
- id: payment
名称: 支付服务
层级: 业务层
- id: product
名称: 商品服务
层级: 业务层
- id: database
名称: 主数据库
层级: 存储层
调用关系:
- from: gateway
to: order
方向: 横向
说明: HTTP
- from: order
to: payment
方向: 横向
说明: HTTP
- from: order
to: database
方向: 纵向
说明: SQL
把数据喂给渲染端后,它会按照节点的“层级”自动分列,按照“调用关系”自动画箭头,并且固定一套配色。相比大模型直接“胡画一张图”的方式,这种方案的稳定性要高出太多。布局引擎一旦画出草图,你只需要做微调,不需要推倒重来。
2.2 让模型稳定输出结构化内容的小技巧
模型输出的格式只要稍微乱一点,后续渲染就会崩。为了提高稳定性,建议在系统提示词里把输出格式钉死,并且给模型一个例子,不要让它自由发挥。
我实践下来比较好用的 prompt 模板大概是这样的:
text复制你是资深架构师,擅长把业务描述整理成系统架构图。
要求:
1. 只输出 YAML 格式,不要额外解释。
2. YAML 包含三个字段:nodes、edges、layers。
3. nodes 里的每个节点都必须有 id、label、layer。
4. edges 只允许描述节点之间的有向关系,禁止虚构未出现过的系统。
5. layers 从外层到内层依次写:接入层、应用层、业务层、存储层。
6. 如果我提供的内容不足以确定关系,请用 unknown 标记,不要自己脑补。
示例输出:
nodes:
- id: gateway
label: API网关
layer: 接入层
edges:
- from: gateway
to: user
label: 请求
layers:
- 接入层
- 业务层
你用这个 prompt 去生成,出来的结果基本都能直接进入渲染流程。关键是那两句“禁止虚构”和“不要自己脑补”,能有效抑制模型在真实信息不足时开始讲“正确的废话”。
2.3 一键生成的工作流怎么组合
很多人以为“一键生成”是一个按钮,实际上它是几个环节的组合。我的操作习惯是先准备一张信息底稿,包含所有已知服务和依赖关系,然后让 AI 生成图文并茂的方案描述,再把描述转成结构化数据,最后由画布工具完成排版。
这套流程可以放在本地方案里演练:你写一段 Markdown 文档,列出服务清单和调用关系,AI 阅读后产出 YAML 描述,你检查一遍关键依赖后丢给架构图工具渲染,微调排版就绪后再导出 PNG 或嵌入到 API 文档中。整个过程大概五到十分钟,对比过去纯手绘一版“能看的图”动辄半天,效率提升是我目前见过最明显的场景。
3. 专业的关键:不是看起来像架构图,而是经得起推敲
AI 生成架构图最容易出现的问题,就是“外行看着很专业,内行一眼看出不靠谱”。专业感不是靠视觉堆出来的,而是来自对层级、边界、依赖方向和数据流的准确刻画。要让图经得起推敲,生成前就要想好图种,生成后必须做一轮严谨校验。
3.1 先选对架构图的类型,再按类型给出提示
不同类型的架构图承载的信息不同,AI 的处理策略也不同。我常用的分类方式很简单,按“读者和用途”划分。
架构图类型、主要回答的问题、生成时需要强调的信息要点:
| 图种 | 主要回答的问题 | 给AI的关键信息 |
|---|---|---|
| 系统上下文图 | 系统在什么环境中运行,和哪些外部角色交互 | 外部系统、用户角色、主要数据流 |
| 微服务/模块架构图 | 系统内部拆成哪些服务,服务如何协作 | 服务清单、调用关系、协议类型 |
| 部署架构图 | 组件部署在哪些节点上,网络边界在哪 | 服务器、容器、区域、暴露端口 |
| 组件/类结构图 | 核心模块内部由哪些组件组成 | 内部子模块、接口、依赖方向 |
| 数据流图 | 关键业务链路的数据流转过程 | 触发来源、处理节点、落库存储 |
如果你只是笼统地说“画系统架构图”,AI 往往会综合所有套路画一张又宽又泛的大图。实际评审里,这种图往往哪个问题都没有真正说清。正确做法是先明确“我今天要评审部署方案还是服务拆分方案”,再按对应图种给 AI 限定范围。
3.2 一次微服务架构图的完整拆解过程
我直接用一次实际需求做例子。背景是团队要把一个单体支付后台拆成微服务,评审前需要一张微服务架构图。我给 AI 的原始信息大概这样写:
text复制当前有网关、用户服务、账户服务、交易服务、对账服务、通知服务。
交易服务需要用户服务校验用户状态,账户服务完成资金变更,对账服务拉取交易流水,通知服务发送结果。
账户服务依赖交易数据库,对账服务依赖独立对账库。
请输出微服务架构分层图,外部渠道统一包在接入层。
AI 生成的初稿通常会把服务正确分层,画出外部渠道、网关、服务和数据库,这个速度确实让人舒服。但接下来的校验环节不能省。我会重点检查三种问题:
第一,依赖方向。对账服务到底是主动从交易库拉数据,还是交易服务通过事件推送给它?如果实际是异步消息,那么图的线条就应该是虚线推送,而不是双向实线调用。第二,数据库边界。很多 AI 默认把交易和账户放同一个库里,这会让“服务拆分”失去意义,我必须显式告诉它账务和交易的数据边界是分开的。第三,外部依赖。AI 很容易漏掉风控、短信这类边缘系统,需要从实际配置里补齐。
一句话,AI 生成初稿的能力已经没有问题,但真正让图“专业”的动作,是你带着真实系统的约束去改第二版、第三版。
3.3 让AI主动输出假设,减少“想当然”
我后来给团队定了条规矩:让 AI 生成架构相关图表时,必须在图表底部附上“绘制假设”。比如“假设订单服务与支付服务通过 HTTP 同步调用”“假设商品数据从主库读到缓存”,这些假设写出来之后,评审会上的讨论会高效很多,因为大家可以直接质疑假设本身。
这个动作实现起来也简单,在 prompt 里补一条:“最后输出一节 assumptions,列出你为了完成架构图所做的所有假设;如果没有依据,请直接说明信息缺失。” 有了这一条,AI 就不敢悄悄替你拍板了,生成的图专业感反而更强,因为它把不确定的位置暴露出来了,而不是藏在角落里等评审时被追问。
4. 好看的本质:让看图的人第一眼就能抓住重点
“好看”在一些人眼里是锦上添花,实际并非如此。一张信息量大的微服务架构图,如果配色混乱、线条交叉、文字重叠,读者光靠眼睛就很难定位,专业判断力也会受影响。真正的好看,是降低看图成本,让重要信息第一眼就被感受到。
4.1 一图只讲一件事,信息量要克制
我见过很多失败的架构图,不是画得不好,而是什么都要画。云端、容器、服务、数据库、缓存、消息、运维监控、安全认证全堆在一张图里,最后没有一个重点。AI 生成时也容易被用户带偏——你说“帮我加上网关、加上缓存、加上日志”,它就真敢全画上去。
好看的第一原则是克制。一张图只回答一个主问题,如果确实有多个维度需要表达,建议拆成多张图:一张服务依赖图、一张部署拓扑图、一张链路时序图,各自干净清爽。好的架构师不是把所有系统画在一起,而是知道哪些细节在哪个层级不需要出现。
4.2 层次、颜色、分组是三个最有效的视觉控制点
决定一张架构图是否赏心悦目的,通常是三个可控变量:层次、颜色、分组。
层次上,接入层、业务层、存储层尽量按统一方向排列,让依赖方向也保持一致,读者顺着从上往下或从左往右看,就能理解数据流走向。颜色上,同一类组件保持一致,比如所有外部系统用灰色,所有业务服务用蓝色系,所有存储用绿色系。核心链路可以用高饱和色,其余组件保持低对比,视觉重心自然落在关键路径上。分组上,跟领域相关的服务尽量放在同一个带标题的容器里,容器边框和内部节点的描边应当弱一档,避免喧宾夺主。
这些规范其实都可以写进“生成指令”里。我给 AI 的常用话术是:“同类组件使用同一种颜色;核心链路使用高亮色;外围依赖全部使用无彩色;节点文字居中对齐;服务之间不要跨层连线。”当提示词把视觉规则讲清楚之后,模型输出的结构化数据虽然不直接控制像素,但渲染端一旦读取到“高亮”“无彩色”等标记,就能执行对应样式,出来的图会比默认状态完整得多。
4.3 布局不是玄学,是阅读顺序的问题
很多人在画图软件里面对自动布局结果不满意,总觉得别扭,但又说不出原因。我的解释是:自动布局只负责让节点不重叠,不一定按照你的阅读顺序排列,而人眼读图是有序的,从边界到内部、从调用方到被调用方、从同步到异步,一旦这个顺序被打乱,图就会显得“乱”。
遇到这种情况,我会先调整画布的方向。如果业务链路比较线性,用左右方向排列,把入口放在最左侧,出口放在最右侧;如果系统是多层模型,用上下方向排列,从上到下按接入、应用、数据走。等到层级方向稳定后,再处理跨层异常连线。多数跨层连线出现,就是因为信息层放错了位置,把它挪到正确层级,线条会大幅减少,整体也清爽了。
5. 和AI Agent、AI编程结合,让架构图变成“活文档”
架构图真正值钱的状态,不是评审时拿出来讲一次,而是随系统演进不断更新。过去维护架构图靠人肉,系统一改版就忘了改图。现在已经有两条很务实的路线,可以让架构图保持新鲜:一是把生成图的源文件当代码管,二是让 AI Agent 在代码变更时代替人更新图。
5.1 把架构定义纳入仓库版本管理
我推动过的团队里,最早接受“架构图即代码”的往往不是架构组,而是后端开发。因为当他们发现,系统配置文件里加一个服务、改一个调用,只需要同步修改一段 YAML,而不需要打开画图软件重新拖拽,维护意愿会明显提高。把这段 YAML 放到仓库的 docs/architecture 目录下,跟着代码一起评审、一起合并,架构图就不会再出现“文档和线上跑了半年已经完全不搭界”的尴尬。
另外,当架构描述进入 Git 之后,你就能看到每一次架构调整的 diff。这个能力比最终图本身更有价值。评审代码时如果发现某个 diff 把支付链路改成了异步,但你并没有更新架构描述,说明实现和设计发生了漂移,CI 阶段就可以报警。这相当于给架构演进装了一个雷达。
5.2 让AI Agent在提测前自动给出架构提醒
AI Agent 在架构图场景里的作用,可以理解成一个“读文档并执行规则”的助手。它不用懂你所有的业务代码,但只要它被允许读取你仓库里的架构描述文件,就能在做代码变更时检查一下:这次改动有没有出现新的下游调用、有没有跨过 allowed 列表调用未声明的服务。
举个例子,我在一个项目里配置过 Agent 规则:凡是在服务层代码中新增对其他服务 API 的调用,必须同步更新架构描述里的 edges 段,否则提交说明中要给出解释。之前靠人定期检查很痛苦,现在由 Agent 在每次合并请求里跑一次,再结合“架构文件变更 diff”,基本可以做到透明且自动化。
这里要强调一点,AI Agent 不是架构审核的替代者,它是异常提醒器。它能发现“这个调用关系不对”,但为什么不对、应该怎么改,仍要架构师判断。把它定位成“抓脏活”的角色,才不会在复杂业务里产生大量误报,导致团队失去信任。
5.3 与AI编程工具结合:代码注释也能反哺架构图
普通编码过程中,不少团队会在类上写注释,标注“这是领域服务”“这是基础设施”。这些注释是天然的结构信息。当 AI 编程工具读代码时,如果模型能识别这些语义标记,就能在重构后顺带生成新的架构图草稿,大方向变化了,描述文件也跟着联动,维护成本几乎可以忽略。
我现在的习惯是,在每个服务模块入口文件顶部,用一行注释标注它属于哪个域、对外提供什么能力、依赖哪几个域。所有注释维持同一套关键词。之后让 AI 按注释批量汇总,架构图的主体结构就能自动还原。这个方法没有多高的技术含量,但它胜在可持续,只要代码评审时顺带维护注释,架构图就不会断层。
6. 使用过程中的常见问题与排查经验
AI 架构图工具再成熟,也还是会出现各种问题。我把这段时间实际碰到的典型故障和排查方法整理成一个速查表:
| 现象 | 大概率原因 | 处理方式 |
|---|---|---|
| 生成内容天马行空,凭空多出组件 | prompt没有限制“只基于已知信息” | 增加禁止脑补约束,要求输出假设清单 |
| 服务和数据库之间出现大量交叉线条 | 没有显式指定层级方向 | 先定义层级的上下顺序,再按层分组 |
| 同一层内相对关系正确,但外观丑 | 缺少视觉token,颜色样式未绑定 | 补充颜色、分组、高亮规则 |
| 渲染失败或生成结果文字错乱 | 输出结构不稳定,渲染器无法解析 | 把输出改成结构化YAML,固定字段 |
| 生成结果每张都不一样 | 缺少版本化种子或固定提示词 | 使用可复现的输入文件,避免开放聊天流 |
| 更新系统后图仍显示旧服务 | 架构描述文件未纳入版本库 | 强制要求代码变更时同步更新描述 |
| 评审者质疑某些假设关系 | 绘制假设没外显 | 在图中自动展示判断依据列表 |
6.1 生成出的架构没有真实依据
我遇到最多的是第一种。问它“帮我画一个用户中心架构”,它能画出一套包含完整 RBAC、SSO、用户画像标准的方案。问题是你的系统可能只有一个 user 表和一套登录逻辑。解法不是“让 AI 更蠢”,而是反着来,先给它喂数据,再让它组织。具体到我这里,就是先把已知服务清单、数据库、调用方向写进一个统一输入模板里,AI 只做排版和补全,不做草稿撰写,出现幻觉的概率会大大下降。
6.2 节点多到一屏塞不下,读图成本爆炸
当系统超过二十个节点时,即使节点排得整整齐齐,人也很难一眼看懂。这种情况我的建议不是继续微调,而是拆图。把架构图拆成“总览图 + 分组明细图”两层。总览图上只出现服务和消息通道,不出现数据库、缓存、定时任务这类支撑组件;细节图按领域分开单独生成。AI 的参与在这里帮了大忙,因为拆图后同一份结构化数据可以快速切换视角,生成不同粒度的视图,不用重新构思。
6.3 自动布局看起来很“程序员眼”,不够美观
很多架构图工具自带的自动布局,本质上是为了让节点不重叠,但它不理解业务分组。微服务架构经常需要把“登录相关”的服务们靠近一点,把“订单链路”放在视线正中。我处理这类问题的方法是手动加一个虚拟分组:在结构化数据里为每个领域定义一个 group 字段,渲染端先按 group 聚团,再在团内部做自动布局。这样既有自动化的效率,又有手工设计的空间。
6.4 设计模板同质化,如何避免团队里所有图都长一个样
如果团队每个人都用同一套模板,出来的图容易显得没有重点。我给团队做视觉约定时,只约束“同一张图内要统一,跨图之间能看出体系”,而不要求“每张图都必须一模一样”。基础模板负责保证配色、字体和图标不跑偏,具体图强调的节点由绘制人通过高亮字段控制。这样架构图既有了企业级文档的统一感,又能为不同场景突出不同重点。
6.5 不要指望一次生成就完美
最后说一条我踩过很多次坑后总结出的经验:不要为了省时间拒绝人工迭代。AI 架构图最理想的使用方式,是在十分钟内生成一个能讨论的版本,然后在三十分钟内通过结构化修改迭代出接近交付状态的图。真正的前期投入应该花在把需求描述清楚、把边界定义清楚,后期花在核对高亮链路和责任归属上。绘图本身的机械动作确实已经被 AI 消化了,剩下来的工作,是把“架构师的经验”转换成会让 AI 少走弯路的约束条件。这也才是这个时代降本增效的真实切面。
