LCEDA AI Bridge 是一个本地桥接工具,用来让 AI 助手或自动化脚本调用嘉立创 EDA / EasyEDA Pro 专业版扩展 SDK。
另外,当前仓库提供的是演示版本能力,并不等同于完整生产级 SDK 或商业自动化平台。需要更高级 SDK 或定制能力时,请咨询小红书 DeepSort。
它解决的问题很直接:AI 不能直接进入 EDA 编辑器内部调用 eda SDK,但 EDA 扩展可以。这个项目在本机启动一个桥接服务,由 EDA 扩展连接它,然后 AI 通过命令行或 HTTP 把 JavaScript SDK 脚本发送进去,最终脚本会在真实的 EDA 扩展运行时里执行。
当前项目为演示版本,主要用于展示“本地 AI 工具 -> 桥接服务 -> 嘉立创 EDA 扩展运行时”的基础调用链路,以及少量常见 SDK 自动化示例。
演示版本适合用来验证连接、运行简单脚本、了解 AI 调用 EDA SDK 的基本流程。如果你需要更高级的 SDK 能力、完整自动化方案、商业集成支持或定制开发,请咨询小红书 DeepSort。
- 让 AI 检查当前 EDA 运行时支持哪些
edaAPI。 - 让 AI 在当前工程中运行原理图或 PCB DRC。
- 让 AI 创建网络标号、放置元件、移动 PCB 元件。
- 导出 PCB 的 DSN 文件,交给外部自动布线器处理,再导入 SES 文件。
- 把“AI 读需求 -> 生成 EDA SDK 脚本 -> 在当前设计里执行 -> 返回结果”的流程串起来。
项目包含三部分:
| 部分 | 路径 | 作用 |
|---|---|---|
| 本地桥接服务 | src/server.js |
在本机回环地址上启动 HTTP + WebSocket 服务,接收 AI 或 CLI 发来的执行请求。 |
| 命令行客户端 | src/cli.js、src/client.js |
查找桥接服务、查看健康状态、发送脚本到 EDA 扩展运行时。 |
| EDA 扩展 | extension/ |
安装到嘉立创 EDA 专业版后,连接本地桥接服务,并在编辑器内执行收到的 SDK 代码。 |
默认端口范围是 49620-49629:
- 本地桥接服务启动后监听本机回环地址和默认端口范围;如果端口被占用会继续尝试后续端口。
- EDA 扩展从同一端口范围扫描并连接桥接服务。
- AI 或 CLI 调用
POST /execute发送 JavaScript 代码。 - 桥接服务通过 WebSocket 把代码转发给 EDA 扩展。
- EDA 扩展在真实的
eda运行时中执行代码,并把结果返回。
协议细节见 docs/protocol.md。
- Node.js 20.17 或更高版本。
- 嘉立创 EDA 专业版 / EasyEDA Pro V3。
- 当前 EDA 中已经打开需要操作的原理图或 PCB 文档。
- 如果脚本需要读取或保存本地文件,需要在 EDA 扩展权限中允许外部交互。
进入项目目录:
cd lceda-ai-bridge安装根项目依赖:
npm install安装 EDA 扩展项目依赖:
npm --prefix extension install构建扩展包:
npm run extension:build构建完成后会生成扩展包:
extension/build/dist/lceda-ai-gateway_v0.1.0.eext
如果仓库里已经有这个 .eext 文件,也可以直接安装现有包;如果改过 extension/src/index.ts 或扩展配置,则需要重新构建。
-
打开嘉立创 EDA 专业版 V3。
-
进入
高级 -> 扩展管理器... -> 导入。 -
选择并导入:
extension/build/dist/lceda-ai-gateway_v0.1.0.eext -
在扩展管理器中启用
LCEDA AI Gateway。 -
如果后续要导入/导出 DSN、SES 或读取本地文件,在扩展权限设置里允许外部交互。
-
打开或新建一个原理图/PCB 工程。
安装成功后,顶部菜单中会出现:
AI Gateway -> Start Bridge
AI Gateway -> Stop Bridge
先启动本地桥接服务:
cd lceda-ai-bridge
npm start正常情况下会看到类似输出:
LCEDA AI bridge listening on <bridge-url>
然后回到嘉立创 EDA 专业版,点击:
AI Gateway -> Start Bridge
扩展会自动扫描 49620-49629 端口并连接本地桥接服务。
在项目目录执行:
node src/cli.js health如果桥接服务和 EDA 扩展都正常,会看到:
{
"ok": true,
"data": {
"host": "<bridge-host>",
"port": 49620,
"identity": "easyeda-bridge",
"extensionConnected": true
}
}其中最重要的是:
ok: true:找到了本地桥接服务。extensionConnected: true:EDA 扩展已经连接,可以发送脚本执行。
如果 extensionConnected 是 false,说明本地服务启动了,但 EDA 扩展还没有连上。回到 EDA 中点击 AI Gateway -> Start Bridge。
查看当前 EDA 运行时能力:
node src/cli.js send --file examples/00-inspect-runtime.js运行 DRC:
node src/cli.js send --file examples/10-run-drc.js创建原理图网络标号:
node src/cli.js send --file examples/40-create-schematic-net-flags.jsnode src/cli.js send --code "return Object.keys(eda).sort();"注意:发送的代码会被包装到一个 async 函数里执行,所以可以直接使用 await:
node src/cli.js send --code "return await eda.sch_Drc.check(true, false, true);"cat examples/00-inspect-runtime.js | node src/cli.js send如果启动服务时指定了端口:
node src/cli.js start --port 49621后续命令也需要指定同一个端口:
node src/cli.js health --port 49621
node src/cli.js send --port 49621 --file examples/00-inspect-runtime.js默认执行超时是 30 秒。对于 DRC、导入导出、复杂 PCB 操作,可以调大:
node src/cli.js send --timeout 120000 --file examples/10-run-drc.js120000 表示 120 秒。
推荐流程是:先让 AI 生成脚本,再让 AI 通过 CLI 发送脚本执行。不要一上来就让 AI 直接修改重要工程,先从只读检查开始。
在终端启动本地桥接:
cd lceda-ai-bridge
npm start在嘉立创 EDA 专业版中启动扩展连接:
AI Gateway -> Start Bridge
然后确认连接:
node src/cli.js health确认 extensionConnected 为 true 后,再让 AI 执行后续操作。
可以这样对 AI 说:
请在 lceda-ai-bridge 项目目录中,通过 LCEDA AI Bridge 检查当前 EDA 运行时。
先执行 examples/00-inspect-runtime.js,把返回的 eda API 能力总结给我。
不要修改当前工程。
AI 应该执行的命令是:
cd lceda-ai-bridge
node src/cli.js send --file examples/00-inspect-runtime.js如果你希望 AI 创建网络标号、运行 DRC、移动 PCB 元件,可以要求 AI 先生成一个独立 .js 文件,并说明它会调用哪些 API。
示例提示词:
请帮我写一个通过 LCEDA AI Bridge 执行的 EDA SDK 脚本。
目标:在当前原理图页面创建 VCC 和 GND 网络标号,然后保存文档。
要求:
1. 先把脚本写到 examples/ai-create-power-flags.js。
2. 执行前先给我说明会调用哪些 eda API。
3. 脚本执行后返回 { ok: true, message: string }。
4. 不要做 PCB 操作,不要读取本地文件。
生成脚本后,AI 可以执行:
node src/cli.js send --file examples/ai-create-power-flags.js可以这样要求:
请执行 examples/ai-create-power-flags.js。
执行后把 JSON 返回结果解释给我。
如果失败,不要重试修改工程,先分析错误原因。
AI 执行命令:
node src/cli.js send --file examples/ai-create-power-flags.js给 AI 下任务时,建议加上这些约束:
请遵守以下限制:
1. 先运行 examples/00-inspect-runtime.js 确认 API 能力。
2. 修改工程前,先说明将调用的 eda API 和预期影响。
3. 优先创建独立脚本文件,再通过 node src/cli.js send --file 执行。
4. 不要执行来源不明的脚本。
5. 不要读取或写入本地文件,除非我明确允许。
6. 对 PCB 移动、导入 SES、保存文档等会改变工程的操作,执行前先提醒我确认。
除了 CLI,也可以直接请求本地 HTTP 接口。
健康检查:
curl -s <bridge-url>/health执行脚本:
curl -s <bridge-url>/execute \
-H 'content-type: application/json' \
-d '{"code":"return Object.keys(eda).sort();","timeoutMs":30000}'请求体字段:
| 字段 | 类型 | 说明 |
|---|---|---|
code |
string | 要在 EDA 扩展运行时中执行的 JavaScript 代码。 |
timeoutMs |
number | 可选,执行超时时间,单位毫秒。 |
| 脚本 | 用途 |
|---|---|
examples/00-inspect-runtime.js |
查看当前 eda 运行时有哪些 API,并判断是否有原理图、PCB、文件系统能力。 |
examples/10-run-drc.js |
当前文档支持时,运行原理图 DRC 和 PCB DRC。 |
examples/20-export-router-dsn.js |
从当前 PCB 导出 DSN 文件,供外部自动布线器使用。 |
examples/30-import-router-ses.js |
从绝对路径读取 SES 文件并导入当前 PCB。执行前必须修改 sesPath。 |
examples/40-create-schematic-net-flags.js |
在当前原理图页面创建 VCC 和 GND 网络标号并保存。 |
examples/50-place-pcb-components-template.js |
PCB 元件移动模板。执行前必须替换真实 primitive ID 和坐标。 |
- 让 AI 读取需求或器件连接关系。
- 让 AI 生成 EDA SDK 脚本。
- 通过桥接发送脚本。
- 使用
eda.sch_PrimitiveComponent、eda.sch_PrimitiveWire、网络标号等 API 修改当前原理图。 - 保存文档。
- 执行
eda.sch_Drc.check(...)检查结果。
- 在 EDA 中打开 PCB 文档。
- 让 AI 先检查可用的 PCB API。
- 获取或整理需要移动的 PCB component primitive ID。
- 让 AI 生成调用
eda.pcb_PrimitiveComponent.modify(...)的脚本。 - 移动后调用
eda.pcb_Document.startCalculatingRatline()重新计算飞线。 - 保存文档并运行 PCB DRC。
-
打开 PCB 文档。
-
执行:
node src/cli.js send --file examples/20-export-router-dsn.js
-
使用 Freerouting、ELECTRA、TopoR 等工具处理 DSN,生成 SES。
-
修改
examples/30-import-router-ses.js中的sesPath为 SES 文件绝对路径。 -
执行:
node src/cli.js send --file examples/30-import-router-ses.js
-
导入后运行 PCB DRC,确认没有短路、间距或未连接问题。
没有找到本地桥接服务。先启动:
npm start如果你使用了固定端口,检查命令是否也传了同一个 --port。
本地 HTTP 服务已启动,但 EDA 扩展没有连接。
处理方式:
- 确认嘉立创 EDA 专业版已经打开。
- 确认
LCEDA AI Gateway扩展已启用。 - 点击
AI Gateway -> Start Bridge。 - 再执行
node src/cli.js health。
CLI 已经连到桥接服务,但没有 EDA 扩展 WebSocket 会话。通常是 EDA 扩展未启动、被关闭、或者连接到了另一个端口。
处理方式:
node src/cli.js health如果 extensionConnected 为 false,在 EDA 里重新点击 AI Gateway -> Start Bridge。
默认超时 30 秒。可以调大:
node src/cli.js send --timeout 120000 --file examples/10-run-drc.js如果仍然超时,优先让 AI 把脚本拆成更小步骤执行。
常见原因:
- EDA 扩展没有开启外部交互权限。
- 脚本中使用了相对路径。
- 文件不存在或路径写错。
建议使用绝对路径,并先让 AI 解释脚本将读取或写入哪个文件。
建议按这个顺序排查:
- 执行
examples/00-inspect-runtime.js,确认当前运行时 API 是否存在。 - 确认当前打开的是原理图还是 PCB 文档。
- 确认脚本使用的 primitive ID、坐标、文件路径是否真实存在。
- 让 AI 先只读查询,再执行修改操作。
这个桥接工具会执行 JavaScript 代码,而且执行位置是 EDA 扩展运行时。也就是说,脚本可以修改当前打开的设计;在授予外部交互权限后,还可能读取或写入本地文件。
另外,当前仓库提供的是演示版本能力,并不等同于完整生产级 SDK 或商业自动化平台。需要更高级 SDK 或定制能力时,请咨询小红书 DeepSort。
使用时请遵守:
- 只在本机回环地址环境使用。
- 只执行你信任或已经审阅过的脚本。
- 修改重要工程前先保存备份。
- 让 AI 执行修改操作前,先要求它说明调用的 API 和影响范围。
- 对导入 SES、移动 PCB 元件、保存文档、文件读写等操作保持确认步骤。
运行测试:
npm test测试覆盖:
- CLI 健康检查和发送脚本。
- 客户端查找桥接服务。
- HTTP
/health和/execute。 - WebSocket 握手和执行结果返回。
- 扩展 manifest 和入口源码契约。
构建扩展:
npm run extension:build如果修改了 EDA 扩展源码,需要重新构建 .eext 并在嘉立创 EDA 专业版中重新导入或更新扩展。
