编写 Agent Skills
创建 SKILL.md 和配套资源,设置调用方式、参数提示及工具预批准。
This page has not been translated into English yet. The original Chinese version is shown below.
Skill 是一个目录,包含 SKILL.md,也可以包含脚本、示例和补充资料。模型根据描述判断何时加载,用户也能在提示中明确调用;内容在调用时进入上下文。
最小结构
项目 Skill 可放在 .github/skills/、.agents/skills/ 或 .claude/skills/;个人 Skill 可放在 ~/.copilot/skills/ 或 ~/.agents/skills/。每个 Skill 使用自己的子目录:
.github/skills/change-review/
├── SKILL.md
└── checklist.mdSKILL.md 必须使用这个文件名。正文给出可执行的工作步骤,描述中说明何时使用:
---
name: change-review
description: Review a proposed code change against the project checklist. Use when asked to assess a diff before merging.
argument-hint: "[changed files]"
---
Read checklist.md from this skill directory.
Inspect the changed files and their direct callers.
Report concrete issues with file locations and supporting evidence.上面是自定义示例;需要自行提供 checklist.md。调用时 CLI 会发现目录内的资源,使智能体可以读取和使用它们。
Frontmatter
| 字段 | 要求或默认值 | 用途 |
|---|---|---|
name | 必填,最多 64 字符 | 唯一名称 |
description | 必填,最多 1024 字符 | 能力与触发场景 |
argument-hint | 可选字符串 | 选择器中的参数提示 |
allowed-tools | 可选字符串或数组 | Skill 活跃时自动允许的工具 |
user-invocable | 默认 true | 是否允许 /SKILL-NAME 显式调用 |
disable-model-invocation | 默认 false | 是否禁止模型自动选择 |
官方入门教程建议小写字母和连字符;CLI 命令参考允许名称以字母或数字开始,包含字母、数字、连字符、下划线、点、冒号和空格。新建时采用小写连字符最直观,不能把教程建议误写成完整校验规则。教程还允许可选的 license 描述许可。
控制调用方式
在提示中使用 /change-review 显式调用。只想允许用户触发时设 disable-model-invocation: true;不提供用户斜杠入口时设 user-invocable: false。两项控制不同维度,应按用途设置。
加入新 Skill 后执行 /skills reload,再用 /skills info change-review 查看发现的位置和内容信息。
脚本与工具预批准
可以在目录中加入脚本,在正文中说明相对 Skill 目录如何调用。allowed-tools 可写逗号分隔字符串或 YAML 数组,"*" 表示全部工具。
预批准 shell 或 bash 会移除相应终端执行确认步骤,因此应先检查 Skill 及其引用脚本。省略预批准字段,让工具调用继续受现有权限流程控制;把命令写进 Skill 正文不等于已经授予权限。相关规则见权限与工具控制。