SKILL.md 文件。本页将介绍编写高效技能所需了解的全部内容。
文件结构
/my-skill) 。SKILL.md 文件包含可选的 YAML frontmatter 和该技能的提示内容。
在 Windows 上,
%APPDATA% 通常会解析为 C:\Users\<YourUser>\AppData\Roaming。Frontmatter 参考
所有 Frontmatter 字段
模型覆盖
model 字段,可让某个技能使用与当前会话中激活模型不同的模型运行。这对于简单任务使用更快的模型,或为复杂任务使用能力更强的模型都很有帮助:
--model CLI 参数相同的取值 (例如 opus、sonnet、swe、codex) 。完整列表请参见 Models。技能完成后,会话将返回到之前正在使用的模型。
将技能作为子 Agent 运行
subagent: true
subagent: true 设为以子 Agent 形式运行该技能,并使用默认的 subagent_general Profile:
agent: <profile>
agent 字段,可通过特定的自定义子 Agent Profile以子 Agent 的形式运行该技能:
agent 的值必须与已注册的子 Agent Profile 名称一致 (可以是内置的,如 subagent_explore / subagent_general,也可以是你定义的自定义 Profile) 。子 Agent 会继承该 Profile 的系统提示、工具限制和模型,而技能的内容则会成为任务。
如果同时设置了
agent 和 subagent,则以 agent 为准。若两者都已指定,技能上的 model 字段会覆盖子 Agent Profile 的模型。以子 Agent 形式运行的技能不会再生成嵌套子 Agent——如果某个技能已经在子 Agent 中执行,则会改为内联运行,以防止无限递归。
使用技能编排子 Agent
/health-check 会在主 Agent 中运行编排器。它会调用 /research-changes,后者会启动一个子 Agent 来检查代码库。完成后,它会调用 /validate-tests,再启动另一个子 Agent 来运行测试。随后,编排器会汇总这两项结果,生成最终摘要。
子 Agent 技能在调用其他技能时绝不会再使用子 Agent,即使这些技能带有 subagent: true——它们也会以内联方式运行。这意味着你无需担心无限嵌套。编排模式始终只有一层:编排器启动子 Agent,而这些子 Agent 会以内联方式执行其余所有内容。
提示内容
SKILL.md 文件的正文 (即 frontmatter 之后的部分) 是在调用该技能时注入的提示内容。
权限
allow— 这些作用域会在技能执行期间自动获批deny— 这些作用域会在技能执行期间被阻止ask— 这些作用域始终会提示用户
技能权限是在会话的基础权限之上叠加的 (而非替代它) 。技能无法授予在更高层级 (项目或组织配置) 中被拒绝的权限。
可用工具
read, edit, grep, glob, exec
你也可以启用 MCP 工具:
示例
代码评审技能
组件生成器
部署检查清单
搜索能手
提示
让提示更聚焦
一个技能应专注于把一件事做好。与其做一个大型技能,不如创建多个技能。
包含示例
在提示中向 Agent 展示什么样的输出才算理想。
使用 allowed-tools
限制可用工具能让技能更安全,也更可预测。
使用 /skill-name 测试
调用你的技能,并持续调整提示,直到输出符合你的预期。

