
1. 从画图苦力到意图驱动这套工作流到底在解决什么画原理图这件事说穿了就是把脑子里的电路意图翻译成一套符号、网络和连线。但真正干过的人都知道这个翻译过程里塞满了大量重复劳动查数据手册确认引脚定义、翻参考设计找典型应用电路、手动摆放去耦电容、一根根拉电源和地线、给每个网络起名字、检查有没有悬空引脚。一个中等复杂度的板子光是这些机械操作就能吃掉你两三天时间而且越到后面越容易因为疲劳犯低级错误。我做了十多年硬件带过不少刚入行的工程师发现一个很普遍的规律初级工程师和资深工程师画同一块板子差距往往不在懂不懂电路而在脑子里有没有现成的模板库和知不知道哪些地方可以偷懒、哪些地方绝对不能偷懒。资深工程师画一个MCU最小系统去耦电容的容值组合、晶振的负载电容计算、复位电路的RC取值几乎是肌肉记忆十分钟就能摆完初级工程师则要翻半天手册摆完还不确定对不对。这套AI硬件原理图工作流要解决的就是这个经验差问题。它的核心思路不是让AI替你设计电路——那是不现实的也是危险的——而是把AI Agent当作一个随时在线的资深同事帮你完成三件事意图解析把我要做一个STM32F103的最小系统翻译成具体的元件清单和连接关系、模板检索与生成从知识库里调出经过验证的参考电路生成可导入的原理图文件、规则校验自动检查电源网络、去耦配置、引脚冲突等常见问题。关键词里出现的KiCad、立创EDA、AI Agent、原理图、PCB基本勾勒出了这套工作流的技术栈轮廓。KiCad和立创EDA是目前个人和小团队用得最多的两款EDA工具前者开源、脚本能力强后者中文生态好、元件库和立创商城打通。AI Agent则是这两年真正开始能干活的东西——不是那种只会聊天的而是能调用工具、读写文件、执行校验脚本的Agent。适合读这篇的人有三类一是刚入行、想快速建立工程化画图习惯的初级工程师二是想把自己脑子里的经验沉淀成可复用资产的资深工程师三是做硬件相关工具链开发、想了解AI Agent在EDA场景怎么落地的人。下面我会把整套工作流拆开讲包括为什么这么设计、每一步具体怎么做、以及我在实际跑这套流程时踩过的坑。2. 工具链选型为什么是KiCad加立创EDA而不是只用一个2.1 两款工具的分工逻辑很多人第一反应是选一个不就行了但实际跑下来KiCad和立创EDA在这套工作流里承担的是完全不同的角色硬要二选一会很难受。KiCad的优势在于文件格式开放、Python脚本生态成熟。它的原理图文件.kicad_sch本质上是结构化的S表达式文本AI Agent可以直接读写、程序化生成。你让Agent生成一个包含几十个元件的原理图它不需要去操作GUI直接输出符合格式的文本文件就行。而且KiCad有完整的Python API通过kicad-skip、kiutils这类库可以做批量网络检查、元件属性修改、BOM导出。这一点对自动化工作流来说是决定性的。立创EDA的优势在于元件库和供应链打通。它的元件库直接关联立创商城的库存和价格你画完原理图BOM里的元件能不能买到、多少钱、有没有现货一目了然。对于国内做小批量或者打样的团队这个价值非常大。而且立创EDA的3D模型库很全画完PCB能直接看3D预览。所以我的分工方案是用KiCad做原理图的生成和校验主战场用立创EDA做元件选型和最终交付。具体来说AI Agent在KiCad格式下生成和修改原理图完成规则校验后再通过网表netlist导入立创EDA在立创的库里做元件映射和替换最后出BOM和PCB。2.2 AI Agent的选型与能力边界Agent这块我用过几种方案最后稳定下来的组合是本地脚本能力 大模型推理 工具调用。纯靠大模型对话生成原理图是不靠谱的因为它会编造引脚号、编造不存在的元件型号。正确的做法是让Agent具备工具调用能力它需要能查询本地元件库确认某个型号存在、引脚定义是什么、能读取参考设计文件从历史项目里找相似电路、能执行校验脚本跑ERC检查、能写文件输出.kicad_sch。关键词里提到的AI Agent主流架构AI Agent搭建基于Rust语言的AI Agent这些反映的是大家在选型时的纠结。我的建议是不要为了用某个语言或框架而用。如果你只是做硬件工作流Python生态最成熟kiutils、skidl这些库都是现成的Agent用Python写最省事。Rust写Agent性能好但在EDA这个场景里瓶颈根本不在Agent本身的执行速度而在大模型的推理延迟和工具调用的往返上用Rust属于杀鸡用牛刀。Agent的能力边界要划清楚它能做的是检索组合校验不能做的是从零发明电路拓扑。你让它生成一个基于TPS5430的降压电路它可以去查TPS5430的典型应用电路、算出反馈电阻值、生成原理图。但你让它设计一个效率95%以上的5V转3.3V方案它给不出可靠的答案因为选型涉及成本、封装、散热、EMI等一堆工程权衡这些需要人来判断。2.3 环境准备中最容易忽略的三个细节第一个细节是KiCad版本。KiCad 6、7、8的文件格式有差异尤其是符号库的路径管理方式变过。如果你的Agent生成的原理图引用了错误的库路径打开时会一堆符号丢失。我的做法是固定一个版本目前用KiCad 8并且在Agent的配置里写死符号库的搜索路径。第二个细节是元件库的本地化。不要依赖在线库因为网络波动会让Agent的查询超时。把常用的符号库Device、MCU_ST_STM32、Regulator_Linear等下载到本地建一个索引文件Agent查库时直接查本地索引。这个索引可以用简单的JSON维护记录元件型号、所属库、引脚数、关键引脚定义。第三个细节是网表格式的兼容性。KiCad导出的网表默认是KiCad自己的格式导入立创EDA时需要选对格式立创支持导入KiCad网表但版本要对上。我实测下来用KiCad 8导出的网表立创EDA专业版能正常识别但标准版偶尔会丢网络名。建议在导入后做一次网络对比确认关键网络电源、地、复位、时钟没有丢失。3. 让Agent真正看懂电路意图提示词与知识库的配合3.1 意图解析的提示词设计Agent能不能生成靠谱的原理图八成取决于提示词怎么写。我见过太多人上来就一句帮我画一个STM32最小系统然后抱怨Agent生成的东西不能用。问题不在Agent在于你没给它足够的约束。我的提示词模板分四层功能描述层、约束条件层、参考设计层、输出格式层。功能描述层要具体到型号和核心功能。比如不要写画一个单片机电路要写生成STM32F103C8T6最小系统原理图包含8MHz晶振电路、复位电路、SWD调试接口、3.3V稳压电路、所有电源引脚的去耦电容。约束条件层要写清楚工程限制。比如去耦电容采用100nF和10uF组合每个电源引脚配一个100nF每两个电源引脚配一个10uF晶振负载电容按20pF计算实际取值需扣除PCB寄生电容复位电路采用10k上拉加100nF电容。参考设计层是让Agent去检索知识库里的相似电路。我会在知识库里放一批经过验证的参考设计按MCU最小系统电源转换接口电路传感器前端等分类。Agent接到任务后先检索最相似的参考设计在此基础上做修改而不是从零生成。输出格式层明确要求输出KiCad 8格式的.kicad_sch文件并且要求元件符号引用本地库路径。3.2 知识库的构建把经验变成可检索的资产知识库是这套工作流的灵魂。没有知识库Agent就是个只会说漂亮话的实习生有了知识库它才像个有几年经验的工程师。我的知识库分三个层次。第一层是元件知识记录每个常用元件的关键参数、引脚定义、典型应用电路。比如TPS5430这个降压芯片记录它的输入电压范围、输出电流、开关频率、反馈电压基准、典型应用电路图、外围元件计算公式。这些信息从数据手册里提取人工审核后入库。第二层是电路模板按功能分类存放经过验证的原理图片段。比如STM32最小系统模板RS485隔离收发模板锂电池充电管理模板DDR4内存接口模板关键词里提到了ddr4原理图这类高速接口的模板尤其有价值因为布线规则和端接电阻的配置很容易出错。每个模板都标注了适用场景、注意事项、已知问题。第三层是规则库记录设计规则和常见错误。比如所有电源引脚必须有去耦电容晶振走线下方不能走其他信号复位引脚不能悬空I2C总线需要上拉电阻M2螺丝孔的过孔和环宽要求关键词里提到了这个一般M2螺丝孔建议内径2.2mm、外径4.5mm左右具体看螺丝头型和安装方式。知识库的检索用向量数据库做语义检索配合关键词过滤。Agent接到任务后先用语义检索找相似模板再用关键词过滤确认元件型号匹配。3.3 一个完整的意图解析实例拿生成一个基于STC89C52RC的最小系统举例关键词里出现了stc89c52rc原理图这是很多教学场景常用的芯片。Agent的解析过程是这样的首先识别出核心元件是STC89C52RC这是一款8051内核的单片机40引脚DIP或44引脚QFP封装。然后检索知识库找到51单片机最小系统模板。模板里包含11.0592MHz晶振电路两个30pF负载电容、复位电路10uF电容加10k电阻、电源去耦每个电源引脚一个100nF、EA引脚上拉接VCC使能内部程序存储器、串口下载电路如果模板里有的话。Agent需要根据STC89C52RC的具体引脚定义调整模板。比如它的P0口是开漏输出如果模板里P0口接了上拉电阻阵列要保留如果没接要根据实际用途决定是否添加。这些细节Agent会从元件知识库里查。生成完成后Agent调用校验脚本检查所有电源引脚是否有去耦、晶振负载电容是否匹配、复位电路时间常数是否合理、有没有悬空引脚。校验通过后输出.kicad_sch文件。整个过程大概几十秒到几分钟取决于Agent的推理速度和知识库检索效率。相比人工从零画效率提升是数量级的而且生成的结果一致性更好——不会因为今天状态不好就漏掉某个去耦电容。4. 从原理图到PCB的衔接网表、封装与规则传递4.1 网表导出与元件映射原理图生成完下一步是导入PCB工具。这里的关键是网表——它描述了元件之间的连接关系是原理图和PCB之间的桥梁。KiCad导出网表后导入立创EDA时会遇到元件映射问题。KiCad的符号库和立创的元件库不是一一对应的同一个型号可能符号名不同、引脚编号方式不同。我的做法是维护一个映射表记录KiCad符号名到立创元件ID的对应关系。Agent在生成原理图时就按照映射表里的立创元件ID来命名元件这样导入时能自动匹配。映射表里还要记录封装信息。KiCad的封装库和立创的封装库也有差异尤其是国内常用的一些封装命名。比如0603电阻KiCad里叫R_0603_1608Metric立创里可能叫R0603。这些都要在映射表里对齐。4.2 封装选择的坑封装选择是初级工程师最容易踩坑的地方。我见过有人画完原理图导入PCB发现一半元件没有封装或者封装尺寸不对焊盘间距和实际元件对不上。Agent在这方面的价值是自动匹配封装并校验。知识库里记录每个元件的推荐封装Agent生成原理图时直接带上封装信息。同时校验脚本会检查封装的焊盘间距是否和元件引脚间距匹配、封装尺寸是否和元件本体尺寸匹配、有没有用到非标准封装。关键词里提到一般pcb中m2螺丝孔留多大过孔和环宽这是个很实际的问题。M2螺丝的头部直径一般是3.5到4.0mm所以螺丝孔的禁布区直径至少要4.5mm。如果做金属化孔内径建议2.2mmM2螺丝杆直径2.0mm加0.2mm余量外径建议4.0到4.5mm。如果是非金属化孔内径2.2mm外径可以小一些2.8到3.2mm。这些参数我会写进知识库的规则层Agent生成机械孔时会自动带上。4.3 设计规则的传递原理图阶段定义的很多规则需要传递到PCB阶段。比如差分对的阻抗要求、电源网络的线宽要求、关键信号的等长要求。我的做法是在原理图的网络命名上做文章。比如差分对命名为USB_D/USB_D-Agent在生成PCB规则时识别到这类命名就自动应用差分对规则。电源网络命名为VCC_3V3VCC_5V自动应用对应的线宽规则。关键词里提到allegro中如何将pcb的叠层线宽、线距等信息设置进cm中这反映的是规则传递的通用需求。不同工具的实现方式不同但思路是一样的在原理图阶段就把规则信息编码进去PCB阶段自动解析。Allegro用Constraint ManagerKiCad用Design Rules立创EDA用设计规则设置本质都是把规则从原理图传递到PCB。5. 实测中踩过的坑与排查链路5.1 Agent生成的原理图打不开符号库路径问题第一次跑通流程时Agent生成的.kicad_sch文件在KiCad里打开满屏都是问号所有符号都显示不出来。排查过程是这样的先看文件本身用文本编辑器打开发现符号引用写的是Device:R但KiCad找不到这个库。原因是KiCad 8的符号库路径配置在全局的sym-lib-table文件里Agent生成的文件没有正确引用这个配置。解决方案是在Agent的输出模板里强制使用完整的库路径引用或者在生成后自动执行一个脚本把符号引用替换成本地库的绝对路径。我最后用的是后者写了个Python脚本用kiutils库读取生成的原理图遍历所有符号把库引用替换成本地路径。5.2 网络名冲突电源网络被意外合并有一次生成一个包含多路电源的板子3.3V和5V网络在导入PCB后变成了同一个网络。排查发现是Agent在生成时把两个网络的标签都写成了VCC导致KiCad认为它们是同一个网络。这个坑的根因是网络命名不规范。解决方案是在提示词里强制要求网络命名规则电源网络必须带电压标识VCC_3V3、VCC_5V地网络统一用GND信号网络用功能名加序号。同时校验脚本增加一项检查有没有不同电压的网络用了相同名字。5.3 去耦电容漏配校验脚本的必要性Agent生成STM32最小系统时漏掉了两个电源引脚的去耦电容。人工检查很容易漏因为STM32F103有多个VDD和VSS引脚分散在符号的不同位置。这个问题的解决方案是强制校验。我写了个校验脚本读取原理图提取所有电源引脚检查每个引脚附近是否有去耦电容。检查逻辑是找到所有电源网络对每个电源网络统计连接的去耦电容数量如果少于电源引脚数量就报错。这个脚本后来成了工作流的标准环节每次生成原理图后自动跑一遍。类似的校验还有晶振电路是否完整、复位电路是否存在、SWD接口是否引出、I2C总线是否有上拉。5.4 立创EDA导入后元件丢失映射表不完整从KiCad导入立创EDA时有几个元件显示不出来。排查发现是映射表里没有这几个元件的对应关系。原因是Agent在生成时用了一个知识库里没有的元件型号Agent自己编了一个符号名。解决方案是限制Agent只能使用知识库里已有的元件。在提示词里明确要求如果需要的元件不在知识库里Agent应该报错并提示人工添加而不是自己编造。同时在Agent的工具调用里加一个检查生成原理图前先验证所有元件都在知识库里。6. 这套工作流的实际产出与适用边界6.1 实际产出从几小时到几十分钟跑通这套工作流后我实测了几个场景。一个STM32F103C8T6的最小系统从输入需求到生成可用的原理图大概15分钟其中大部分时间花在Agent推理和校验上。人工画同样的电路熟练工程师大概1到2小时初级工程师可能要大半天。一个包含电源转换、MCU、RS485接口、EEPROM存储的板子Agent生成加人工审核修改大概1小时。人工画的话资深工程师半天初级工程师一两天。效率提升是明显的但更重要的是一致性。Agent不会因为今天心情不好就漏掉去耦电容不会因为赶时间就跳过校验。生成的结果每次都经过同样的规则检查质量稳定。6.2 适用边界什么能做什么不能做这套工作流适合有成熟参考设计的常规电路。MCU最小系统、电源转换、接口电路、传感器前端、存储电路这些都有大量经过验证的参考设计Agent可以在此基础上快速生成。不适合需要创新拓扑的电路。比如你要设计一个新型的开关电源拓扑或者一个特殊的模拟前端这些没有现成参考设计Agent帮不上忙还是得靠人。也不适合高速数字电路的关键部分。DDR4内存接口、PCIe、USB 3.0这些虽然关键词里提到了ddr4原理图但这类电路的关键在于布线规则和信号完整性原理图阶段能做的有限。Agent可以帮你生成连接关系但端接电阻的取值、走线长度匹配、阻抗控制这些需要人工仔细设计。6.3 后续可以扩展的方向这套工作流目前主要覆盖原理图生成和校验。后续可以扩展的方向有几个一是自动生成PCB布局建议根据电路功能模块划分布局区域二是自动生成测试点根据网络重要性在关键信号上添加测试点三是与仿真工具联动生成原理图后自动跑一次SPICE仿真验证关键节点的电压电流。还有一个方向是知识库的持续积累。每次人工审核修改后的原理图都可以反哺回知识库让Agent下次生成得更准。这个反馈闭环跑起来后工作流会越用越顺手。我个人在实际操作中的体会是这套工作流最大的价值不是省时间而是把资深工程师的经验固化下来。以前这些经验在资深工程师脑子里带新人的时候靠口传心授效率低还容易遗漏。现在把经验写进知识库和规则库Agent每次生成都带着这些经验新人拿到生成结果对照着看学得也快。这才是这套工作流对团队真正的意义。