"真的太震撼了"——当我把一个维护了七八年的老系统代码库扔给智能体,让它先做模块边界识别和依赖扫描,半小时后拿回一张带调用频次、异常链路、循环依赖标注的架构现状图时,我承认自己的第一反应不是"AI真厉害",而是"我这么多年手动画架构图的晚上到底在干什么"。
这个项目标题描述的是我最近的实测结果,也代表了一个越来越明显的事实:靠纯人工去读代码、画图、推演演进方向来做架构分析和设计,效率和深度都已经跟不上系统复杂度了。大模型负责读懂语义、归纳规律,智能体负责自动执行多步骤任务,两者结合之后,不再只是"问答式"地聊架构,而是真的能参与从现状梳理、问题诊断到方案设计的完整工作流。这篇文章就是把我这几个月的方法、踩坑、工具选型,原原本本分享出来,给正准备在架构分析设计领域引入大模型+智能体的团队和个人一个可落地的参考。
1. 为什么架构分析与设计必须借助大模型+智能体
1.1 传统架构分析的核心痛点
架构分析这件事,听起来高大上,实际上做过的都知道,它是由大量"低创造性、高重复性"的脏活累活堆起来的。我举几个真实场景:接手一套陌生的系统,要先搞清楚服务部署拓扑、模块依赖方向、数据库表关系、消息队列流转路径,没有任何文档的情况下,最快的方式是一个文件一个文件地看入口、查调用链;做技术债评估,需要扫描全部代码,统计循环依赖、上帝类、超长方法、重复代码;分析某个业务链路的性能瓶颈,要把整条链路从网关到数据库的每一步日志都过一遍。
这些事情每一步单独看都不难,但因为涉及的范围太大,人工做极其耗时。更难受的是,架构分析不是一次性的,系统每迭代一版,架构现状就变一次,文档和图永远跟不上代码。很多团队最后放弃维护架构图,不是因为不重视,而是因为维护成本太高。
1.2 大模型+智能体为什么恰好切中这些痛点
大模型解决的是"理解语义"的问题。代码本质上是对业务逻辑的文字化表达,大模型在代码理解上的能力已经非常强,它不仅能识别语法结构,还能从命名、注释、调用关系里推断出模块的业务含义。这份能力用在架构分析上,等于给团队加了一个"读过全部代码的资深工程师"。
智能体解决的是"自动执行流程"的问题。架构分析不是一个单次询问就能完成的任务,它包含多个环节:拉取代码、解析结构、构建依赖图、识别模块边界、检测异常链路、生成报告。用传统方式,每个环节都要人手动操作;用智能体方式,你可以把整个流程编排成一个多步骤任务,让它自动挨个完成。这就像把一整套"架构分析SOP"交给你手下最靠谱的实习生,他按照步骤跑,每一步做完会把结果交给下一步。
两者结合,本质上是把"能理解代码的AI"和"能自己跑任务的动作系统"拼在一起,形成完整的闭环。你不再需要问一句答一句,而是直接提出目标,它自己拆解、执行、汇总、交付。
1.3 适合谁用,用在什么场景
我先说结论:只要是靠写代码吃饭的人,这个组合迟早都要用,区别只是深度不同。最适合优先引入的人群有三类——架构师和技术负责人,日常需要评估方案、梳理系统现状、控制技术债,这类人群的收益最大,因为架构分析本来就是他们的高频刚需;中大型项目的开发者,负责的模块跨多个服务、经常需要理解别人代码的人,智能体可以帮你快速建立"全局地图";技术管理者,不写代码但需要了解系统全貌、做技术决策的人,可以把智能体生成的架构报告作为决策依据。
场景上,我已经实测过四个方向:存量系统架构梳理与重建文档、新项目架构方案推演与对比、技术债盘点与重构优先级排序、代码评审时的架构视角补充。每个方向跑出来的效果都比我预期的好,后面我会逐步展开。
2. 工具选型解析:模型、智能体框架与工作流怎么搭
2.1 底座模型选择:通用性与本地化怎么权衡
做架构分析,底座模型的语义理解能力是核心。我测试过市面上主流的几个模型,包括在线API形式的通用大模型和可以私有化部署的开源模型,结论是:如果数据合规允许,第一优先用能力最强的在线模型,因为架构分析需要的是长文本理解、多级归纳推理、代码解析能力,这些正是头部模型的强项;如果代码有保密要求,必须私有化部署,那么优先考虑参数规模较大且在代码基准上表现较好的开源模型,配合高质量的知识库做增强。
这里有三个实测参数值得参考。第一是上下文长度,至少需要能处理32K以上token的输入,因为要喂入多个核心代码文件,短上下文的模型做不到全局关联。第二是代码理解能力,通用聊天能力强不代表代码理解能力强,最好用架构分析实际场景跑一遍看效果。第三是输出稳定性,架构分析经常要求生成结构化JSON或Markdown,模型输出格式不稳定会极大增加后处理成本。
我用表格整理一下实测下来的选型参考:
| 场景 | 模型选择策略 | 实测体验 |
|---|---|---|
| 代码可外发、追求最强效果 | 在线API的头部大模型 | 分析质量高,推理链清晰,但需注意API成本 |
| 代码保密、需本地部署 | 开源大模型私有化部署 | 参数足够大时效果接近在线模型,但需要GPU资源 |
| 快速原型验证 | 在线API的轻量模型 | 响应快、成本低,适合跑通流程后再换强模型 |
| 混合架构 | 核心分析用强模型,简单任务用轻量模型 | 性价比最高的方式,推荐长期使用的团队这么搭 |
2.2 智能体框架怎么选:从零写还是用现成平台
智能体框架这块,市面上的选择非常多,从零用Python自己写、用开源的Agent框架、到直接使用集成平台都有。我的建议很直接:如果没有特殊定制需求,优先用现成的智能体平台或成熟的开源框架,不要重复造轮子。
原因很简单。智能体最核心的能力是任务编排和工具调用,成熟框架已经解决了长期记忆、多步推理、工具注册、结果校验这些通用问题,你直接往里面塞架构分析的Prompt和工具函数就行。自己写一套,等于要同时维护框架层和应用层,工作量和稳定性都划不来。
我用Python写过一个最小智能体原型,核心代码大概长这样:
# 一个最简架构分析智能体的核心结构 from agent_core import Agent, ToolRegistry registry = ToolRegistry() # 注册架构分析需要的工具 @registry.register("scan_dependencies") def scan_dependencies(module_path): # 扫描模块依赖关系,返回依赖列表 return analyze_deps(module_path) @registry.register("detect_cycles") def detect_cycles(dep_graph): # 在依赖图中检测循环依赖 return find_cycles(dep_graph) @registry.register("generate_report") def generate_report(analysis_data): # 将分析数据整理为结构化报告 return format_arch_report(analysis_data) # 定义智能体任务:扫描并分析某个服务的架构 agent = Agent( system_prompt="你是一名资深架构师,负责分析系统架构现状并识别问题。", tools=[scan_dependencies, detect_cycles, generate_report] ) result = agent.run("分析 payment-service 的模块依赖,识别循环依赖并生成架构报告")跑通之后你就会发现,智能体的价值不只是执行我们预先定义的步骤,它还能根据中途结果改变后续策略,比如发现某个模块依赖特别多,就自动深入分析那个模块的内部结构。这种动态调整能力是传统脚本无法提供的。
2.3 一个已实测的组合配置
我在真实项目里用的是一套混合配置,分享出来供参考。底座模型部分,我搭了一个"强弱组合"——核心推理任务使用能力最强的在线大模型,负责模块语义识别、依赖方向判断、问题归纳这类需要深度理解的环节;批量扫描、格式转换、初步筛选这类重复性任务使用轻量模型,成本更低、响应更快,不至于让一次分析跑出很高的API费用。
智能体框架部分,我用的是开源框架配合自研工具函数。工具函数承担的是"确定性操作",比如静态代码解析、依赖图生成、指标计算,这些不能靠大模型"猜",必须用代码精确计算;智能体负责的是"非确定性决策",比如判断两个看似无关的模块是否存在隐式耦合、决定哪些异常链路需要优先深入分析。确定性和非确定性分离,是这套架构稳定性的关键。
最后是工作流调度。我建了一个独立的调度服务,定时触发全量分析,代码提交触发增量分析,分析结果统一落库,并提供查询接口给团队使用。整体链路是:触发任务 -> 智能体解析任务目标 -> 调用工具采集数据 -> 大模型分析推理 -> 结果结构化落库 -> 通知相关人员。整套流程跑下来,一次中型系统的全量架构分析,从原来的人工一周,压缩到智能体两小时左右,这个效率提升是肉眼可见的。
3. 架构分析实操演练:从零开始让你的智能体读懂系统
3.1 准备工作:给智能体一个干净的起点
很多人一开始就犯错误——把整个代码仓库一股脑地塞给智能体,期望它能自己搞清楚一切。实际效果却是灾难性的:上下文爆炸、信息混乱、分析质量断崖式下跌。架构分析不是"看得越多越好",而是"该看的看全、不该看的一眼都不要看"。
我的操作方法是分三层准备。第一层是代码目录结构,把仓库的顶层目录树、主要模块的README、核心配置清单整理成摘要,让智能体先建立"骨架认知";第二层是关键入口文件,针对每个模块选出入口、数据模型、核心service类这三个级别的代表文件,数量控制在每个模块5个以内;第三层是运行态信息,包括部署清单、环境配置、外部依赖清单,这部分帮助智能体理解系统的运行时全貌。
这里有个重要的私人心得:不要只喂代码,要喂"代码+元信息"的组合。我在Prompt里固定包含一个上下文头,内容是项目的背景说明、技术栈、核心业务概念和已知的领域术语表。比如分析支付系统时,先告诉智能体"这里的Account是指账户而不是账号""这里的Settlement是指清算而非结算",模型在解读代码语义时的准确率会显著提升。
3.2 分阶段任务设计:一次完整的松耦合分析示例
我以分析一个电商系统的订单服务为例,展示智能体的完整任务流。分成五个阶段,每个阶段定义清晰的目标、输入、输出和检查项。
第一阶段是"全局摸底"。目标是把订单服务的整体结构画出来。输入是服务目录结构和顶层配置文件。我让智能体输出四类信息:模块清单及各模块一句话职责说明、服务内外的依赖方向、数据库表与业务动作的对应关系、外部系统接口调用点。这个阶段跑出来的结果,基本等价于传统做法里"读一周代码后画出的系统概览图"。
第二阶段是"边界识别"。目标是划分限界上下文。输入是第一阶段的输出加上核心业务代码文件。我要求智能体找出哪些类属于同一业务能力、哪些调用关系存在跨边界、哪些数据被多个模块共享。这个环节非常考验模型的归纳能力,我在实测中发现,明确要求模型"先列出业务事件清单,再根据事件归属划分边界",准确率远高于直接让它"找模块边界"。
第三阶段是"依赖方向重建"。目标是还原真实的调用链,而不是代码里看起来的调用关系。这里我特意要求智能体结合运行日志来交叉验证,因为有些动态调用、反射调用、消息驱动调用,静态代码里根本看不出来。我让智能体输出一张"从入口事件到数据库操作"的完整链路表,标注每一步的超时配置、失败处理策略、是否异步。
第四阶段是"风险点扫描"。目标是技术债和隐患清单。我预设了七类重点扫描项:循环依赖、包依赖倒置、过度耦合的上帝模块、超长事务边界、硬编码的外部依赖、吞异常的空catch块、缺少幂等保护的重复执行点。智能体结合代码语义识别这些问题的能力,实测准确率在80%以上,剩余20%需要人工确认,但已经比纯静态扫描工具智能太多了。
第五阶段是"架构报告生成"。最后一步是把前面所有结果汇总成标准报告。我要求智能体必须按固定结构输出:架构现状概要、模块职责清单、依赖链路图(用文字形式描述)、风险分布矩阵、改进建议优先级。输出直接对接团队的文档系统,基本不用二次加工。
每个阶段之间都有校验节点,智能体需要先汇报本次阶段的关键发现,确认后再进入下一阶段。这个设计避免了"一路分析到最后发现起点就错了"的惨剧。
3.3 输出物怎么变成真正有用的架构资产
智能体跑完五阶段,产出的是原始报告,这还不能直接算架构资产。我做了三个加工步骤:第一,把模块清单与系统中的实际代码路径做映射,保证每条分析结论都能定位到具体文件,不然团队没法根据建议去改代码;第二,把风险清单生成带优先级的"债务还清路线图",拆成可以在迭代节奏里逐步消化的小任务,而不是扔一份吓人的百页报告;第三,让智能体为关键结论生成"证据链",引用代码片段、运行日志、监控数据来支撑结论,方便汇报时经得起追问。
这套做法在实际交付中的反馈很好。我们给管理层看的是一页纸的架构健康度总览,给开发团队看的是带代码定位的问题清单,给架构委员会看的是完整的依赖分析和边界标注。一份原始报告,通过加工变成三个层级的信息产品,智能体的产出就能真正进入团队工作流,而不是看完就扔。
4. 架构设计辅助进阶:让智能体从"分析现状"走向"设计方案"
4.1 从需求到候选架构:用智能体做方案推演
分析现状只是第一步,真正更有价值的部分,是让智能体参与新架构方案的设计推演。
我的做法是把它设计成"对抗性评审"模式。比如我们要设计一个高并发订单状态机的存储方案,我先让智能体扮演"方案提出者",基于需求生成一套候选方案;然后换一套Prompt,让它扮演"严格评审者",对刚才的方案提出质疑。质疑视角包括:极端情况下的数据一致性如何处理、读写比例变化时的性能表现、与现有基础设施的兼容性、团队技术能力的可维护性。两轮下来,方案会被打磨得比直接问"给我一个方案"扎实得多。
这个方法背后的逻辑很简单:单一视角一定会漏掉盲区,但要求模型切换不同角色视角去审视同一个问题,它就等于同时扮演了"敢想的设计师"和"挑剔的评审员"。我在一个消息中间件选型项目里,用这个方法发现了两处单靠人工讨论没有暴露的问题——一处是消息积压场景下的顺序性保障缺口,一处是两个候选方案的迁移成本被严重低估。这两处问题当时都进入了最终评审议题,避免了上线后踩坑。
4.2 ADR辅助生成:让架构决策连续可追溯
架构决策记录在大多数团队里都是稀缺品,因为工程师做完了决策写文档的意愿很低。智能体可以帮助改变这个局面。
我让智能体在做完方案评估后自动生成ADR文档,包含五个固定段落:决策背景与动机、决策内容与核心观点、当时考虑过的备选方案、权衡过程与选择理由、决策影响及后续可能需要的调整信号。有意思的是,模型在写"权衡过程"和"备选方案"时,经常能补充出我们在讨论中提过但没记录完整的细节,这比人工事后凭记忆补写的记录要全得多。
ADR的积累价值,我最近一次体会特别深。我们在三个月后回看当初的架构决策时,发现有一条当时的假设已经不再成立,五分钟后就能定位到是哪一次决策、哪一条假设出的问题。没有ADR,这可能又是一次"重读全部代码才能回忆起当时为什么这么设计"的时间黑洞。
4.3 让智能体评估自己产出的设计方案
这个环节是我强烈推荐大家尝试的。当我让智能体输出一个架构方案后,我会追加一个Promot,要求它从六个维度对自己的方案打分:功能覆盖度、性能合理性、可扩展性、可测试性、部署复杂度、团队学习成本。每个维度必须给出打分依据和扣分点。
实测下来,模型的自评虽然偶尔会偏乐观,但"扣分点和依据"这部分非常有参考价值,因为它通常对应着方案中经不起深究的薄弱处。我总结了一个偏乐观修正系数:如果模型自评某个方案85分,实际落地时面临的问题密度大约相当于一个75分的方案。所以不要完全信任分数,但要认真对待自评里提到的每一条风险。
最有用的是让多个不同模型对同一个方案进行交叉评估。每个模型的知识覆盖面和偏见不一样,A模型觉得OK的地方B模型会提出完全不同视角的质疑,综合几轮反馈,方案的盲区会被削得很薄。我现在所有重要架构决策,基本都会跑一轮"多模型交叉评审",虽然成本增加了一些,但换来的是更低的事后返工概率。
5. 落地过程中的坑与排查:我的实战纠错记录
5.1 上下文窗口再大也不够用,怎么办
这是我遇到的第一个拦路虎。系统代码稍微多一点,很快就超过上下文窗口限制。一开始我试图靠加大窗口解决问题,但很快发现token多了之后模型的注意力会被稀释,前面的信息到后面就"忘了",效果反而更差。
最终解法是"分而治之加逐层合并"。先把系统拆成模块级小块分别分析,每个模块单独跑一轮"深度分析",产出模块摘要;然后把模块摘要合并,跑一轮"全局关联分析";最后把全局分析结果返回去,针对关键模块再做一次定向深挖。这个过程模拟的就是人类架构师的工作方式——先看局部再拼整体、再从整体回到局部。经过这种多轮收敛,再大的系统也能在有限上下文里完成分析。
5.2 幻觉问题怎么治理
智能体在做架构分析时,偶尔会一本正经地编造不存在的依赖关系或调用路径。这个问题如果不治理,分析报告的可信度会清零。
我用了三道防线。第一道是"证据绑定",要求模型输出任何结构性结论时,都必须附带对应的文件路径和行号作为证据,没有证据的话宁可标注"待确认";第二道是"确定性工具前置",依赖关系这类可以用工具精确算出来的东西,绝对不让模型猜测,先算好再让模型基于准确数据做分析;第三道是"关键结论人工抽检",每次分析报告交付前,我会随机抽5条结论回代码里验证,如果准确率低于90%,就把报告退回让智能体重跑或换更强大的模型。
这三道防线跑下来,幻觉问题从"频繁发生"降到了"偶尔出现且都能被识别",基本达到了可用置信度。
5.3 权限与私有化:代码安全是底线
架构分析需要读取代码,而代码是所有公司的核心资产。我在系统设计上做了严格的安全分层:全量分析只跑在内网私有化环境,代码不出内网;使用外部API的场景,只允许输入抽象后的模块信息和脱敏后的架构数据,绝不传原始代码;智能体工具函数的执行账号采用最小权限,只能读代码仓库和架构分析专用的库表,不能触碰生产环境和敏感配置;所有分析日志留痕,支持追溯某次分析用到了哪些数据。
合规这块我多提醒一句:如果你的团队所在行业有数据出境或数据安全相关合规要求,务必在引入大模型前找法务评估。架构分析涉及的数据范围太大,出事就是大事,千万不要为了效率冒险。
5.4 团队落地:真正难的是流程设计
最后这个坑,是几乎所有AI工具落地的共同难点——技术上行得通,流程上推不动。我见过不少团队尝试让开发者使用智能体做架构分析,结果用了一次就放弃了,核心原因不是工具不好用,而是没有预设的流程配合。
我的经验是不要一上来就追求"全自动",而是设计成"人机协作"模式。第一周先让智能体做辅助——开发者自己分析完之后,用智能体结果交叉验证;第二周开始让智能体先跑一版,开发者负责审阅修正;第三周才让智能体独立出初稿,开发者只做抽检和校准。逐步建立信任,比强行推行效果好得多。同时,把智能体产出的报告纳入已有的架构评审流程,不给团队增加额外负担,让同样的会议变得更高效,团队自然就愿意用了。
5.5 成本控制与资源规划
最后说说钱的问题。智能体架构分析跑一次真实系统,token消耗比我预期的大得多。一次中型系统全量分析,高峰期单日token消耗量能达到数千万级别。我给团队设定的成本基线是:普通模块分析用轻量模型,核心推理环节才调用强模型;全量和增量分析分开计费、设置每日用量上限;每周做一次token消耗审计,分析每个环节的成本占比。
实测下来,通过强弱模型混用加定时调度,可以把成本降低到全用强模型的四分之一左右,效果上几乎无损。成本控制这件事,从第一天就要做,不要等问题出现了再补救。
6. 实际效果复盘:几个典型的应用场景实测
6.1 存量系统梳理:从噩梦到日常
我们有一套支撑核心业务的老系统,代码超过百万行,没有架构文档,了解全部细节的资深同事已经离职了两位。之前每次理新的需求,都要靠"人肉搜索引擎"翻代码。
用智能体跑完后,只花了两天就产出了完整架构地图,包括21个模块的职责说明、1473条依赖关系识别、38处循环依赖标注、以及一份按优先级排序的重构建议清单。最让我惊讶的是,智能体在梳理过程中自动识别出了一个团队内部公认但从未被文档记录过的"非正式约定"——某个模块虽然名义上独立,但实际被其他四个模块直接依赖了内部实现细节,这在传统静态分析里很难看出来。有了这份梳理底稿,后续每次需求开发前,我们先用智能体查一下相关模块的架构现状,再动手写代码,开发效率明显提升,新人也靠它快速建立系统全局认知。
6.2 新项目架构设计:三个方案不如一次推演
最近在做新项目的架构设计时,我们把需求文档和约束条件交给智能体,要求输出三个候选架构方案及对比分析。传统流程里,三个方案至少需要两个架构师花一周时间去设计讨论,智能体在三个小时内给出了初版,而且方案的完整性超出了我的预期——它给出了我们在初步讨论中没想到的两种组合模式。
更有价值的是随后的人机协作推演。我们团队在初版基础上做了调整,再把调整后的方案扔回去让智能体做对抗性评审,结果它找出了三个我们都没发现的设计矛盾点。其中一个是关于缓存一致性的假设冲突,两个方案环节分别依赖了不同的缓存策略,拼接在一起会产生数据不一致。整个过程下来,设计周期从一周压缩到两天,且评审质量反而提升了。
6.3 技术债治理:从凭感觉到连续监测
过去我们讨论技术债基本靠拍脑袋,凭各位同事对代码的印象吵来吵去。现在我把智能体生成的架构健康度指标作为团队周会的固定议题——每次展示模块依赖数量变化、循环依赖增减情况、核心模块的复杂度趋势。这些数据不需要有人专门维护,代码一提交,增量分析就自动更新。
执行一段时间后,团队的技术债治理从"偶尔集中爆发"变成了"持续小步还债"。每个迭代都会顺手消化几个风险点,因为没有人的主观情绪在里面,大家看到的是客观的数据趋势,讨论更聚焦,不会陷入"我觉得这块不烂""我觉得挺烂的"的无效争论。
7. 未来可以往哪走
这个方向远没到天花板,我自己测试下来,还有几个值得深耕的方向。
第一个方向是多智能体协作做架构治理。比如一个智能体专职扫描架构违背,一个智能体专职分析线上监控数据里的异常链路,一个智能体专职跟踪技术债的清理进度,三个智能体定期同步意见,形成"架构守护委员会"。我现在已经在做原型验证,目前的效果是早期版本能自主发现架构偏离并生成告警,只等准确率再提升一些,就能让它真正承担架构守护的职责。
第二个方向是把智能体接入架构评审的整个生命周期。根据我们的经验,未来的架构评审流程应该是:需求进来后,智能体先快速检索存量系统相关现状,评估改动影响面;方案出来后,智能体先做一轮可行性自检;评审会议上,智能体作为"沉默的记录员"自动生成决策和待办;会议结束后,智能体跟踪待办落地情况,回填ADR记录。
第三个方向是跨系统架构分析。现在做的都是单系统内部,但真实企业往往有几十个系统互相调用。智能体可以跨系统分析依赖、识别非对称链路、发现隐式的分布式耦合。这对体感上更像"企业架构师"的定位,价值也会上一个台阶。
最后分享一个我的经验
踩过这么多坑之后,我最想说的其实是:不要把大模型和智能体只当工具用,要把它当成你团队里那个最勤奋、最好学的初级架构师。它像一张白纸,你教它你们的业务规则和系统背景,它给你干活;你及时反馈纠正它的错误,它下次就会做得更好;你给它明确的角色定位和输出标准,它的产出质量会稳定在一个很高的水平线上。
同时也要管理好预期,它不会是"灵光一现的天才",但绝对是"不知疲倦的苦力"——那些消耗精力的、重复性的、需要理清因果关系的工作,交给它做最合适。人的精力应该放到判断、权衡、解释和决策上。架构师最值钱的能力是"在模糊中做出正确判断",而智能体最有价值的能力是"用极低成本把模糊变成清晰"。两者配合,这才是未来架构工作的真实形态。