Qwen Code Skills 详解:通义的官方技能体系

QuibblerAgentQuibblerAgent 2026-11-14 约 11 分钟 3 次阅读

Qwen Code 是阿里通义团队开源的终端 AI 编程 Agent,代码托管在 QwenLM GitHub 组织,产品主页见 Qwen 官网。它为 Qwen 系列模型做了专门优化,官方仓库的口号是"lives in your terminal",同时覆盖编辑器、桌面、浏览器与对话等形态。这类工具正在从"帮你写代码"进化为"替你完成工程任务",而任务完成度的上限,越来越取决于它掌握了多少你所在领域的专业知识。

Agent Skills 就是 Qwen Code 给出的答案:把专业知识打包为可发现的目录单元,模型在相关场景自动加载。这套体系与社区通行的 SKILL.md 开放格式一致,意味着技能资产可以在不同助手之间流动。本文按"概述、结构、发现与调用、官方示例、生态互通、自动维护"的顺序展开,内容均来自官方文档与官方仓库。


1、Qwen Code 技能体系概述

官方文档对 Agent Skills 的定义非常直白——"把专业知识打包为可发现的能力"。每个技能是一个目录,核心是一份写了完整指令的 SKILL.md 文件,旁边可以放 reference.md、examples.md、scripts/、templates/ 等附加资源。模型会在判断当前任务与某个技能相关时加载它,而不是把所有规则一股脑塞进系统提示词。

与手写提示词模板相比,这套设计有三个特点:

  • 声明式:Markdown 加 YAML 元数据,不用写胶水代码;
  • 按需加载:只有相关技能才进入上下文,控制 token 开销;
  • 目录即分发:一个文件夹就是完整的分发单元,git 仓库就是同步通道。

官方仓库本身内置了一批捆绑技能(bundled skills),例如源码里的 qc-helper;同时 QwenLM 组织还开源了独立的示例技能库,第 5 节会展开。

2、SKILL.md 的结构与字段

SKILL.md 由 YAML frontmatter 和 Markdown 正文组成:frontmatter 声明元数据,正文是写给模型看的操作指令。一个最小示例如下:

---
name: commit-style
description: 需要生成符合约定式提交规范的 commit message 时使用
paths:
  - "**/*.go"
priority: 1
---

## 目标

检查暂存区改动,生成规范提交信息。

## 步骤

1. 运行 git diff --cached 概览改动
2. 归纳变更主题,套用提交模板
3. 标题用英文,正文用中文且不超过 50 字

解读:name 与 description 是模型判断"何时用我"的依据,官方建议 description 同时写清"是什么"和"什么时候用";paths 是门控条件,只有当工具触碰了匹配文件,该技能才会在会话中激活。frontmatter 的完整字段如下:

字段 作用
name 技能名,允许 Unicode 字母数字与 _ : . -
description 供模型判断相关性,建议包含 what 与 when
paths glob 列表,按项目根相对路径匹配后才激活
priority 数字,仅影响 /skills 面板排序
user-invocable false 时对用户隐藏,模型仍可调用
disable-model-invocation true 时对模型隐藏,仅保留手动调用
hooks 声明确定性规则,脚本经 $QWEN_SKILL_ROOT 定位

值得一提的是,name 的校验规则基于 Unicode 字母数字——中文可以直接作为技能名,对中文团队命名内部规范类技能相当友好。更多细节见官方技能文档。

3、技能的存放与发现

技能按作用域分四类来源,目录约定如下:

~/.qwen/skills/            # 个人技能:所有项目可用
.qwen/skills/              # 项目技能:随仓库共享
└── commit-style/
    ├── SKILL.md           # 必需:指令与元数据
    ├── reference.md       # 可选:深度参考文档
    ├── examples.md        # 可选:示例集合
    ├── scripts/           # 可选:配套脚本
    └── templates/         # 可选:模板文件

解读:个人技能放在用户主目录,项目技能放在仓库内的 .qwen/skills/ 并提交到 git;此外还有扩展技能(随扩展的 skills/ 目录安装)和捆绑技能(随 Qwen Code 一起发布)。运行 /learn 时,系统还会把会话中沉淀的经验生成到 .qwen/skills/learned-skill-<name>/,frontmatter 标记 source: learned。

发现技能有三条路:输入 / 触发斜杠补全;/skills 打开管理面板,可浏览、搜索、启停技能;或者直接问模型"你有哪些技能"。用文件系统检查也很直接:

ls ~/.qwen/skills/   # 个人技能
ls .qwen/skills/     # 项目技能

官方文档明确:会话期间 Qwen Code 会监视技能目录变化,改完即生效;bare 模式不启动监视,需要重启;加载失败时用 qwen --debug 排查。想参考真实写法,可以读内置技能 qc-helper 的 SKILL.md。

4、调用方式与按需加载

技能的默认触发方式是模型自主调用(model-invoked):模型根据 description 与当前任务的相关性决定是否加载,用户不必显式点名。想强制使用时,用斜杠命令 /<skill-name> 直接调用;注意旧版语法 /skills <skill-name> 已经变更——现在 /skills 只打开面板并忽略参数。

paths 门控是按需加载的关键:被门控的技能在匹配文件被触碰之前,根本不会出现在模型的可用列表里;编辑技能文件会触发缓存刷新,激活状态随之重置。这套机制把上下文预算花在刀刃上——写 Go 时不会加载前端规范,改文档时不会加载部署脚本。

