PCBRouteAgent:迈向PCB布线工程师的LLM智能体 PCBRouteAgent: How Close Are LLM Agents to Becoming PCB Routing Engineers?
全局规划+局部执行的双层LLM智能体闭环布线,247块PCB上大幅超越现有基线
前置知识
PCB布线与电气网络(Net)
PCB 制造前需把原理图的连接关系转成物理铜线。net(网络)是一组按原理图必须电气连通的引脚集合;布线就是为每个 net 的 pad(焊盘)用铜走线和过孔连通成网,同时与其他 net 保持电气隔离,并满足线宽、间距、板边距离等设计规则,还要尽量缩短线长、减少过孔数。部分信号还有差分对等特殊约束,走线要避开螺丝孔和禁布区等障碍。
本文任务就是自动布线,理解 net、pad、过孔与设计规则是读懂任务定义、输入输出和 Clean Pass 指标的前提。
设计规则检查(DRC)与违规(DRV)
布线完成后由 EDA 引擎自动检查所有几何约束:走线间距、线宽、过孔尺寸、与板边距离等。错误级违规意味着板子无法制造或有短路风险,警告级则不影响制造。论文中 Clean Pass 要求全部目标连接完成且 KiCad 报告零错误级违规,DRV 指标即每块板平均的错误级违规计数。
论文的核心指标 Clean Pass 与 DRV 都由 KiCad 官方评估器判定而非智能体自评,这是结果可信度的关键,也是理解各表格数据的基础。
全局-详细布线分解(Global vs. Detailed Routing)
IC 与 PCB 布线的经典两阶段分解:全局布线决定粗粒度的连接拓扑、路径走廊与层分配;详细布线在其指导下完成精确的几何实现(具体走线形状与过孔位置)。OpenROAD、TritonRoute 等工业流程均采用该结构,用以避免一次性求解整个耦合的物理设计问题。
PCBRouteAgent 的架构直接移植这一思想:LLM 扮演全局规划者,KiCad 原生引擎扮演详细执行者,两者用反馈闭环连接。
推挤路由(Push-and-Shove, PNS)
KiCad 内置的交互式布线引擎:新走线遇到障碍时可以推开已有走线(shove)、绕行障碍(walkaround),并自动维持间距等设计规则。本文执行器不自己绘制走线几何,而是把走廊内选定的 waypoint 作为目标,调用 PNS 完成从当前位置到目标的物理实现。
理解 PNS 才能明白执行器的有界本地恢复为何有效、失败反馈为何来自真实引擎,以及最终板子为何能直接被 KiCad 官方评估器检验。
最小生成树(MST)
给定带权无向图,找一棵连接所有顶点且总边权最小的树。本文把一个 net 内部未连通的 pad 簇作为顶点、簇间候选连接作为边,以簇间最小欧氏距离为权重、层不匹配额外加惩罚,构建加权图 $G_n=(C_n, E_n, w_n)$,用 MST 得到 $K_n-1$ 条连接任务的初始拓扑,避免穷举簇间所有连接组合。
MST 是 Global Routing Planner 初始化连接拓扑的核心算法,理解它才能分清哪些决策来自确定性算法、哪些留给 LLM 修订。
LLM 智能体与结构化反馈
LLM 智能体通过多轮思考、调用工具、观察结果的循环完成长任务(如 ReAct、Reflexion 范式)。关键工程点在于把环境反馈表示成结构化证据而非二值成败,让模型能定位问题根源并做针对性修正,同时通过输出格式校验保证结构化返回可被程序合并执行。
本文失败时返回结构化执行证据并驱动 guide patch 重规划,正是该模式在几何布线域的落地,读懂它才能理解反馈闭环的运作方式。
研究动机
PCB 自动布线已有几十年历史,但复杂板卡仍离不开人工干预。规则路由器如 Freerouting、KiCadRoutingTools 用启发式搜索加代价函数自动走线,但在真实设计上常需仔细调参与手工修补:在 PCBWorld-Bench 的 D3-C 子集(10 块超过 100 个 pad 的大板)上,Freerouting 平均每板产生 32.0 个错误级设计规则违规,Clean Pass 率仅 30%。LLM 智能体路线同样受限:PCBWorld 交互式智能体用 GPT-5.4 在 D3-A 上 Clean Pass 只有 42%,在 D3-B 上为 0%,仍落后于规则路由器。根本问题在于:向智能体开放原生布线操作和执行反馈,并不等于它具备板级协调能力——智能体必须决定连接优先级、在相互竞争的 net 之间分配有限的布线空间、判断何时必须换层;这些决策相互耦合:局部可行的走线可能堵死后续连接,而反复失败的连接需要的往往是改拓扑或换层,而不是再试一次本地绕行。智能体还需区分哪些困难可以就地解决、哪些必须上升为全局策略修订。
本文的目标是本文的目标是构建一个像人类布线工程师那样协调全局策略与局部执行的多模态 LLM 智能体 PCBRouteAgent,在 PCBWorld-Bench 的 247 块板(128 块合成板加 119 块真实板,覆盖 D2、D3-A、D3-B、D3-C 四个测试集)上,以 KiCad 官方引擎评估为准:让全部必要连接完成且错误级违规为零(即 Clean Pass),同时控制线长与过孔数等物理成本。可量化的目标包括:在 D2 与 D3-B 上达到接近 100% 的 Clean Pass,在 D3-A 上超过所有已评估基线,在最难的真实大板 D3-C 上把平均每板 DRV 从 Freerouting 的 32.0 大幅压低;并通过用同一个 Claude Haiku 5.5 骨干分别驱动 PCBWorld 框架与本文框架做对照实验,证明性能增益来自规划-执行架构本身,而非单纯换用更强的模型。
与已有工作不同的是,本文的独特切入点有三层。第一,抽象层级:PCBWorld 的交互式智能体让 LLM 逐步操作布线动作(247 块板共 22,529 次模型调用),本文让 LLM 只输出高层 routing guide——连接拓扑、布线顺序、走廊、换层候选区——几何实现完全交给 KiCad 原生 PNS 引擎,模型调用降至 172 次。第二,失败处理分层:几何层困难先由有界本地恢复(walkaround、shove、备选 waypoint、网格 A* 绕行、stage 回退、换锚点)就地消化,恢复预算耗尽后才把结构化失败证据上报给多模态 LLM,避免一失败就触发昂贵的全局重规划。第三,修订方式:重规划以 guide patch 形式只改受影响部分、保留已接受的走线,兼顾板级一致性与效率,且 patch 必须通过对簇、走廊、层引用的合法性与一致性校验后才能合并执行。
核心方法
直觉来自人类工程师:先定全局策略(哪些连接优先、走哪个区域、用哪层铜),再逐条实现,遇到堵死就回头改策略。PCBRouteAgent 据此拆成两个组件并用反馈闭环连接。Global Routing Planner 是多模态 LLM,消费四张板图(整体布局、正面铜、背面铜、未连通需求)加结构化文本 $S$(pad 几何、层、net 归属、连通簇、规则),产出 routing guide:基于 MST 的连接拓扑、按估计长度排序的布线顺序、有序走廊 $Q_e$、过孔候选区 $V_e$。Detailed Routing Executor 把 guide 编译成任务,在走廊重叠区选 waypoint、在换层区内试过孔,逐段调用 KiCad 原生 PNS 引擎走线;失败先做有界本地恢复,耗尽则生成结构化反馈 $F_e$ 回传。Planner 依据 $\Delta G_t = M_\theta(I, S, G_t, D_t, K_t; P_{sys}, P_{plan})$ 生成 guide patch,校验合并后继续执行,直到全部连通、无可调度任务或预算耗尽,最终由官方评估器判定成败。
核心创新是决策上移、执行下放、证据串联。与 PCBWorld 交互式智能体的本质区别在抽象层级:后者让 LLM 直接操纵每一步布线动作,前者让 LLM 输出可校验的结构化 guide patch,几何难题由 PNS 引擎与有界本地恢复消化——同样的 Haiku 5.5 骨干在 D2/D3-A/D3-B/D3-C 上 Clean Pass 提升 36.7、58.6、80、10 个百分点,且模型调用减少约 131 倍,证明增益来自框架结构。与规则路由器的本质区别在可解释的全局协调:net 顺序、走廊、换层决策显式可查,失败后能定向修订而非整板重跑。第二个关键设计是分层失败处理:本地恢复(walkaround、shove、备选 waypoint、网格 A* 绕行、最多 2 次 stage 回退、2 次换锚点、每阻挡 net 1 次 rip-up)与全局重规划解耦。第三,任务完成以电气连通性验证为准,而非 PNS 调用成功,确保任务统计反映真实连接的建立。
方法步骤详情
(1) 板表示:从 .kicad_pcb 提取 pad、铜层、障碍与已有走线,把每 net 按电气连通聚成簇,生成 4 张图像加结构化文本 $S$。(2) 拓扑与顺序:以簇为顶点、簇间最小欧氏距离(层不匹配惩罚)为边权建图 $G_n=(C_n, E_n, w_n)$,求 MST 得 $K_n-1$ 条连接任务,按生成树总估计长度升序排布线顺序。(3) 空间与层规划:同层连接取两端 pad 包围盒外扩 $\delta=1.5$mm 生成单走廊;需换层连接在中点拆成两段层专属走廊,中点外扩为过孔候选区 $V_e$。(4) 引导执行:每条边选走廊内层匹配的锚点,在走廊重叠区生成候选 waypoint 逐段调 PNS,过孔在 $V_e$ 内试探,最后以电气连通性验证任务完成。(5) 有界本地恢复:walkaround/shove 绕障、换 waypoint、A* 同层绕行、回退与换锚点受预算约束。(6) 反馈重规划:恢复耗尽则生成含失败尝试、障碍与偏离的反馈 $F_e$,批量交 LLM 生成 guide patch,校验合并重编译。预算:每板重规划 12 次、每连接 4 次、批量 5 轮。
技术新颖性
新颖性体现在四点。第一,任务抽象:把布线 guide 定义成连接拓扑、布线顺序、走廊、换层区域四要素的结构化对象,LLM 只对它做 patch 式修订、引擎负责几何,这在 EDA 智能体文献中是新组合——ChatEDA 停留在语言规划调工具层,PCBWorld 停留在逐步操作层,GPCB 与 FanoutNet 则是单点预测模型而非闭环智能体。第二,MST 初始化加 LLM 修订的混合拓扑生成:确定性算法给出紧凑初始解,LLM 只在执行证据表明启发式估计失效时介入,避免了让 LLM 在组合空间里盲目搜索。第三,分层恢复预算:把何时升级到全局重规划变成可量化的策略(2 次回退、1 次 A* 绕行、2 次换锚点、每阻挡 net 1 次 rip-up),兼顾成本与探索。第四,鲁棒性工程:patch 校验器检查簇/走廊/层引用合法性,校验失败可让同一模型带着错误信息自纠;Opus 输出最多 5 次受保护的角度修复,仅在连通性、DRC 与线长不变差时接受。
实验结果
Opus 结果:(1) D2(128 合成板)CP 100%、DRV 0,potential 16.27 超 PPO 15.84、Freerouting 14.42,线长 -4.2%、过孔 -19.7%。(2) D3-A(99 板)CP 94.9%,超最强基线 81%(+13.9pp)与 Freerouting 75%,routability 0.994。(3) D3-B(10 中板)CP 100%,potential 64.47 超人工 Reference 63.96,Freerouting 仅 64%,线长多 10.9%。(4) D3-C(10 大板)CP 40% 对 30%,routability 0.949,DRV 从 32.0 降至 6.3,但 6/10 板未完成。(5) 同骨干消融(Haiku 5.5):本文 CP 1.00/0.929/0.80/0.10 对 PCBWorld 0.633/0.343/0.00/0.00。(6) 效率:247 板调用 22,529→172,token 105.7M→12.0M,成本 $20.72→$4.77,时长 36.4→2.6 小时。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| D2 合成板布线(128 块) | Clean Pass 率 / potential / 线长 / 过孔 | CP 1.000,potential 16.27,WL 392.5mm,via 1.99,DRV 0 | Freerouting CP 1.000,potential 14.42,WL 409.8mm,via 2.48;PCBWorld PPO w/o finish CP 1.000,potential 15.81 | 完全布线持平,potential 提升 0.46-1.85,线长缩短 4.2%,过孔减少 19.7% |
| D3-A 真实小板布线(99 块) | Clean Pass 率 | 0.949(Opus),0.929(Haiku) | PCBWorld PPO w/o finish 0.810;Freerouting 0.750;PCBWorld GPT-5.4 0.420 | 较最强基线 +13.9pp,较 Freerouting +19.9pp,较 GPT-5.4 智能体 +52.9pp |
| D3-B 真实中板布线(10 块) | Clean Pass 率 / DRV | CP 1.000(Opus),DRV 0,potential 64.47 | Freerouting CP 0.640,DRV 11.94;PCBWorld 全部 LLM 智能体 CP 0.000 | +36pp,DRV 从 11.94 降至 0;potential 超过人工 Reference 的 63.96 |
| D3-C 真实大板布线(10 块,>100 pads) | Clean Pass 率 / routability / DRV | CP 0.400,routability 0.949,DRV 6.3 | Freerouting CP 0.300,routability 0.918,DRV 32.0;RL 与 PCBWorld-Haiku CP 0.000 | +10pp,DRV 降低 80.3%;但仍有 6/10 板未完全连通 |
| 同骨干框架消融(Haiku 5.5,247 块板) | Clean Pass 率与计算成本 | CP 1.00/0.929/0.80/0.10;调用 172 次,12.0M token,$4.77,2.6 小时 | PCBWorld-Haiku CP 0.633/0.343/0.00/0.00;调用 22,529 次,105.7M token,$20.72,36.4 小时 | 四个子集 +36.7/+58.6/+80/+10pp;调用少 131 倍、成本低 4.3 倍、耗时短 14 倍 |
局限与改进
作者承认的局限:大板 D3-C 的 10 块板中 6 块未完成,平均 routability 0.949 与 CP 0.40 之间的落差说明连上大多数目标不等于整板合格;连通性提升不等于布线更紧凑——D3-B 线长比 Freerouting 多 10.9%,D3-C 多 8.2%,存在优化物理成本的空间。协议层面:D3-B 的结果包含对未打分模型响应失败的重试和角度修复,不是严格的首轮 @1 估计;D3-C 上人工 Reference 的 CP 也只有 0.900(8.8 DRV),说明该子集本身极难。我的补充观察:(1) 全部实验限于双层板,多层板的换层规划未验证;(2) 超参如走廊外扩 $\delta=1.5$mm、12 次重规划预算、各级恢复预算均为手工设定,缺乏消融实验;(3) 结果依赖 PCBWorld 单一评估器与特定 KiCad 版本中 PNS 的行为,迁移到其他引擎未验证;(4) 只测试了 Claude 系闭源模型,对开源或小模型的适用性未知;(5) D3-B 与 D3-C 各只有 10 块板,100% 与 40% 的统计意义有限。
独立分析的弱点
弱点一:D3-C 上 6/10 板未完成,说明全局规划太粗糙——走廊用包围盒外扩 1.5mm 的启发式,缺乏对拥塞和空间预留的全局推理,大板密集障碍下走廊相互挤压;改进方向是把拥塞估计或软走廊代价显式建模进 guide,或让重规划时能观察当前板状态的最新截图而非固定初始图像。弱点二:物理成本劣于 Freerouting(D3-B 线长 +10.9%、D3-C +8.2%),因为 guide 只约束哪里能走、不约束走多短;改进方向是在 waypoint 生成与角度修复中加入以线长为目标的优化 pass,或对接 Freerouting 式代价函数做后精修。弱点三:恢复与重规划预算是全局固定常数,简单板浪费、复杂板不够,作者也承认需要自适应预算;可按板规模或失败率动态调整。弱点四:执行器深度绑定 KiCad PNS 的 walkaround/shove 语义,换到 Altium 或 Cadence 引擎需重写工具层;可抽象出引擎无关的布线原语接口。弱点五:主表只报告每实例一次打分(D3-B 除外),未量化单次运行方差;建议多 rollout 报告均值与标准差。
未来方向
作者明确提出的方向:更有效的空间与层规划(当前包围盒外扩启发式较粗糙)、自适应恢复预算、在保持连通的前提下降低线长与过孔数的布线精修。基于成果可延伸的方向:(1) 把重规划循环与强化学习结合,用结构化执行反馈作为奖励信号微调 guide 生成策略,摆脱对 prompt 工程与闭源模型的依赖;(2) 扩展到多层板与高速约束——论文提到差分对规则但实验未涉及,等长、阻抗控制等约束是工业刚需;(3) 与布局联合优化,PCBAgent 只做布局、本文只做布线,两者形成布局-可布通性反馈闭环是自然的下一步;(4) 蒸馏:用 Opus 级 planner 的决策轨迹微调开源小模型,验证框架对弱模型的增益是否保持,进一步压低成本;(5) 把结构化失败反馈 $F_e$ 沉淀为跨板复用的失败案例库(Reflexion 式记忆),让新板能借鉴历史失败模式;(6) 支持在线增量交互:工程师修改 guide 后局部重布,而非从零开始全板重跑。
复现评估
复现条件较好。代码与项目页开源(github.com/chip-ai-agent/PCBRouteAgent),基准 PCBWorld-Bench 及其 KiCad 评估器公开,板子标识与 split 定义沿用 PCBWorld 发布版本,可逐板对齐比较;D3-A 与 D3-B 基线直接引用 PCBWorld 已发表的 Table 22,D3-C 因 PCBWorld 未公布成绩而由作者本地评估。主要门槛在 API:需要 Claude Opus 5.5 与 Haiku 5.5 的访问权限,按论文效率数据,Haiku 口径复现全部 247 块板约需累计 2.6 小时、成本 $4.77,Opus 更贵但个人研究者可负担。剩余难点:(1) KiCad 引擎与 PCBWorld 接口的环境搭建,论文提到有一块 D3-A 板无法加载;(2) prompt 模板在附录 B 公开,但输出 JSON 校验与自纠逻辑细节需读代码。整体复现难度中等:算法描述完整、依赖开源,但多模态 LLM 输出的非确定性会带来结果波动。
论文图表
用一块真实板子的局部图示布线任务的定义:输入是元件位置、焊盘和必须连接的接触点列表,输出是完成这些连接的铜走线。图中标注了引导线、正面铜(红色)、背面铜(蓝色)和过孔,并解释路径必须留在板内、绕开螺丝孔与禁布区、满足线宽与间距要求。
为不熟悉 PCB 的读者建立任务直觉:布线的本质是在几何规则约束下用铜线和过孔把必须连通的焊盘连成网络,这是理解全文指标与方法的起点。