架构图 Agent:让系统架构图成为可随代码演进的活文档
2026/9/7 8:42:47 网站建设 项目流程

先从一个特别常见的场景说起。新同事入职、项目技术评审、季度技术汇报,你都绕不开一张架构图。你真正耗时间的不是拖几个方框,而是把散落在代码、文档、聊天记录和记忆里的模块关系全部捞一遍,再用图形表达出来。更糟的是,这张图往往画完就过时了,下次版本一迭代,没人愿意再花几个小时去更新它。

过去一个月,架构图 Agent 这个方向在 GitHub 上热度非常高。我做的项目在这个方向连续 5 天登上 GitHub 全球趋势榜第一,我也因此进入了全球开发者趋势榜。这篇文章不是来晒数据的,而是想认真拆解一下:这类工具为什么会被这么多人关注,它到底解决了什么问题,真实使用中边界在哪里,以及如果你想自己用起来,应该从哪一步开始。

1. 架构图为什么是个“高频但没人愿意做”的活

先给一个反直觉的判断:架构图的价值不在于“画得好看”,而在于“让团队对系统的理解保持一致”。很多人把架构图当成交付物,其实它更像团队沟通的公共语言。语言一旦失真,沟通成本就会成倍增加。

1.1 手工画图的真实成本不在画,而在收集信息

如果你仔细观察自己画架构图的完整过程,会发现 70% 的时间都不是在拖拽图形,而是在回忆、确认和查证。这个服务到底依赖哪个数据库?那个模块是同步调用还是异步消息?网关和鉴权服务之间的链路是不是上一轮重构时已经改掉了?这些问题不搞清楚,图画得再干净也是错的。

我见过不少团队用白板、PPT 或专项绘图工具维护架构图。初期画一张大图确实有成就感,但经过两三个版本迭代之后,这张图的可信度就会急剧下降。原因非常简单:代码在持续变化,而图不会自己跟着变。更新架构图需要有人在排期之外额外付出时间,这件事在真实开发节奏里通常排不上号。

1.2 图一旦过时,团队付出的隐性成本往往被低估

架构图过时之后,损失通常不是马上显现的,而是慢慢渗透到日常协作里。

  • 新同事照着旧图理解系统,先建立起一套错误认知,再读代码时反复纠正自己。
  • 老同事讨论问题时,每个人脑中的系统模型已经不一致,聊了半天才发现版本对不上。
  • 架构评审时,评审者看到的图和实际代码不一致,评审意见自然容易跑偏。
  • 排障时,如果架构图本身就是错的,排查链路很容易被带进死胡同。
  • 文档体系里架构图通常是入口文档,入口错了,后面所有详细设计文档的可信度都会被打折扣。

这些成本很难量化,但每个在稍微复杂一点的项目里待过的人,应该都有体感。

1.3 为什么以前的自动化方案解决不了这个问题

过去的方案无非两类。一类是手工画,精度足够,但维护成本太高。另一类是工具自动生成,依赖固定规则,只能画出包结构、类依赖关系这种静态骨架,画不出真正的业务分层、数据流向和调用链路。

翻译成大白话就是:旧方案的瓶颈不是“画图能力”,而是“理解能力”。它们不理解你的系统是做什么的,不理解哪个模块是核心,不理解为什么订单服务和支付服务之间要走消息队列而不是 HTTP 调用。没有这层理解,生成出来的图就只是一堆方框和线的机械排列,对真实沟通帮助有限。

这正是架构图 Agent 出现后能迅速获得关注的原因。它把“理解架构意图”这件事从人身上转移到了大模型身上。你只需要描述系统有哪些模块、模块之间怎么交互,Agent 就能生成一份结构完整的图定义。

2. 架构图 Agent 真正改变的,是“画图”这个动作本身

2.1 从操作图形到表达意图,门槛完全不一样

传统画图的流程是:打开工具、拖一个矩形、改文字、拖一条线、调整样式。每一步消耗的都是视觉和操作注意力,而且工具越专业,学习成本越高。

使用架构图 Agent 的流程是:用一两段话描述系统结构,生成,看结果,再用自然语言提修改意见,重新生成。

这里的核心变化不是省了几分钟,而是把动作模式从“操作图形”变成了“表达意图”。表达意图这件事,对于大部分开发者来说本来就是每天都在做的事,描述一个系统的模块和关系,远比掌握一套复杂绘图工具的快捷键更容易。同时,修改也变得非常自然——你不需要在画布上小心翼翼地对齐线条,只要说“把支付服务拆成支付网关和支付核心两层”,剩下的工作交给 Agent。

