Appearance
Kiro CLI 的 skills 机制让你把常用工作流(PR 审查、部署流程、编码规范等)封装成可复用的指令包。每个 skill 是一个包含 SKILL.md 的文件夹,Kiro 在对话开始时自动发现并加载这些指令。你可以直接用自然语言触发,也可以用 /skill-name 斜杠命令精确调用。skills 分为项目级(.kiro/skills/)和全局(~/.kiro/skills/)两种作用域,遵循开放的 Agent Skills 标准,可在不同工具和团队之间共享。
什么是 skills
Skills 是可移植的指令包,用来扩展 Kiro 的能力范围。每个 skill 针对一个特定工作流编写指令,例如审查 Pull Request、部署基础设施,或者执行团队编码规范。
Skills 遵循开放的 Agent Skills 标准,可以在工具和团队之间共享。
skills 如何工作
启动对话时,Kiro 通过读取 skill 的名称和描述来发现可用的 skills。触发方式有两种:
- 自动触发:Kiro 将你的请求与 skill 描述匹配,自动加载相关 skill。
- 斜杠命令:输入
/加 skill 名称直接调用。例如名为pr-review的 skill 变成/pr-review命令。
> 帮我检查这个 PR 的安全问题
我将按安全检查清单审查这个 PR...> /pr-review
我将按安全检查清单审查这个 PR...要查看当前会话中可用的 skills,使用 /context show 命令:
> /context showskill 存放位置
| 位置 | 作用域 | 适用场景 |
|---|---|---|
.kiro/skills/ | 工作区 | 项目专属工作流、团队规范 |
~/.kiro/skills/ | 全局 | 跨项目的个人工作流 |
同名 skill 时,工作区 skill 优先于全局 skill 生效。
默认 agent
默认 agent 会自动从两个位置加载 skills,无需任何配置。
自定义 agents
自定义 agents 默认不加载 skills,需要在 agent 的 resources 字段中显式添加:
json
{
"name": "my-agent",
"resources": [
"skill://.kiro/skills/*/SKILL.md",
"skill://~/.kiro/skills/*/SKILL.md"
]
}skill:// URI 支持具体路径、glob 模式和家目录展开。
创建一个 skill
skill 是包含 SKILL.md 文件的文件夹:
pr-review/
├── SKILL.md # 必需
└── references/ # 可选
└── checklist.mdSKILL.md 格式
文件以 YAML frontmatter 开头,后跟 Markdown 指令:
markdown
---
name: pr-review
description: Review pull requests for code quality, security issues, and test coverage. Use when reviewing PRs or preparing code for review.
---
## 审查清单
审查 Pull Request 时:
1. 检查漏洞、注入风险、暴露的密钥
2. 验证边界情况和失败模式是否有处理
3. 确认新代码有对应测试
4. 确保变量和函数命名清晰
## 常见问题
- 硬编码的凭证或 API key
- 缺少输入校验
- 未处理的 Promise 拒绝
- 遗留在生产代码中的 console.logfrontmatter 字段说明
| 字段 | 是否必需 | 说明 |
|---|---|---|
name | 是 | skill 标识符。只允许小写字母、数字和连字符,最多 64 个字符。 |
description | 是 | 决定何时激活该 skill。Kiro 用此描述匹配你的请求,最多 1024 个字符。 |
description 字段决定 Kiro 何时激活 skill,应包含与你日常请求用语相匹配的关键词和动作。
references 文件夹
对于大量参考资料,使用 references/ 文件夹:
aws-deployment/
├── SKILL.md
└── references/
├── ecs-guide.md
└── troubleshooting.md在 SKILL.md 中引用这些文件:
ECS 部署请按照 `references/ecs-guide.md` 中的指南操作。Kiro 只在指令明确指向时才加载 references 文件,不会自动全量加载。
完整示例:CDK 部署 skill
目录结构:
cdk-deploy/
├── SKILL.md
└── references/
└── stack-patterns.mdSKILL.md 内容:
markdown
---
name: cdk-deploy
description: Deploy AWS CDK stacks with best practices. Use when deploying infrastructure, running cdk deploy, or troubleshooting CDK issues.
---
## 部署流程
1. 运行 `cdk synth` 在部署前验证模板
2. 使用 `cdk diff` 预览变更内容
3. 运行 `cdk deploy` 并检查 IAM 变更
## 部署前检查
- 确认目标账号的 AWS 凭证已配置
- 确认 CDK 版本与项目要求匹配
- 查阅 `references/stack-patterns.md` 了解各环境的特定模式
## 回滚流程
部署失败时:
1. 查看 CloudFormation 控制台中的具体错误
2. 只有在 stack 处于失败状态时才运行 `cdk destroy`
3. 修复问题后重新部署使用示例:
> 把我的 CDK stack 部署到 staging
我将按部署流程执行。首先合成模板...最佳实践
写精准的 description。description 决定 Kiro 何时激活 skill:
- 好的写法:
Review pull requests for security vulnerabilities and test coverage. Use when reviewing PRs or preparing code for review. - 模糊写法:
Helps with code review
SKILL.md 保持可执行性。把详细参考资料放在 references/ 文件夹里,主文件只留操作步骤。
选择正确的作用域。个人跨项目通用的工作流用全局 skill;团队流程和项目特定规范用工作区 skill。
工作区 skills 纳入版本控制。将 .kiro/skills/ 提交到仓库,让整个团队共享同一套工作流。
故障排查
| 问题 | 解决方法 |
|---|---|
| Skill 未自动触发 | 在 description 中加入更多与你请求用语匹配的关键词 |
| 斜杠命令找不到 | 确认 skill 文件夹名称与你输入的一致;SKILL.md 必须有有效的 frontmatter;用 /context show 确认 skill 已加载 |
| Skill 文件找不到 | 确认 SKILL.md 存在且 frontmatter 有效 |
| 自定义 agent 缺少 skills | 在 agent 的 resources 字段添加 skill:// URI |
| 触发了错误的 skill | 在各 skill 的 description 中加入更具区分性的关键词 |
常见问题
Q:skill 的 description 写多长合适?
A:description 最长支持 1024 个字符,但不需要写满。关键是包含你实际请求时会用到的关键词和动作短语。一般 2~4 句话就足够,既说明 skill 的功能,又说明何时应该使用它。
Q:全局 skill 和工作区 skill 同名会怎样?
A:工作区 skill 优先。这种覆盖机制让你可以在全局定义默认行为,再在特定项目中按需重写,而不影响其他项目。
Q:自定义 agent 为什么默认不加载 skills?
A:这是设计上的有意克制——自定义 agent 需要精确控制上下文,因此要求显式声明所有资源(包括 skills)。在 agent 配置的 resources 字段中添加 skill:// URI 即可。详情参考 自定义 Agents。