KiCad mcp 智能体布线测试

在2025年低opus4.6与gpt5.4出现之后,顶尖模型+agent的表现非常亮眼。 在编程/安全领域中除了仍然有些上下文限制、记忆丢失、思路跑偏之类的限制外,多数任务上都能比人快的同时做得不比人差,甚至更好。

这种交互基本上都是纯文本形式的,不管是用户的纯文本输入,编写的各种语言代码,还是mcp tool call的json数据。 某日突发奇想尝试下需要多模态图片分析能力的任务不知道目前表现如何,于是想用agent来画一下pcb板。 当然,如果真的是为了画板子,可能选择成熟算法的auto router怎么都比耗费大量token还不一定画的明白的agent更有效率,也更省钱。

搜到目前网上已经有一些KiCad的mcp实现,但是我看过去似乎都有些问题:

于是自己尝试vibe了一个,过程中不断调试,一些问题可以看出来KiCad的接口和稳定性都有待提高:

  • 原理图和很多关键能力缺少api/ipc的接口, 最终要去使用kicad-cli调用。

  • 几个版本之间调用方式、接口能力都变化很大。

  • V10.0.0虽然是stable版本但里面有些空指针解引用等问题,运行时会crash。后面测试更新到修复了的nightly build版本 (当然也能看出来开发者很辛苦的在更新)

  • 从原理图更新元件到PCB中,这一步必须要人工交互。

实现的kicad mcp主要特点:

  1. 尽量简化了tool,虽然最后还是有38个tool,尽量减小心智负担。

  2. mcp为agent提供了一些workflow和tool的指导。

  3. 优化了一些关键步骤,比如:

    • add_track时会做是否重叠的检查 (很关键,不然agent疯狂重叠布线)

    • run_drc的摘要设计,防止大量数据直接填满模型上下文

    • get_routing_view 做了分层、放大、间距halo等强化,让agent更好的判断走线状态

  4. 在pcb编辑器插件中做了个小启动器。方便安装和在pcb编辑器中启停。 (其实是新版ipc的方式跟我预想的插件形态完全不同导致的)

在经过一系列跑-修改-跑-修改的折返之后,使用codex+gpt-5.5用下面的提示词来绘制了自带demo中的PIC Programmer(手动选择所有走线与填充区并删除)

1
2
3
4
5
6
当前给你接入了kicad tool, 其中打开的pcb layout是一个老式PIC编程器,原理图已经设计好,元件已经放置在pcb中,现在进行布线。你自己可以决策如何布线,全部布完了再问我,注意符合drc。注意:
- 布线要综合考虑,不要只会直接连接,这会导致后续无法完成布线
- 当前PCB布局确定可以完成符合drc的布线
- 必要时可以忽略丝印相关的drc错误
- 单层铺铜
- 不要尝试绕过kicad tool进行处理

耗费了几个小时之后,得到的结果是下图,emm。 注意丝印和元件位置都是没有清除的,agent只进行了走线。

llm_pic_pcb

接下来将demo中的CM5_MINIMA_3示例中layout里面所有内容删除,重新从原理图更新。 使用下面的提示词开始布局。

1
2
3
4
5
6
当前给你接入了kicad tool, 其中打开的pcb layout是一个树莓派 CM5 的扩展板CM5 MINIMA,原理图已经设计好,元件已经放置在pcb中,现在进行元件布局和布线。你自己可以决策如何布线、元件位置、整体板型,全部布完了再问我,注意符合drc。注意:
- 布线要综合考虑,不要只会直接连接,这会导致后续无法完成布线
- 元件应合理放置
- 紧凑板型
- 必要时可以忽略丝印相关的drc错误
- 不要尝试绕过kicad tool进行处理,不要使用其他工具布线

经过好几天的走线和几轮交互后,得到了不堪入目的结果。

llm_cm5_pcb

示例中的pcb:

demo_cm5_pcb

看起来在不增加很完善的skill/mcp description/prompt的情况下应该是得不到太好的结果了。

从llm开始大杀四方之后,网上有太多缺乏测试和难以维护的代码。

大模型以远超人类的速度coding、写文档,加速了人类实现梦想的速度的同时也让代码脱离了人类的掌控。想起去年我还会快速的review一下llm生成的代码,但agent写的太快,完全看不过来。 虽然现在很多模型的coding能力很不错,但经过几轮迭代后还是会产生许多问题,我想更长的上下文和更好的AGENTS.md能改善情况。目前又有几个个人开源项目能投入足够的精力保证项目的可维护性呢。
互联网上一坨新的大便: https://github.com/leommxj/kicad_mcp_plugin