news 2026/10/27 18:29:58

基于 Qwen Code Skills 实践构建自定义数据分析智能体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于 Qwen Code Skills 实践构建自定义数据分析智能体

一、Qwen Code Skills

Qwen Code是一个面向开发者的智能编码助手,类似于Claude Code,随着Claude Code推出Skills功能,Qwen Code也迅速集成了相关功能,通过Skills可以将专业知识打包成可发现的功能。每个技能由一个SKILL.md文件组成,其中包含模型在相关时可以加载的指令,以及可选的支持文件如脚本和模板。

本文将基于Qwen Code Skills功能构建一个数据库查询Skill,并基于该Skill实现数据方面的问答、分析、以及能够根据数据自动生成分析页面。实验效果如下所示:

其中实验使用数据会在下方实验时说明

技能调用问答:

技能调用、分析生成报表:

生成效果:

在开始实验前,先简单介绍下Qwen Code Skills的使用过程。

1.1 Qwen Code Skills 使用介绍

官方文档地址:

https://qwenlm.github.io/qwen-code-docs/zh/users/features/skills/

Skills功能目前是是实验阶段,需要更新至最新版本的Qwen Code,并且启动时使用--experimental-skills开启Skills功能,例如:

qwen --experimental-skills

Skills技能可以放在个人名下或项目名下,个人技能在所有的项目中都可以使用用,技能信息存储在~/.qwen/skills/中,例如:

mkdir-p~/.qwen/skills/my-skill-name

项目技能可以与团队共享,技能信息存储在项目内的.qwen/skills/中,例如:

mkdir-p.qwen/skills/my-skill-name

在技能目录下必须要有SKILL.md描述技能,示例模版如下:

--- name: your-skill-name description: 简要描述此技能的作用以及何时使用它 --- # 你的技能名称 ## 指令 为 Qwen Code 提供清晰、逐步的指导。

其中name和description不可为空!Qwen Code会验证其中的内容。

额外文件支持,可以根据具体需要添加:

my-skill/ ├── SKILL.md(必需)├── reference.md(可选文档)├── examples.md(可选示例)├── scripts/ │ └── helper.py(可选工具)└── templates/ └── template.txt(可选模板)

二、构建自定义 Skill 数据分析智能体

2.1 使用数据说明

其中分析数据采用数据采用COVID-19测试案例,包括:美国2021-01-28号,各个县county的新冠疫情累计案例信息,包括确诊病例和死亡病例,数据格式如下所示:

date(日期),county(县),state(州),fips(县编码code),cases(累计确诊病例),deaths(累计死亡病例) 2021-01-28,Pike,Alabama,01109,2704,35 2021-01-28,Randolph,Alabama,01111,1505,37 2021-01-28,Russell,Alabama,01113,3675,16 2021-01-28,Shelby,Alabama,01117,19878,141 2021-01-28,St. Clair,Alabama,01115,8047,147 2021-01-28,Sumter,Alabama,01119,925,28 2021-01-28,Talladega,Alabama,01121,6711,114 2021-01-28,Tallapoosa,Alabama,01123,3258,112 2021-01-28,Tuscaloosa,Alabama,01125,22083,283 2021-01-28,Walker,Alabama,01127,6105,185 2021-01-28,Washington,Alabama,01129,1454,27

下载地址如下:

https://github.com/BIXUECHAO/covid-19-tes-data/blob/main/us-covid19-counties.csv

创建数据表,并导入上述数据:

CREATETABLE`us_covid19_counties`(`date`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMENT'日期',`county`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMENT'县',`state`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMENT'州',`fips`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciDEFAULTNULLCOMMENT'县编码code',`cases`intDEFAULTNULLCOMMENT'累计确诊病例',`deaths`intDEFAULTNULLCOMMENT'累计死亡病例')ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ciCOMMENT='COVID-19 案例';

2.2 构建 Skill

在项目的目录下创建.qwen/skills/db技能包,整体结构如下所示:

.qwen/skills/db/ ├── SKILL.md ├── scripts/ │ └── run_sql.py

其中scripts/run_sql.py用于动态查询数据库中的数据,接收一个SQL参数,通过bash指令运行。

2.2.1 编写 SKILL.md

主要描述出技能的能力,这里数据查询的场景,可以放入表结构,如果表特别多的情况下,也可以写一个scripts脚本动态获取。另外为了更好的让大模型处理,最好提供调用脚本的指令示例。

内容示例如下所示,注意Python路径修改为你电脑的实际路径,如果配置了环境变量可直接改为python -u scripts/run_sql.py --sql "{sql}":