2.2 让架构图从一次性交付物变成可复用的文档

在我设计这个项目的时候,最看重的一点是输出格式的开放性。生成出来的图定义不能只是一张 PNG 图片,它应该能嵌进项目的 Markdown 文档,能放进代码仓库做版本管理,能被团队成员在代码评审里一起 review。

这一点想明白之后,一个更重要的变化跟着出现了:架构图不再是某个人的私人产物,而是团队可以共同迭代的文档。谁改了模块,谁就顺手改一改对应的图定义,成本远低于在绘图工具里改一份文件再重新导出、再上传到文档中心。

架构图终于有机会跟着代码一起演进,而不是每次都要等人专门“抽时间维护一下”。

2.3 连续多天登上 GitHub 趋势榜,背后是需求扎堆

从社区反应看,这个项目能连续 5 天排在 GitHub 全球趋势榜第一,本质上说明它戳中了大量开发者的真实需求。

架构图这件事几乎人人遇到过,需求足够普遍;Agent 直接生成图,路径足够短;生成结果十几秒就能看到,反馈足够快。三个条件叠加,项目在开发者社区的传播就非常自然。对 GitHub 用户来说,趋势榜本身就是“最近大家在用什么”的信号,当一个项目连续多天待在第一的位置上,说明不是少数人试用完就离开,而是有相当一部分用户反复使用,并且愿意把它推荐给身边的人。

3. 想真正用起来,推荐这条最少走弯路的最小路径

如果你也想把类似工具用起来,不要一开始就把它当成一个“画图玩具”。按照下面这条路径走,更容易在真实项目里落地。

3.1 动手之前,先想清楚这张图给谁看

很多人一上来就输在这步。一张给老板看的业务架构汇报图,和一张给新同事看的系统入门图,要求完全不一样。前者重分层和业务边界,后者重要素完整性和链路清晰度。读者不同,图的粒度、注重点、甚至形式都要跟着变。

我的建议是,在生成架构图之前先问自己三个问题:

  1. 这张图的核心读者是谁?
  2. 这张图要回答什么问题?
  3. 这张图大概多久更新一次?

这三个问题的答案,决定了你给 Agent 的描述该怎么写,也决定了最后选什么格式输出。

3.2 用一段结构化的描述做输入,效果远好于一句“画一下架构”

根据我自己的使用经验,一个高质量的架构图生成提示词至少包含四类信息:

  • 系统边界:系统包含哪些模块,哪些外部依赖不算在内。
  • 模块清单:每个模块的职责,一两句话即可,但要准确。
  • 交互关系:模块之间是 HTTP 调用、消息队列,还是共享数据库。
  • 层次约定:如果有明确分层,比如网关层、应用层、数据层,直接说清楚。

常见写法:

请为以下系统生成架构图: - 模块:Nginx 网关、用户服务、订单服务、支付服务、消息队列、MySQL、Redis - 关系:Nginx 网关 -> 用户服务/订单服务/支付服务;订单服务 -> 消息队列 -> 支付服务;所有服务共享 MySQL 和 Redis - 要求:按“接入层 - 服务层 - 基础设施层”三层布局

这里很容易踩的坑是把描述写得太模糊。模糊描述下,Agent 只能靠猜测补全,猜对了你开心,猜错了你来回改,最后还会觉得工具不好用。精确描述虽然要多写两句话,但第一次生成基本就能用。

描述方式典型输入生成结果
模糊描述“画一下我们的系统”通用结构,模块名和层级大概率不匹配
结构化描述模块清单 + 关系 + 分层要求基本符合预期,只需微调细节

这不是 Agent 能力不行,而是自然语言表达本身有信息密度差异。代码里的依赖是明确的,你没在描述里写出来,模型就只能靠推理去补,推理出来的部分自然会有偏差。

3.3 迭代比一次生成更重要,留意这三个检查点

我见过最常见的错误是:生成一次,不满意,立刻下结论说不好用。实际上,架构图 Agent 的使用方式更像和同事讨论架构,需要来回确认。

