跳转到主要内容
技能(又称 Skill) 是 Qoder CLI 中将专业知识打包成可复用功能的机制。每个 Skill 包含一个 SKILL.md 文件,定义技能的描述、指令和可选的辅助文件(代码、脚本、模板等)。 核心特点
  • 智能调用:模型根据用户请求和 Skill 描述自主决定何时使用(也支持命令加载)
  • 模块化设计:每个 Skill 专注解决特定类型的任务
  • 灵活扩展:支持用户级和项目级的自定义 Skill

快速开始

以下示例创建一个用于生成 API 文档的 Skill:

1. 创建 Skill 目录

在用户级 Skills 文件夹中创建目录。用户级 Skills 适用于所有项目,也可在 .qoder/skills/ 中创建项目级 Skills 与团队共享。

2. 编写 SKILL.md

每个 Skill 需要一个 SKILL.md 文件,以 --- 标记之间的 YAML 元数据开头,必须包含 namedescription,后跟 Markdown 指令。 创建 ~/.qoder/skills/api-doc-generator/SKILL.md

3. 验证 Skill 加载

新会话会在启动时加载 Skill。如果 Qoder CLI 已在运行,使用 /skills reload 刷新已发现的 Skill。输入如下内容,验证是否加载成功:
或者输入命令验证:
对话中应显示 api-doc-generator 及其描述。

4. 测试 Skill

打开项目中的 API 路由文件,输入与 Skill 描述匹配的问题:
Qoder CLI 应用 api-doc-generator Skill 并生成相关 API 文档。若未触发,尝试使用 description 中的关键词重新描述需求。

工作原理

Skill 可以由命令加载,也可以由模型自动调用。模型根据请求内容决定使用哪个 Skill,无需显式指定。
  1. 启动时,Qoder CLI 加载每个 Skill 的名称和描述,保持快速启动的同时让模型了解各 Skill 的适用场景。
  2. 请求与 Skill 描述匹配时,模型请求使用该 Skill 并加载完整 SKILL.md。部分 Skill 可直接执行;需要额外能力的 Skill 可能会请求授权。编写描述时应包含用户常用的关键词。
  3. 模型按 Skill 指令执行,按需加载引用文件或运行脚本。

存储位置

存储位置决定 Skill 的可用范围:
位置路径作用域适用场景
用户级~/.qoder/skills/{skill-name}/SKILL.md当前用户的所有项目个人工作流、实验性 Skill、个人工具
项目级.qoder/skills/{skill-name}/SKILL.md仅当前项目团队工作流、项目特定知识、共享脚本
同名时,项目级 Skill 覆盖用户级 Skill。

Skill 与 Command 的区别

核心区别:Skill 支持命令加载和自动触发,Command 需显式输入 /command-name
特性SkillCommand
触发方式模型自动判断或输入 /skill-name输入 /command-name
主要用途专业领域知识、复杂工作流快速执行预设任务
存储位置skills/ 目录commands/ 目录
权限确认视 Skill 能力而定,可能需要授权不需要
Skill 内部转换为特殊类型的 Command,两者共享执行机制。

使用场景

适合使用 Skill 的场景
  • 复杂专业任务:需要领域知识的工作流(代码审查、PDF 处理、API 设计)
  • 标准化流程:按固定步骤执行的任务(提交规范、部署流程)
  • 团队知识共享:打包最佳实践供团队使用
  • 重复性工作:频繁执行且需要专业指导的任务
适合使用 Command 的场景
  • 简单快捷操作
  • 需要明确触发的任务
  • 无需复杂提示词指导的任务

创建 Skill

选择存储位置

类型路径作用域
用户级~/.qoder/skills/{skill-name}/SKILL.md当前用户的所有项目
项目级.qoder/skills/{skill-name}/SKILL.md仅当前项目
项目级 Skill 覆盖同名的用户级 Skill。
创建目录

组织目录结构

目录结构示例
SKILL.md 中引用辅助文件实现渐进式披露:

编写 SKILL.md

SKILL.md 是 Skill 中唯一必需的文件,包含 YAML 元数据和 Markdown 指令:
Frontmatter 字段
字段必需说明限制
nameSkill 唯一标识符仅小写字母、数字、连字符,最多 64 字符
description功能描述,模型据此判断何时使用最多 1024 字符
重要description 决定模型何时使用 Skill,应包含功能说明和使用时机。详见”最佳实践”部分。

使用 Skill

自动触发

直接描述需求,模型自动判断是否使用 Skill:
模型识别并调用 log-analyzer Skill。

手动触发

输入 /skill-name 手动触发:

查看可用 Skill

CLI 中查看
文件系统查看

更新与删除

更新 Skill

直接编辑 SKILL.md。新会话会在启动时加载更新;如果 Qoder CLI 已在运行,执行 /skills reload 刷新已发现的 Skill。

删除 Skill

删除 Skill 目录:
警告:删除操作永久移除所有文件,无法恢复。

最佳实践

保持专注

每个 Skill 专注于一个领域或任务类型。 推荐
  • log-analyzer - 日志分析
  • security-auditor - 安全审计
  • database-migrator - 数据库迁移
不推荐
  • coding-helper - 功能过于宽泛

编写清晰的 description

description 应包含:Skill 功能、使用时机和触发关键词。 对比

共享前测试

共享 Skill 前确保:
  • 预期场景下能触发
  • 指令清晰
  • 覆盖常见边界情况

记录版本变更

在 SKILL.md 中添加版本历史:

故障排查

Skill 未触发

检查文件位置
确认 SKILL.md 存在且路径正确。 检查 YAML 格式 查看 SKILL.md,验证 frontmatter 无语法错误(缩进、引号匹配)。 检查 description 具体性 使用清晰具体的描述:

Skill 执行出错

检查依赖 CLI 在需要时自动安装依赖(或请求权限)。 检查脚本权限

多个 Skill 冲突

Skill 相似导致混淆时,在 description 中使用不同触发词区分。

Skill 示例

示例 1:简单 Skill

分析日志文件并诊断问题。 目录结构
SKILL.md

示例 2:多文件 Skill

数据库迁移与版本管理工具。 目录结构
SKILL.md