--- name: db-skill description: COVID-19数据查询, 包括:美国 2021-01-28 号,各个县county的新冠疫情累计案例信息,包括确诊病例和死亡病例 --- # 数据查询 ## 数据表结构 ``sql CREATE TABLE `us_covid19_counties` ( `date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '日期', `county` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '县', `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '州', `fips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '县编码code', `cases` int DEFAULT NULL COMMENT '累计确诊病例', `deaths` int DEFAULT NULL COMMENT '累计死亡病例' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='COVID-19 案例'; `` ## 数据样例 ``data date(日期),county(县),state(州),fips(县编码code),cases(累计确诊病例),deaths(累计死亡病例) 2021-01-28,Pike,Alabama,01109,2704,35 2021-01-28,Randolph,Alabama,01111,1505,37 2021-01-28,Russell,Alabama,01113,3675,16 2021-01-28,Shelby,Alabama,01117,19878,141 2021-01-28,St. Clair,Alabama,01115,8047,147 2021-01-28,Sumter,Alabama,01119,925,28 2021-01-28,Talladega,Alabama,01121,6711,114 2021-01-28,Tallapoosa,Alabama,01123,3258,112 2021-01-28,Tuscaloosa,Alabama,01125,22083,283 2021-01-28,Walker,Alabama,01127,6105,185 2021-01-28,Washington,Alabama,01129,1454,27 `` ## 指令 运行辅助脚本: ``bash # 查询天气 E:\anaconda\conda\envs\openai\python.exe -u scripts/run_sql.py --sql "{sql}" `` ## 示例 - 统计每个州的累计确诊病例 ``bash E:\anaconda\conda\envs\openai\python.exe -u scripts/run_sql.py --sql "SELECT state, COUNT(*) AS total_cases FROM us_covid19_counties GROUP BY state ORDER BY total_cases DESC" ``
2.2.2 编写 scripts 脚本

添加一个run_sql.py脚本,执行用户数据的查询动作,放在.qwen/skills/db/scripts下,内容如下所示:

importjsonimportargparseimportpymysqldefget_conn():returnpymysql.connect(host="127.0.0.1",port=3306,database="test3",user="root",password="root",autocommit=True)defquery(sql):conn=get_conn()cursor=conn.cursor()cursor.execute(sql)columns=[column[0]forcolumnincursor.description]res=list()forrowincursor.fetchall():res.append(dict(zip(columns,row)))cursor.close()conn.close()returnresdefrun_sql(sql:str):"""执行MySQL SQL语句查询数据,一次仅能执行一句SQL!"""try:ifnotsql:print("请传递需要查询的SQL!")returnfetch=query(sql)print(f"数据库查询结果: \n{fetch}")exceptExceptionase:print(f"执行SQL错误:{str(e)},请修正后重新发起。")if__name__=='__main__':parser=argparse.ArgumentParser(description="Run a SQL query.")parser.add_argument('--sql',type=str,required=True,help='SQL query to execute')args=parser.parse_args()sql=args.sql run_sql(sql)

到这Skill就已经添加完毕了。

2.3 使用 Skill

在当前项目目录下唤醒Qwen Code,注意需要添加--experimental-skills:

qwen --experimental-skills

输入:你当前有哪些Skills

输入:确诊人数Top10的县是哪几个?

输入:针对确诊人数前5名的州的信息, 深度分析其各个维度,为我生成一个炫酷的报表页面

执行过程:

最终生成页面如下:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 18:28:52

YOLOv5 OBB旋转框训练实战:从DOTA标注到角度回归与部署

简介:面向目标检测开发者与计算机视觉学习者的 YOLOv5 OBB 旋转框训练演示工程,在 YOLOv5 上扩展倾斜框支持,用顶点与旋转角度描述树木、车辆等带方向目标,弥补轴对齐框定位不准的缺陷。压缩包共 583 个文件、约 445.58MB&#xf…

作者头像 李华
网站建设 2026/10/27 18:27:25

内容副业降本增效指南:小说、漫画、漫剧成本结构与流程优化

做内容副业这件事,前两年我也觉得是“多写多画就能多赚”,直到年终把账摊开算了一遍才发现,真正吃掉利润的不是产出不够,而是单位成本压不下来。小说、漫画、漫剧这三条线,看起来都是“内容创作”,骨子里的…

作者头像 李华
网站建设 2026/10/27 18:26:58

赣州30m DEM数字高程数据实战:从裁剪、坡度分析到流域提取与淹没模拟

简介:这份资源面向地理信息科学、城乡规划、环境与灾害研究等领域的从业者及学生,提供江西省赣州市30米分辨率的DEM数字高程数据,并附带本市行政范围的矢量边界文件,可用于地形分析、坡度坡向计算、水文建模与地图制图等场景。压缩…

作者头像 李华
网站建设 2026/10/27 18:24:46

不背 git 命令:从克隆到解冲突的 Files 仓库管理实操

不背 git 命令:从克隆到解冲突的 Files 仓库管理实操 【免费下载链接】Files A modern file manager that helps users organize their files and folders. 项目地址: https://gitcode.com/gh_mirrors/fi/Files Files 是一款面向 Windows 的现代文件管理器&a…

作者头像 李华
网站建设 2026/10/27 18:23:49

哈希表算法实战:从基础到LeetCode经典题解

1. 哈希表算法复健:从基础到实战今天咱们聊聊哈希表这个数据结构在算法题中的应用。作为算法工程师日常必备技能,哈希表能高效解决很多看似复杂的问题。我挑选了LeetCode上4道经典题目(242、349、202、1),通过它们带你…

作者头像 李华
网站建设 2026/10/27 18:23:46

Ponytail:面向AI Agent的可编程运行时框架与工程化实践

1. 项目概述:Ponytail 是什么,它解决的到底是什么问题?Ponytail 这个名字乍一听像某种发型,但在当前 AI 工具链生态里,它正快速成为一个高频出现的代号——不是 UI 界面,不是 SaaS 平台,而是一个…

作者头像 李华