一个比较高效的迭代顺序是:

  1. 先看整体布局:分层是否合理,模块是否遗漏。
  2. 再看关键链路:核心调用链路有没有画反,数据流方向是否正确。
  3. 最后看细节:命名是否符合团队习惯,边界是否清晰。

注意:迭代时一次只提一个修改点,比如“把支付服务拆成两层”或“把消息队列放到基础设施层”。一次提多个诉求,模型很可能顾此失彼,改完一个丢一个。

4. 这类 Agent 背后到底做了什么

4.1 核心链路:理解、规划、生成、渲染

一个架构图 Agent 的内部流程,本质上可以拆成四步:

  • 理解:大模型读取用户输入,识别模块、关系、层次等关键信息。
  • 规划:把这些信息组织成图结构,决定节点和连边的组织方式。
  • 生成:输出一种标准的图定义语言,比如 Mermaid 或 PlantUML。
  • 渲染:把图定义转换成可视化的图形,呈现给用户。

这四步里最容易出问题的不是最后两步,而是前两步。因为同一个系统可以用无数种方式画出来,Agent 必须判断哪种表达方式最贴合用户意图。这也是为什么提示词质量直接影响最终结果的原因——你的输入越精确,模型在“理解”和“规划”阶段的空间就越大。

4.2 为什么输出用 Mermaid 这类文本格式

文本化格式对 Agent 来说有天然优势。大模型擅长生成文本,不擅长直接操作图形对象。Mermaid 用一套接近自然语言的 DSL 描述图结构,模型理解和生成起来都相对容易。

从工程角度看,文本化格式的好处远不止于此:

  • 可以放进 Git 做版本管理,通过 diff 直观看到架构图的变更。
  • 可以嵌进 Markdown 文档,在 GitHub、GitLab 等平台直接渲染。
  • 可以由 CI 流程自动检查生成结果是否合法,提前发现图定义里的语法错误。
  • 用户可以直接修改图定义代码,再重新渲染,自由度远高于修改一张图片。

这也解释了为什么文本化格式是关键设计决策。它把“最终产物”变成了“中间产物”,用户拿到的不是一张死图,而是一份可以继续编辑的工程文件。

4.3 上下文注入,才是决定生成质量的分水岭

单靠一段描述,模型能画出通用结构,但画不出你项目的真实细节。这里的关键是上下文。

如果把项目目录结构、关键文件摘要、甚至依赖关系注入到上下文里,Agent 生成的质量会明显上升。但把整个代码库丢给大模型既不现实,也没必要。更合理的做法是只注入与架构相关的部分:

  • 项目目录树,让模型了解模块组织方式。
  • 服务间的接口定义,帮助模型判断调用关系。
  • 部署配置里的服务列表,比如 Docker Compose 或 Kubernetes 的 service 名称。

不过,上下文注入同时也带来了隐私和成本的权衡。如果你的项目涉及敏感业务数据,使用外部大模型服务之前,一定要确认代码和描述信息会不会被发送到第三方。很多企业环境对此管控非常严格,这一点后面会说。

5. 把项目做到全球趋势榜第一,踩过这几个坑

项目上了榜单之后,有很多人问我是怎么做到的。技术上的实现反而不是最难的部分,最难的是做产品决策时不断踩坑又不断修正。这里把几个关键教训写出来,供想做同类项目的同学参考。

5.1 最大的坑:一上来就想做“万能工具”

项目早期,我总想让工具覆盖所有场景:微服务架构图、部署架构图、时序图、流程图,还想要各种自定义样式。结果就是每个场景都只做到 60 分,用户进来第一印象是“什么都能画,但什么都不好用”。

后来我把功能砍掉大半,只保留一个核心场景:用户描述系统,Agent 生成架构图。把这条链路做到 90 分,远比做十个 60 分的功能有价值。用户记住你的方式,不是因为你功能多,而是因为你在某个场景下真的能帮他把事办成。

5.2 忽略输出的可编辑性,等于砍掉用户一半的掌控感

早期版本我有一个错误认知:只要生成的图足够好,用户就会接受。后来发现,用户真正需要的不是一张“完美的图”,而是一张“能改的图”。

原因很简单:Agent 生成的架构图不可能 100% 符合用户脑海里的结构,用户拿到图之后必然要微调。如果输出只允许看图片,用户想改一个模块名都无从下手;但输出的是图定义代码,用户自己改两行再重新渲染,整个流程就顺了。