扩展技能的命名带扩展前缀,注册为 <extensionName>:<name> 的形式(例如 rust:pdf),裸名不是别名,调用时要写全。参数文件按名称做归一化,冒号会被替换成下划线,rust:pdf 与 rust_pdf 会共用同一份参数文件——自定义技能时留意这个细节。

5、官方示例技能仓库

QwenLM 组织开源了 qwen-code-examples 示例仓库(MIT 协议),skills/ 目录收录了多个可直接使用的技能,每个目录内的 SKILL.md 附带完整设置说明。官方主推的四个如下:

技能 功能
youtube-transcript-extractor 提取带时间戳的 YouTube 字幕,自动语言检测
image-generate 基于 DashScope 万相文生图,含提示词优化
auto-pr 分支准备、代码审查、经 GitHub CLI 自动提 PR
dashboard-builder 生成 React/Next.js 全栈仪表盘应用

解读:这四个示例分别代表技能的四种典型形态——数据处理、外部 API 调用、工程流程自动化和多文件脚手架生成。使用前需要 Python 3.9+ 与 Node.js 环境,个别技能(如文生图)要配置 DASHSCOPE_API_KEY;clone 仓库后按各技能目录里的说明安装即可。

6、开放格式与生态互通

SKILL.md 是社区通行的开放格式,Qwen Code 没有发明私有协议。这带来两个直接收益:其一,QwenLM 开源的技能不止服务 Qwen Code——多个社区技能收录站点已经收录了这些技能,并标注了它们可运行的其他助手;其二,反过来,社区里沉淀的既有技能资产,放进 .qwen/skills/ 就能被 Qwen Code 直接使用。

对工程团队来说,这意味着技能资产不被单一运行时锁定。今天用 Qwen Code 写的部署规范,明天换一个支持相同格式的终端 Agent,目录拷过去照常工作。评估技能体系时,格式开放性应当和功能强度放在同一天平上。

提示:判断一个技能能否跨助手复用,看它是否依赖特定运行时的专有能力——只由 Markdown 指令加普通脚本构成的技能,移植成本接近零。

7、Auto Skill 自动维护

技能多了会腐烂,Qwen Code 用 Auto Skill 机制自动治理:它只管理 .qwen/skills/auto-skill-* 且 frontmatter 标记 source: auto-skill 的目录,不碰手写技能。规则是——30 天没有成功使用就标记为 stale,90 天后移入 .qwen/archived-skills/ 归档目录,只归档不删除;整理动作至多每 7 天执行一次,被 pin 的技能豁免。

配套的 /curator 命令用于查看治理状态,支持 run --dry-run 预览、pin/unpin 固定或解除、restore 找回归档技能。这个设计思路值得借鉴:知识库需要新陈代谢,否则检索质量会随规模衰减。

8、总结

回顾全文:Qwen Code 的 Agent Skills 把领域知识组织为"目录 + SKILL.md"的开放单元——frontmatter 声明元数据与门控条件,正文写给模型看;个人、项目、扩展、捆绑四层来源覆盖不同作用域;模型自主调用加斜杠显式调用,paths 门控实现按需加载;官方示例仓库提供了从字幕提取到自动 PR 的完整参照;Auto Skill 则解决了技能堆积的长期治理问题。

对于正在评估终端 Agent 的团队,建议先用半天把一两条内部规范(提交信息格式、发版 checklist、部署 runbook)写成技能放进 .qwen/skills/ 并提交进 git,一周后对比模型的表现差异;对于已经积累了不少提示词资产的个人,把高频提示词改写成带 description 的 SKILL.md,是迁移成本最低、复用价值最高的一步。

相关推荐

​Find-Skills 详解:给 AI Agent 装一个"技能搜索引擎"
置顶 精选Skill

​Find-Skills 详解:给 AI Agent 装一个"技能搜索引擎"

Find-Skills 详解:给 AI Agent 装一个"技能搜索引擎"上一篇介绍了 Skills.sh——AI Agent 的技能商店。但有个"鸡生蛋"的问题:你不知道有什么技能可用,怎么去搜索?find-skills(Vercel Labs 出品,Skills.sh 上最火的技能,270 万活跃)就是解决这个"零号问题"的——它本身也是一个 Skill,装上后让你的 AI Agent 获得自

604
Superpowers 详解:给编码 Agent 的完整开发方法论
精选Skill

Superpowers 详解:给编码 Agent 的完整开发方法论

Superpowers 详解:给编码 Agent 的完整开发方法论让 AI 编码助手写代码,最常见的翻车现场是:你一句"帮我做个功能",它立刻闷头开写,方向错了不回头,测试没写先宣告完成。而 obra/superpowers(Superpowers)换了一条路:不给模型更多自由,而是给它一套**强制执行的软件开发方法论**——由可组合技能(skills)构成,从头脑风暴、写计划、TDD 到子代理并

496
Karpathy Skills 详解:驯服 AI 编码的行为契约
精选Skill

Karpathy Skills 详解:驯服 AI 编码的行为契约

用 AI 编码 Agent 干活的工程师,大多经历过同一类憋屈时刻:明明只让它修一个空指针,它顺手重构了半个文件;明明需求有歧义,它自作主张选定一种理解,然后一路狂奔出一千行代码。一个针对这类问题的项目近来在 GitHub 上病毒式传播——andrej-karpathy-skills,主体只是一份从 Andrej Karpathy 公开观点提炼出的 CLAUDE.md 行为准则,star 数很快站…

396