技能 Skills
把专业知识打包成可复用的能力包
一个 SKILL.md,让 AI 在对的场景自动变专家有了记忆系统,AI 记住了你的项目规则。这一章更进一步 —— 把专业知识打包成可调用的能力包,让 AI 在合适的时机自动变专家。
专业的重复
有些任务需要专业流程,你每次都要重新指导 AI
代码审查的标准
每次审查都要说"从安全、性能、可维护性看,按严重程度排序……"——这套专业流程你重复了无数次。
数据库迁移的步骤
"先备份、再生成迁移、验证 schema、最后应用"——这种有固定步骤的专业任务,AI 不知道你的标准。
日志分析的套路
"先找 ERROR、再看堆栈、关联时间戳、总结根因"——你想让 AI 按你的方法分析,却每次都要重述。
什么是 Skill
定义、白话、和命令的区别
Skill 是 Qoder CLI 中把专业知识打包成可复用功能的机制。每个 Skill 是一个目录,核心是 SKILL.md 文件,定义了技能描述、使用时机和执行指令。
说白了,Skill 就是一份"专家操作手册"——AI 平时是个通才,遇到匹配场景时调出对应手册,立刻变专家。
Skill 的特点
- 智能调用:模型根据请求自动判断何时用
- 也支持
/skill-name手动触发 - 适合复杂专业任务、固定流程
- 可带脚本、模板、参考文档
Command 的特点
- 必须显式输入
/command-name - 适合简单快捷操作
- 主要是提示词封装
- 不依赖模型判断场景
SKILL.md 结构
frontmatter 加正文,这就是一个完整技能
每个 Skill 的核心文件是 SKILL.md,由两部分组成:YAML 元数据(frontmatter)和 Markdown 指令。
---
name: api-doc-generator
description: Generate comprehensive API documentation from code. Use when creating API docs, documenting endpoints, or generating OpenAPI specs.
---
# API Documentation Generator
When generating API documentation:
1. Identify all API endpoints and routes
2. Document request/response formats
3. Include authentication requirements
4. Add example requests and responses
5. Generate OpenAPI/Swagger specification if needed
| 字段 | 必需 | 说明 | 限制 |
|---|---|---|---|
name | 是 | 技能唯一标识 | 小写字母/数字/连字符,≤64 字符 |
description | 是 | 功能描述,模型据此判断何时用 | ≤1024 字符 |
创建第一个 Skill
四步做出一个能用的日志分析技能
第 1 步:创建目录(用户级,所有项目可用)
mkdir -p ~/.qoder/skills/log-analyzer
第 2 步:编写 SKILL.md
---
name: log-analyzer
description: Analyze log files to identify errors, patterns, and performance issues. Use when debugging logs, investigating errors, or monitoring application behavior.
---
# Log Analyzer
## Instructions
1. Read the log file to understand its format
2. Identify and categorize issues (errors, warnings, bottlenecks)
3. Provide summary with severity, root cause, and fixes
第 3 步:验证加载(新会话自动加载,或运行中用 /skills reload)
What Skills are available?
(应显示 log-analyzer 及其描述)
第 4 步:测试触发——打开一个日志文件,说"分析这个日志里的错误",AI 应自动调用该技能。
存储位置
用户级和项目级,决定技能的可用范围
| 类型 | 路径 | 作用域 | 适合场景 |
|---|---|---|---|
| 用户级 | ~/.qoder/skills/{name}/SKILL.md |
你的所有项目 | 个人工作流、通用工具 |
| 项目级 | .qoder/skills/{name}/SKILL.md |
仅当前项目 | 团队共享、项目特有 |
.qoder/skills/ 提交到 Git,全团队共享同一套专家流程;个人的实验性技能放用户级,不影响他人。
自动触发
description 写得好,技能才能在对的时机被调用
Skill 的自动触发完全依赖 description——模型根据用户请求和各技能描述做匹配。描述写得模糊,技能永远不被触发;写得具体,命中率飙升。
不推荐:模糊
description: Helps with logs
模型不知道什么时候该用它,用户说"分析日志"也未必命中。
推荐:具体
description: Analyze log files to identify errors, patterns, and performance issues. Use when debugging logs, investigating errors, or monitoring application behavior.
包含功能+使用时机+触发关键词。
手动触发
不想等模型判断,也可以直接喊
有时你明确知道要用某个技能,不想赌自动触发,可以直接用斜杠命令手动调用:
/log-analyzer
这会强制加载该技能的完整 SKILL.md 并按其指令执行。
什么时候用手动
- 自动触发没命中,但你确定要用
- description 还没写好,正在测试
- 想强制走某个特定流程
查看可用技能
# 问 AI
What Skills are available?
# 或用命令
/skills
# 文件系统查看
ls ~/.qoder/skills/
ls .qoder/skills/
渐进式披露
复杂技能用多文件组织,按需加载
简单技能一个 SKILL.md 够用。但复杂技能(如数据库迁移工具)有大量参考文档、脚本、模板——全塞进一个文件会让模型每次加载全部内容,浪费 token。
渐进式披露的思路:主文件只放核心指令,详细内容放辅助文件,需要时再引用。
database-migrator/
├── SKILL.md # 核心:流程入口
├── MIGRATION_GUIDE.md # 详细迁移模式
├── ROLLBACK.md # 回滚策略
└── scripts/
├── generate_migration.py
└── backup_db.sh
在 SKILL.md 中引用:
For detailed patterns, see [MIGRATION_GUIDE.md].
Run backup: python scripts/backup_db.sh
SKILL.md;SKILL.md 里引用的辅助文件按需加载。这样既快又省。
最佳实践
写技能时容易踩的坑
| 应该做 | 不要做 |
|---|---|
| 每个技能专注一个领域 | 写一个"coding-helper"什么都管 |
| description 写清功能+时机+关键词 | 只写"帮助处理日志"这种模糊话 |
| 复杂技能用多文件分组织 | 把所有内容塞进一个 SKILL.md |
| 共享前充分测试触发 | 写完就提交,不验证是否真的会被调用 |
| 记录版本变更历史 | 改了不记录,团队不知道升级了什么 |
排错指南
技能相关的高频问题
技能没被自动触发
检查:① SKILL.md 路径对不对;② frontmatter 的 YAML 有没有语法错(缩进、引号);③ description 是不是太模糊。修复:用 /skills 确认已加载;把 description 写具体;或直接 /skill-name 手动触发验证。
技能执行报错
原因:脚本没有执行权限,或依赖未安装。修复:chmod +x .qoder/skills/my-skill/scripts/*.py;在 SKILL.md 里声明依赖。
修改后没生效
原因:CLI 运行中没重载。修复:运行 /skills reload,或新开会话。
多个技能互相冲突
原因:描述重叠,模型难以区分。修复:在 description 里用不同关键词区分各自适用场景。
动手练习
做一个属于你工作流的技能
练习 1:最小技能
- 挑一个你经常重复的专业任务(代码审查、文档生成、日志分析)
- 在
~/.qoder/skills/下创建目录和 SKILL.md - 写好 name + description + 核心指令
练习 2:测试自动触发
- 用
/skills reload加载 - 不用
/命令,直接用自然语言描述需求 - 观察 AI 是否自动调用了你的技能
- 没命中?回头改 description
练习 3:升级为多文件
- 给技能加一个 REFERENCE.md 详细文档
- 在 SKILL.md 里用
[REFERENCE.md]引用 - 体会渐进式披露的省 token 效果
本章回顾
带走的三个核心认知
Skill 是专家手册
把专业流程 + 领域知识打包,AI 匹配场景时自动变专家。
description 决定命运
功能 + 时机 + 关键词三要素,写得好自动触发才准。
多文件渐进披露
复杂技能分文件组织,按需加载,又快又省。
下一章,我们让 AI 学会"分工"——用子代理把不同任务委派给不同角色。
延伸阅读
继续本课程
- 下一章:子代理 Custom Agents — 让 AI 分工委派
- 插件 — 把技能打包分发
官方资源
- 技能官方文档 — 完整参考与示例