乐于分享
好东西不私藏

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

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

前言

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

相关文章:

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

插件介绍

功能概述

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

img

安装方法

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

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

  1. 1. 从kicad-mcp克隆下载代码。
  2. 2. 进入代码目录执行 make dist-plugin 命令。
  3. 3. 命令成功后,将 dist 目录下的 kicad_ai_assistant.zip 文件解压到 \~/.local/share/kicad/10.0/scripting/plugins 目录下。
  4. 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. 1. kicad-mcp克隆 – https://github.com/paul356/kicad-mcp