Skip to main content Link Menu Expand (external link) Document Search Copy Copied

基于KiCad的大语言模型插件(Agent)

前言

这一篇是上一篇“如何使用LLM直接修改KiCad原理图”的延伸。我把前一篇水文转给一个朋友看,这个朋友建议我提升一下易用性。我觉得这个朋友讲的很有道理,所以调整了开发的计划,先开发一个KiCad插件,让用户可以直接在KiCad中使用这个Agent。这个KiCad插件集成了KiCad MCP,用户可以通过这个Agent来辅助设计电路和PCB。

相关文章:

  1. 如何使用LLM直接修改KiCad原理图

插件介绍

功能概述

该插件拥有一个图形界面,用户通过该界面使用自然语言来查看、修改当前项目中的电路原理图和PCB电路图。安装过程也比较简单。

img

安装方法

这里描述的安装方法针对KiCad 10.0的Linux发行版,其他平台和版本受限于工作量还未测试。安装该插件需要事先安装Python环境管理工具uv,安装过程中需要通过uv来创建Python虚拟环境供KiCad MCP使用。

由于该插件仍在开发过程中,当前安装过程中还需要下载代码包,后面会进一步优化安装方法。整个安装过程如下。

  1. kicad-mcp克隆下载代码。
  2. 进入代码目录执行 make dist-plugin 命令。
  3. 命令成功后,将 dist 目录下的 kicad_ai_assistant.zip 文件解压到 \~/.local/share/kicad/10.0/scripting/plugins 目录下。
  4. 进入plugins目录下的 kicad_ai_assistant 目录,执行脚本 setup_plugin.sh <kicad-mcp项目路径>

成功执行完这四步,插件就安装好了。

使用方法

接下来打开一个KiCad项目,从PCB Editor的Tools菜单打开Kicad AI Assistant插件。

img

第一次使用该工具之前,需要先配置大模型。配置界面如下,用户需填入大模型服务节点(使用OpenAI协议)、API Key、模型名称等信息。

img

配置好了大模型之后,就可以使用大语言模型来帮助我们分析、修改电路原理图和PCB了。目前插件支持如下的操作功能。

# 工具名 作用
1 extract_project_netlist 从项目提取网络表
2 extract_schematic_netlist 从单个 .kicad_sch 提取网络表
3 find_component_connections 查找指定元件的连接关系
4 sync_symbol_index 同步/重建符号库索引
5 get_symbol_sync_status 查询符号索引状态
6 search_symbols 搜索符号
7 get_symbol 获取符号详情
8 list_symbol_libraries 列出符号库
9 get_library_symbols 列出库中的符号
10 get_symbol_index_stats 符号索引统计
11 get_symbol_pins 获取符号引脚信息
12 add_symbol_to_schematic 向原理图添加符号
13 remove_symbol_from_schematic 从原理图删除符号
14 set_component_property 设置元件属性
15 list_component_properties 列出元件属性
16 delete_component_property 删除元件属性
17 move_component 移动元件
18 add_label_to_schematic 添加标签(label)
19 list_labels_in_schematic 列出原理图标签
20 delete_label_from_schematic 删除标签
21 add_wire_to_schematic 添加导线
22 connect_pins_with_wire 用导线连接两个引脚
23 delete_wire_from_schematic 删除导线
24 add_junction_to_schematic 添加节点(junction)
25 list_junctions_in_schematic 列出节点
26 delete_junction_from_schematic 删除节点
27 sync_footprint_index 同步封装库索引
28 get_footprint_sync_status 封装索引状态
29 list_footprint_libraries 列出封装库
30 search_footprints 搜索封装
31 get_footprint_details 获取封装详情
32 get_board_info 获取 PCB 板信息
33 list_footprints 列出板上封装
34 get_footprint 获取单个封装信息
35 list_nets 列出网络
36 get_ratsnest 获取飞线(ratsnest)
37 set_footprint_position 设置封装位置
38 flip_footprint 翻面(顶/底层)
39 set_footprint_property 设置封装属性

大语言模型会根据用户请求和工具描述调用合适的工具,不过由于MCP工具设计和大语言模型能力的限制,建议大家先从简单一点的任务开始尝试。

总结

本文介绍了我最近伙同AI一起开发的一个KiCad插件,欢迎大家试用。该插件还在持续开发过程中,欢迎大家提建议,也欢迎有兴趣的朋友一起优化这个工具。

参考索引

  1. kicad-mcp克隆 - https://github.com/paul356/kicad-mcp