大家好!我想分享一下我的开源项目 EasyEDA Copilot。它能让 AI Agent 直接在 EasyEDA Pro 里创建和编辑原理图与 PCB。
我既做编程也做电子。大学学的电子专业,课上教的就是 EasyEDA。我觉得它比 Altium Designer 好学多了,所以自己的项目一直用它。
EasyEDA Copilot 的想法很早就有了,甚至早于 GPT-6 Astra 学会在 KiCad 里设计 PCB。当时我想试着做一个自己的 AI Agent,把编程和电子这两个我感兴趣的领域结合起来。
第一版只能编辑原理图。后来我陆续加了更多功能:创建原理图、搜索元件、自动布局元件、PCB 布线。
现在 EasyEDA Copilot 能承担设计流程中很大一部分工作,产出的仍然是普通、可编辑的 EasyEDA 文档。
EasyEDA Copilot 的工作原理
主要集成通过 MCP 实现。
整体架构大致是这样:
AI agent => MCP => specialized algorithms => EasyEDA
MCP 服务器通过本地 WebSocket 连接 EasyEDA 扩展。Agent 可以获取原理图、元件、连接、层以及其他对象的信息。
也可以基于 MCP 单独构建一个 Skill。
我的做法和直接把编辑器开放给 AI 的主要区别在于:模型不必自己完成所有工作。
比如官方有一个 EasyEDA API Skill,允许 Agent 通过编辑器 API 执行 JavaScript。
我的思路稍有不同。
在 EasyEDA Copilot 里,模型主要描述要做什么。比如哪些元件应该放得近一些、连接器放在哪里、用哪些布线规则。
然后由常规算法完成实际工作。
同时,Agent 仍然可以直接在 EasyEDA 里执行 JavaScript。遇到不寻常的需求,或者要手动修 PCB 的某一部分,它可以用编辑器 API。
所以模型负责定义任务,但不必自己计算每个元件或每段走线的坐标。
元件布局的工作方式
布局使用一套独立算法,输入是元件、连接、板框几何和约束条件。
Agent 用 DSL 描述需求。
下面是个小例子:
board.rect(40, 30, {
layers: ["top"],
clearance: 0.3
});
block("MCU", ["U1", "C1", "C2"], "mcu");
block("CONNECTORS", ["J1", "J2"], "connector");
edgeMount("J1", "left");
edgeMount("J2", "right");
veryNear(pin("C1", 1), pin("U1", 5));
veryNear(pin("C2", 1), pin("U1", 8));
这里我们定义一块40×30 mm的电路板、两组元件、连接器位置,以及一项要求:把电容放在靠近特定微控制器引脚的位置。
随后算法会自动找到合适的布局方案。
布局计算借助GPU加速。许多操作可以并行执行,元件数量很大时尤其有用。
算法还会考虑元件尺寸、重叠、电气连接、机械约束和布局规则。
计算完成后,Agent可以查看预览、修改约束条件,或在EasyEDA中应用布局。
PCB布线的工作原理
布线采用类似的思路。
Agent描述规则:走线宽度、间距、层、过孔、差分对及其他要求。
例如:
drc({
trackWidthMm: 0.2,
clearanceMm: 0.15
});
powerNet("+5V", {
trackWidthMm: 0.6,
allowedLayers: "OUTER"
});
diffPair("USB", {
positive: "USB_DP",
negative: "USB_DM",
trackWidthMm: 0.2,
gapMm: 0.15,
maxSkewMm: 0.5
});
plane({
net: "GND",
layers: "BOTTOM"
});
runAll();
这个示例中,我们定义通用布线规则、为电源单独设置走线宽度、一对 USB 差分线,以及底层的地平面。
当前实现基于 KiCad Routing Tools。我写了一个集成模块,把 EasyEDA 的板卡数据传给布线器,执行布线流程,再把结果带回编辑器。
之后,Agent 可以检查剩余未布通的连接,并运行 EasyEDA 内置的 DRC。
此外还有检查点机制:应用改动前先保存文档状态。如果应用结果时出错,可以恢复到之前的版本。
当然,布线还不完美。复杂板子需要多次尝试或手动修复。
我目前正在开发自己的布线算法,主要目标是提升速度,并提高复杂板子的布线完成率。
项目示例
STM32 CAN 与 RS485
其中一个例子是带 CAN 和 RS-485 接口的 STM32 板卡。
这个项目里,我用 EasyEDA Copilot 同时处理原理图和 PCB。
5A USB-PD 触发器
另一个例子是支持最高 5 A 的 USB-PD 触发器。
它的原理图已完成,PCB 也已全部布通。

其他项目
我也在其他原理图和 PCB 上试过 EasyEDA Copilot。
比如,我有一个便携式单通道示波器项目,目标带宽 200 MHz。目前只完成了原理图。
仓库里还包含 ESP32-C3 控制器、四层 MIMXRT1011 板以及 2 GHz 射频放大器的示例。
你可以在 GitHub 仓库中查看这些示例。
SPICE 仿真
除了 PCB 设计,EasyEDA Copilot 还能借助 ngspice 运行 SPICE 仿真。
为此,我整理了一个约含 4 万个元件的元件库。
比如,你可以让 Agent 设计一个触发器的输入级。它能挑选元件、计算参数、搭建电路并运行仿真。

这样,在动手搭建实物之前,你就能先了解电路的表现。
当然,仿真并不能保证真实电路的表现完全一致。结果取决于元件模型和仿真条件。
目前,SPICE 功能仍通过 EasyEDA Copilot 原有的内置界面提供。项目的大部分开发工作现已转向 MCP。
下一步计划
我正在继续开发自己的 PCB 布线器。
我还计划加入 PCB 分析工具:信号完整性(SI)、电源完整性(PI)和热分析。
我希望 Agent 不仅能绘制原理图和 PCB,还能执行工程计算、发现问题并修复问题。
不过这些功能仍在开发中。
源代码
EasyEDA Copilot 是一个采用 MIT 许可证的开源项目。
GitHub:https://github.com/biosshot/easyeda-copilot
使用前,你需要 EasyEDA Pro Desktop、Node.js,以及 Claude Code 或 Codex 之类的 MCP 客户端。
仓库中提供了安装说明、文档和项目示例。
欢迎各位反馈,尤其是从事电子相关工作、尝试过设计流程自动化的朋友。