这也解释了为什么文本化格式是核心设计决策。它把“最终产物”变成了“中间产物”,用户拿到的是一份可编辑工程文件,而不是一张死图。

5.3 过度追求样式,反而偏离了架构图的核心价值

早期我把大量精力花在配色、布局、圆角、字体大小这些细节上。后来翻看用户反馈才发现,真正被反复提及的关键词是“结构对不对”“链路清不清楚”,几乎没有人因为配色夸过这个工具。

架构图的核心是关系,不是样式。样式只要足够清爽、不干扰信息传递就够了。把美化的工作留给渲染层,让模型专心做结构理解,这才是正确分工。一些看似不起眼的细节,比如节点对齐、间距控制,应该在渲染层自动处理。

5.4 沉淀下来的三句话

如果把这段经历压缩成三句话,我会这样说:

  • 先定义一个非常窄的核心场景,把这个场景彻底打通,比铺十个半成品场景更有价值。
  • 输出一定要可编辑、可版本化、能嵌进现有文档体系,工具才能从“试用”变成“使用”。
  • 优先保证迭代速度,而不是一次生成的完美度。用户愿意基于结果连续修改,才是真实使用信号。

6. 热度退去之后,这类工具的真实边界在哪里

趋势榜的热度总会过去,真正留下来的是工具和用户工作流之间的匹配度。架构图 Agent 的边界在哪里,值得认真说清楚。

6.1 它不能替代人的架构判断

架构图 Agent 是一种提效工具,不是架构决策工具。它可以把已有的、甚至比较模糊的信息组织成图,但它不会告诉你“这个系统的模块划分合不合理”“这里应该用消息队列还是直接调用”。这些判断仍然需要你对系统有真正的理解。

换句话说,它帮你把脑中的想法画出来,但不负责帮你验证这个想法是否正确。架构设计里的取舍、权衡、前瞻性判断,依然是人要做的事。

6.2 系统越复杂,越要“先拆后合”

如果系统有成百上千个微服务,直接让 Agent 生成一张总图,结果大概率是一团乱麻。在这种情况下,正确的用法是先按业务域拆分,每个域单独生成一张架构图,再生成一张域间关系总图。

这是一种“先拆后合”的策略。不要指望一个模型吞下整个系统,而是把复杂度拆成可控的粒度,每张图只表达一个层级的信息。架构图本来就是分层的,业务架构图、应用架构图、部署架构图本来就不应该画在同一张图里。

6.3 隐私、安全和团队协作,决定了它能不能长期用

把代码目录、接口定义、部署配置注入给外部大模型服务,这件事需要格外谨慎。

  • 如果是个人项目或公开代码库,问题不大。
  • 如果涉及公司核心业务、未公开的业务逻辑、客户数据,一定要先确认合规边界。
  • 企业内部如果允许私有化部署大模型,这会是更安全的选择。

这也是我认为这类工具在 To B 场景落地的最大约束之一。技术能力只是一层,安全合规和部署方式往往才是决定能不能长期使用的关键。

6.4 适合谁,不适合谁

场景是否适合说明
快速出系统草图、做技术方案评审适合大幅缩短从想法到图形的过程
给新同事做系统介绍适合快速生成一份可迭代的入门资料
团队文档放在代码仓库里适合图定义可版本化管理,随代码演进
对图形美学有极高要求的外宣场景不适合需要专业绘图工具和人工精细调整
含敏感数据且不能外传的企业环境不适合除非私有化部署,否则有数据合规风险
需要精确控制每个像素位置的出版级图表不适合Agent 的目标是表达结构,不是精细绘图

架构图正在变成一种“活的文档”

这次项目登上 GitHub 全球趋势榜第一,对我来说最值得记下的不是榜单数据,而是验证了一个判断:开发者真正需要的不是“更好的画图工具”,而是“更低成本的沟通工具”。

架构图 Agent 的长期价值在于,它把架构图从静态交付物变成了可以持续迭代的动态文档。你不需要在每次架构调整时花上几个小时重画一张图,只需要更新几行文字描述,再生成一次。架构图终于可以跟着代码一起演进。

如果你也想尝试这条路径,我的建议是找一个你手头最熟悉、结构最清楚的系统开始。先别追求完美,先用它跑通“描述 → 生成 → 迭代 → 嵌入文档”这个完整流程。等你体会到架构图不再过时的感觉之后,自然会理解这里面的效率杠杆到底在哪里。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询